Function at 0x420ec0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports
Terminate process
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x140
mov ebx, edx
mov eax, dword [ecx + 0x4c]
cmp eax, 0x10
mov dword [esp + 0xc], ecx
mov dword [esp + 0x2c], edx
ja 0x420fa9
mov esi, ecx
mov ecx, 0x1c002
bt ecx, eax
jae 0x420fa9
movzx eax, byte [esi + 0x15]
mov byte [esp + 0x1c], al
push ebx
call fcn.0042be30
add esp, 4
cmp eax, 0x64
jne 0x422026
push ebx
call fcn.00431a20
add esp, 4
mov ebx, eax
lea edi, [eax*4]
cmp edi, 2
mov ecx, 1
cmovge ecx, edi
lea eax, [ecx*4]
mov dword [esp + 0x48], ecx
shr ecx, 0x1e
push ecx
push eax
call fcn.00424ee0
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
je 0x422140
push 0
push edi
call fcn.00424ee0
add esp, 8
test eax, eax
je 0x422140
push edi
push 0
mov dword [esp + 0x4c], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
cmp byte [esi + 0x14], 0
mov dword [esp + 0x14], edi
je 0x421137
push 0
push edi
call fcn.00424ee0
add esp, 8
test eax, eax
je 0x422140
mov ecx, edi
mov edi, eax
push ecx
push 0
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
jmp 0x421139
push ebx
call fcn.0042be30
add esp, 4
cmp eax, 0x64
jne 0x422026
push ebx
call fcn.00431a20
add esp, 4
mov esi, eax
lea eax, [eax*4]
lea eax, [eax + eax*2]
or eax, 1
push 0
push eax
call fcn.00424ee0
add esp, 8
test eax, eax
je 0x422140
lea ecx, [eax + esi*4]
mov dword [esp + 0x1c], ecx
test esi, esi
jle 0x42101e
xor edi, edi
mov dword [esp + 0x10], esi
nop word [eax + eax]
push edi
push ebx
mov esi, ebx
mov ebx, eax
call fcn.00432060
add esp, 8
mov dword [ebx + edi*4], eax
mov eax, ebx
mov ebx, esi
mov esi, dword [esp + 0x10]
inc edi
cmp esi, edi
jne 0x421000
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
lea edi, [eax + esi*4]
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
jmp 0x42106c
mov ecx, dword [esp + 0xc]
mov edx, esi
push edi
push dword [esp + 0x24]
push dword [esp + 0x24]
call fcn.0041e510
add esp, 0xc
push dword [esp + 0x2c]
call fcn.0042be30
add esp, 4
cmp eax, 0x64
jne 0x4210f9
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x34], eax
add eax, 1
mov dword [esp + 0x14], eax
adc ecx, 0
mov dword [esp + 0x18], ecx
test esi, esi
jle 0x421040
xor ebx, ebx
jmp 0x4210b0
mov eax, dword [esp + 0x1c]
mov dword [eax + ebx*4], 0x51cfd7
inc ebx
cmp esi, ebx
je 0x421040
push ebx
push dword [esp + 0x30]
call fcn.00431fc0
add esp, 8
mov dword [edi + ebx*4], eax
cmp dword [esp + 0xc], 0
je 0x4210db
cmp eax, 4
jne 0x4210db
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x4c]
add eax, 0xfffffffb
cmp eax, 1
jbe 0x4210a0
push ebx
push dword [esp + 0x30]
call fcn.00431d90
add esp, 8
mov ecx, dword [esp + 0x1c]
mov dword [ecx + ebx*4], eax
test eax, eax
jne 0x4210ab
cmp dword [edi + ebx*4], 5
je 0x4210ab
push dword [esp + 0x20]
call fcn.00424f10
add esp, 4
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x4c]
cmp eax, 0x11
je 0x422059
cmp eax, 0xd
jne 0x422026
push dword [ecx + 0x38]
push 1
push 2
push 0x526293
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fwrite
add esp, 0x10
jmp 0x422026
xor edi, edi
mov eax, dword [esp + 0x48]
cdq
idiv ebx
mov ecx, eax
sar ecx, 0x1f
push ecx
push eax
call fcn.00424ee0
add esp, 8
mov ecx, eax
mov dword [esp + 0x38], eax
test eax, eax
je 0x422140
cmp ebx, dword [esi + 0x100]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x50], edi
jle 0x42127c
lea eax, [ebx*8 + 8]
push eax
push dword [esi + 0xf8]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
mov dword [esi + 0xf8], eax
test eax, eax
je 0x422140
mov ecx, dword [esi + 0x100]
cmp ecx, ebx
jge 0x42126b
mov eax, ebx
sar eax, 0x1f
mov edx, ecx
sar edx, 0x1f
sub ebx, ecx
mov esi, edx
not esi
mov edi, ecx
not edi
add edi, dword [esp + 0x10]
mov dword [esp + 0x34], edi
mov dword [esp + 0x20], eax
adc esi, eax
mov dword [esp + 0x24], esi
and ebx, 3
je 0x421205
mov edx, ecx
sar edx, 0x1f
xor edi, edi
xor esi, esi
nop word [eax + eax]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xf8]
mov dword [eax + ecx*4], 0
add ecx, 1
adc edx, 0
add edi, 1
adc esi, 0
mov eax, edi
xor eax, ebx
or eax, esi
jne 0x4211e0
cmp dword [esp + 0x34], 3
sbb dword [esp + 0x24], 0
mov esi, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x20]
jb 0x421265
nop dword [eax]
mov eax, dword [esi + 0xf8]
mov dword [eax + ecx*4], 0
mov eax, dword [esi + 0xf8]
mov dword [eax + ecx*4 + 4], 0
mov eax, dword [esi + 0xf8]
mov dword [eax + ecx*4 + 8], 0
mov eax, dword [esi + 0xf8]
mov dword [eax + ecx*4 + 0xc], 0
add ecx, 4
adc edx, 0
cmp ecx, ebx
mov eax, edx
sbb eax, edi
jl 0x421220
mov eax, dword [esi + 0xf8]
mov dword [esi + 0x100], ebx
lea eax, [eax + ebx*4]
mov dword [esi + 0xfc], eax
jmp 0x421282
mov eax, dword [esi + 0xfc]
push dword [esp + 0x14]
push 0
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
movzx eax, byte [esp + 0x1c]
mov dword [esp + 0x68], eax
test ebx, ebx
mov edx, ebx
jle 0x4213bc
xor eax, eax
cmp edx, 1
mov edi, dword [esp + 0xc]
je 0x421328
mov eax, edx
sar eax, 0x1f
mov dword [esp + 0x1c], eax
and edx, 0xfffffffe
xor eax, eax
xor esi, esi
nop
mov ecx, dword [esp + 0xc]
mov edi, dword [ecx + 0xf8]
mov edi, dword [edi + eax*4]
mov ebx, edi
neg ebx
cmovs ebx, edi
lea edi, [eax*4]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0xfc]
mov dword [ecx + eax*4], ebx
or edi, 4
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0xf8]
mov ecx, dword [ecx + edi]
mov ebx, ecx
neg ebx
cmovs ebx, ecx
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0xfc]
mov dword [ecx + edi], ebx
add eax, 2
adc esi, 0
mov ecx, eax
xor ecx, edx
mov edi, esi
xor edi, dword [esp + 0x1c]
or edi, ecx
mov edi, dword [esp + 0xc]
jne 0x4212c0
mov edx, dword [esp + 0x10]
test dl, 1
je 0x42134a
mov ecx, dword [edi + 0xf8]
mov ebx, edx
mov edx, dword [edi + 0xfc]
mov ecx, dword [ecx + eax*4]
mov esi, ecx
neg esi
cmovs esi, ecx
mov dword [edx + eax*4], esi
mov edx, ebx
xor edi, edi
sar edx, 0x1f
mov dword [esp + 0x1c], edx
xor esi, esi
jmp 0x4213a2
mov ebx, eax
neg ebx
cmovs ebx, eax
push edi
push dword [esp + 0x30]
call fcn.00432060
add esp, 8
mov ecx, eax
lea edx, [esp + 0x70]
push dword [esp + 0x68]
push ebx
call fcn.00422260
add esp, 8
mov ecx, dword [esp + 0x18]
mov dword [ecx + edi*4], eax
add edi, 1
adc esi, 0
mov edx, dword [esp + 0x10]
cmp edi, edx
mov eax, esi
sbb eax, dword [esp + 0x1c]
jge 0x4213bc
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xf8]
mov eax, dword [eax + edi*4]
test eax, eax
jne 0x421360
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x10]
jmp 0x421360
mov eax, dword [esp + 0xc]
add eax, 0x104
mov dword [esp + 0x4c], eax
mov dword [esp + 0x3c], 0
mov al, 1
mov dword [esp + 0x24], eax
mov eax, edx
sar eax, 0x1f
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0x64], 0
mov dword [esp + 0x54], 0
mov esi, dword [esp + 0x18]
jmp 0x421421
push dword [esp + 0x2c]
mov edi, edx
call fcn.0042be30
add esp, 4
mov cl, 1
mov dword [esp + 0x24], ecx
cmp eax, 0x64
mov eax, ebx
mov edx, edi
jne 0x421762
mov ecx, eax
mov dword [esp + 0x40], eax
add eax, 2
mov edi, dword [esp + 0x64]
adc edi, 0
mov ecx, eax
imul ecx, dword [esp + 0x28]
mov ebx, edx
mul edx
add edx, ecx
imul edi, ebx
add edi, edx
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x48]
cmp eax, edx
mov dword [esp + 0x5c], edi
mov eax, edi
mov edi, dword [esp + 0x3c]
sbb eax, edi
jl 0x4214c1
mov eax, edi
shld eax, edx, 3
lea ecx, [edx*8]
push eax
push ecx
push esi
mov ebx, edi
mov edi, edx
call fcn.00425220
add esp, 0xc
test eax, eax
je 0x422140
mov esi, eax
shld ebx, edi, 1
add edi, edi
push dword [esp + 0x28]
push dword [esp + 0x14]
mov dword [esp + 0x44], ebx
push ebx
mov ebx, edi
push edi
call fcn.0050f570
add esp, 0x10
push edx
push eax
push dword [esp + 0x40]
call fcn.00425220
add esp, 0xc
mov ecx, eax
mov dword [esp + 0x38], eax
test eax, eax
je 0x422140
mov edx, ebx
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x48], edx
add ebx, 1
adc dword [esp + 0x64], 0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
mov byte [eax + ecx], 1
mov edx, dword [esp + 0x10]
test edx, edx
mov dword [esp + 0x18], esi
mov dword [esp + 0x3c], edi
jle 0x421400
mov dword [esp + 0x58], ebx
mov eax, ebx
mul edx
mov dword [esp + 0x34], eax
xor ebx, ebx
mov al, 1
mov dword [esp + 0x60], eax
xor edi, edi
nop word [eax + eax]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xf8]
mov eax, dword [eax + ebx*4]
test eax, eax
jne 0x421528
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x10]
mov esi, eax
neg esi
cmovs esi, eax
test byte [esp + 0x24], 1
mov dword [esp + 0x1c], edi
je 0x421590
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x14], 0
je 0x4215a6
mov eax, dword [esp + 0x50]
push dword [eax + ebx*4]
call fcn.00424f10
add esp, 4
push ebx
push dword [esp + 0x30]
call fcn.00431fc0
add esp, 8
dec eax
cmp eax, 4
ja case.default.0x421566
jmp dword [eax*4 + 0x51cc9c]
push ebx
push dword [esp + 0x30]
call fcn.00431d90
add esp, 8
push eax
push 0x51d22f
jmp 0x4215db
mov edi, dword [esp + 0x44]
mov ecx, dword [edi + ebx*4]
test ecx, ecx
mov eax, 0x51cfd7
cmove ecx, eax
jmp 0x42169e
push ebx
push dword [esp + 0x30]
call fcn.00431d90
add esp, 8
mov ecx, eax
test eax, eax
cmove ecx, dword [esp + 0x4c]
jmp 0x42169a
xor ecx, ecx
jmp 0x421693
push ebx
push dword [esp + 0x30]
call fcn.00431d90
add esp, 8
push eax
push 0x51dd49
call fcn.00428600
add esp, 8
jmp 0x421691
mov dword [esp + 0x6c], esi
push 0
call fcn.004284e0
add esp, 4
mov esi, eax
push ebx
mov edi, dword [esp + 0x30]
push edi
call fcn.00431a60
add esp, 8
mov dword [esp + 0x20], eax
push ebx
push edi
call fcn.00431b10
add esp, 8
mov edi, eax
push 2
push 0x526305
mov dword [esp + 0x1c], esi
push esi
call fcn.00427f90
add esp, 0xc
test edi, edi
jle 0x42165f
mov esi, edi
xor edi, edi
nop word cs:[eax + eax]
mov eax, dword [esp + 0x20]
movzx eax, byte [eax + edi]
push eax
push 0x5221e8
push dword [esp + 0x1c]
call fcn.00428090
add esp, 0xc
inc edi
cmp esi, edi
jne 0x421640
push 1
push 0x5221c3
mov edi, dword [esp + 0x1c]
push edi
call fcn.00427f90
add esp, 0xc
push edi
call fcn.004283a0
add esp, 4
mov ecx, eax
mov esi, dword [esp + 0x6c]
jmp 0x421693
push 0x5209f1
call fcn.00428600
add esp, 4
mov ecx, eax
mov eax, dword [esp + 0x50]
mov dword [eax + ebx*4], ecx
mov edi, dword [esp + 0x44]
lea edx, [edi + ebx*4]
push dword [esp + 0x68]
push esi
call fcn.00422260
add esp, 8
mov ecx, dword [esp + 0x34]
add ecx, ebx
mov esi, dword [esp + 0x18]
mov dword [esi + ecx*4], eax
cmp dword [edi + ebx*4], 0
jne 0x4216e2
mov ecx, dword [esp + 0x10]
mov eax, ecx
sar eax, 0x1f
add ebx, 1
mov edi, dword [esp + 0x1c]
adc edi, 0
cmp ebx, ecx
mov ecx, edi
sbb ecx, eax
jl 0x421510
jmp 0x421740
mov ecx, dword [esp + 0x10]
mov eax, ecx
sar eax, 0x1f
add ebx, 1
mov edi, dword [esp + 0x1c]
adc edi, 0
mov dword [esp + 0x60], 0
cmp ebx, ecx
mov ecx, edi
sbb ecx, eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
mov byte [eax + ecx], 0
mov dword [esp + 0x54], 1
jl 0x421510
mov eax, dword [esp + 0x58]
mov dword [esp + 0x24], 0
mov edx, dword [esp + 0x10]
jmp 0x421421
mov dword [esp + 0x24], 0
mov ebx, dword [esp + 0x58]
mov eax, ebx
test byte [esp + 0x60], 1
mov edx, dword [esp + 0x10]
je 0x421421
jmp 0x421400
mov ecx, dword [esp + 0x30]
mov eax, ecx
sar eax, 0x1f
mov dword [esp + 0x1c], eax
mov eax, 1
neg eax
mov eax, ecx
sbb eax, 0
jl 0x42181b
xor edi, edi
mov eax, dword [esp + 0x10]
sar eax, 0x1f
mov dword [esp + 0x14], eax
xor esi, esi
jmp 0x4217b2
add edi, 1
adc esi, 0
cmp edi, dword [esp + 0x30]
mov eax, esi
sbb eax, dword [esp + 0x1c]
jge 0x42181b
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4]
test eax, eax
mov ecx, 0x51cfd7
cmove eax, ecx
movzx ecx, byte [eax]
mov ebx, 0
test cl, cl
je 0x4217f5
inc eax
xor ebx, ebx
nop word cs:[eax + eax]
and cl, 0xc0
xor edx, edx
cmp cl, 0x80
setne dl
add ebx, edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x4217e0
push dword [esp + 0x14]
push dword [esp + 0x14]
push esi
push edi
call fcn.0050f6d0
add esp, 0x10
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0xfc]
cmp ebx, dword [ecx + eax*4]
jle 0x4217a0
mov dword [ecx + eax*4], ebx
jmp 0x4217a0
cmp dword [0x53dde4], 0
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
jne 0x421f40
test ebx, ebx
je 0x421f40
mov edi, dword [esp + 0xc]
mov eax, dword [edi + 0x4c]
mov dword [esp + 0x24], 0
dec eax
xor esi, esi
cmp eax, 0xf
ja case.0x421853.2
jmp dword [eax*4 + 0x51ccb0]
cmp dword [edi + 0x58], 0
mov dword [esp + 0x24], 0x5212e1
je 0x422124
test ebx, ebx
mov esi, 0x51d1eb
jle case.0x421853.2
lea eax, [ebx - 1]
mov dword [esp + 0x14], eax
xor esi, esi
xor ebx, ebx
nop word cs:[eax + eax]
mov eax, dword [edi + 0xfc]
mov eax, dword [eax + esi*4]
mov ecx, dword [edi + 0xf8]
mov edx, eax
neg edx
cmp dword [ecx + esi*4], 0
cmovns edx, eax
mov ecx, dword [edi + 0x38]
mov eax, dword [esp + 0x18]
push dword [eax + esi*4]
call fcn.0041fcc0
add esp, 4
mov eax, esi
xor eax, dword [esp + 0x14]
or eax, ebx
mov eax, 0x5212e1
mov ecx, 0x51d1eb
cmove eax, ecx
push dword [edi + 0x38]
push eax
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fputs
mov ecx, dword [esp + 0x30]
add esp, 8
add esi, 1
adc ebx, 0
cmp esi, dword [esp + 0x10]
mov eax, ebx
sbb eax, ecx
jl 0x421890
mov ebx, dword [esp + 0x10]
test ebx, ebx
jle 0x42212e
xor edx, edx
mov dword [esp + 0x20], 0
mov edi, dword [esp + 0xc]
jmp 0x42197b
mov eax, ebx
lea ecx, [esp + 0x70]
push ecx
push eax
push 0x51d875
push edi
call fcn.004062d0
add esp, 0x10
mov ebx, esi
mov eax, esi
xor eax, dword [esp + 0x14]
mov esi, dword [esp + 0x20]
or eax, esi
mov ecx, 0x51d1eb
mov dword [esp + 0x24], 0x5212e1
mov eax, 0x5212e1
cmove eax, ecx
mov edi, dword [esp + 0xc]
push dword [edi + 0x38]
push eax
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fputs
mov edx, ebx
add esp, 8
add edx, 1
adc esi, 0
mov ebx, dword [esp + 0x10]
cmp edx, ebx
mov dword [esp + 0x20], esi
mov eax, esi
mov esi, 0x51d1eb
mov ecx, dword [esp + 0x28]
sbb eax, ecx
jge case.0x421853.2
mov eax, edi
mov edi, dword [edi + 0x38]
mov eax, dword [eax + 0xfc]
mov ebx, dword [eax + edx*4]
movups xmm0, xmmword [0x52208e]
movups xmmword [esp + 0x90], xmm0
movups xmm0, xmmword [0x52207e]
movups xmmword [esp + 0x80], xmm0
movdqu xmm0, xmmword [str.__________________________________________________]
movdqu xmmword [esp + 0x70], xmm0
mov dword [esp + 0x9f], 0x2d2d2d
mov esi, edx
cmp ebx, 0x33
jl 0x42190d
lea ecx, [esp + 0x70]
nop
push edi
push ecx
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fputs
lea ecx, [esp + 0x78]
add esp, 8
lea eax, [ebx - 0x32]
cmp ebx, 0x64
mov ebx, eax
ja 0x4219d0
jmp 0x421913
push dword [edi + 0x38]
push 1
push 2
push 0x5262ae
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fwrite
add esp, 0x10
test ebx, ebx
jle 0x421cf8
lea eax, [ebx - 1]
mov dword [esp + 0x20], eax
xor esi, esi
xor edi, edi
jmp 0x421aa0
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx + 0xfc]
mov edx, dword [eax + esi*4]
sub edx, ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
sar eax, 1
lea ecx, [edx + 1]
shr ecx, 0x1f
add ecx, edx
inc ecx
sar ecx, 1
push 0x51cfd7
push ecx
push dword [esp + 0x1c]
push 0x51cfd7
push eax
push str._s_s_s
push dword [ebx + 0x38]
call fcn.004014c0
add esp, 0x1c
mov eax, esi
xor eax, dword [esp + 0x20]
or eax, edi
mov eax, 0x5262a4
mov ecx, 0x5262a8
cmove eax, ecx
push dword [ebx + 0x38]
push 1
push 3
push eax
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fwrite
add esp, 0x10
add esi, 1
adc edi, 0
mov ebx, dword [esp + 0x10]
cmp esi, ebx
mov eax, edi
sbb eax, dword [esp + 0x28]
jge 0x421cf8
mov eax, dword [esp + 0x18]
mov eax, dword [eax + esi*4]
mov dword [esp + 0x14], eax
movzx eax, byte [eax]
mov ecx, 0
test al, al
je 0x421a20
mov ecx, dword [esp + 0x14]
lea edx, [ecx + 1]
xor ecx, ecx
nop word cs:[eax + eax]
and al, 0xc0
xor ebx, ebx
cmp al, 0x80
setne bl
add ecx, ebx
movzx eax, byte [edx]
inc edx
test al, al
jne 0x421ad0
jmp 0x421a20
mov ecx, edi
mov edx, ebx
push 0x5262ac
call fcn.00422520
add esp, 4
push dword [edi + 0x38]
push 1
push 2
push 0x5262ae
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fwrite
add esp, 0x10
test ebx, ebx
jle 0x421d05
lea eax, [ebx - 1]
mov dword [esp + 0x20], eax
xor esi, esi
xor edi, edi
jmp 0x421bb0
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx + 0xfc]
mov edx, dword [eax + esi*4]
sub edx, ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
sar eax, 1
lea ecx, [edx + 1]
shr ecx, 0x1f
add ecx, edx
inc ecx
sar ecx, 1
push 0x51cfd7
push ecx
push dword [esp + 0x1c]
push 0x51cfd7
push eax
push str._s_s_s
push dword [ebx + 0x38]
call fcn.004014c0
add esp, 0x1c
mov eax, esi
xor eax, dword [esp + 0x20]
or eax, edi
mov eax, 0x5262a4
mov ecx, 0x5262a8
cmove eax, ecx
push dword [ebx + 0x38]
push 1
push 3
push eax
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fwrite
add esp, 0x10
add esi, 1
adc edi, 0
mov ebx, dword [esp + 0x10]
cmp esi, ebx
mov eax, edi
sbb eax, dword [esp + 0x28]
jge 0x421d05
mov eax, dword [esp + 0x18]
mov eax, dword [eax + esi*4]
mov dword [esp + 0x14], eax
movzx eax, byte [eax]
mov ecx, 0
test al, al
je 0x421b30
mov ecx, dword [esp + 0x14]
lea edx, [ecx + 1]
xor ecx, ecx
nop word cs:[eax + eax]
and al, 0xc0
xor ebx, ebx
cmp al, 0x80
setne bl
add ecx, ebx
movzx eax, byte [edx]
inc edx
test al, al
jne 0x421be0
jmp 0x421b30
mov ecx, edi
mov edx, ebx
push 0x5262ce
push 0x5262ca
push 0x5262c6
call fcn.00422690
add esp, 0xc
push 0x5262d2
push dword [edi + 0x38]
call fcn.004014c0
add esp, 8
test ebx, ebx
jle 0x421d27
lea eax, [ebx - 1]
mov dword [esp + 0x20], eax
xor esi, esi
xor edi, edi
jmp 0x421cb1
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xfc]
mov edx, dword [eax + esi*4]
sub edx, ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
sar eax, 1
lea ecx, [edx + 1]
shr ecx, 0x1f
add ecx, edx
inc ecx
sar ecx, 1
mov edx, esi
xor edx, dword [esp + 0x20]
or edx, edi
mov edx, 0x5262ba
mov ebx, 0x5262c0
cmove edx, ebx
push edx
push 0x51cfd7
push ecx
push dword [esp + 0x20]
push 0x51cfd7
push eax
push str._s_s_s_s
mov eax, dword [esp + 0x28]
push dword [eax + 0x38]
call fcn.004014c0
add esp, 0x20
add esi, 1
adc edi, 0
mov ebx, dword [esp + 0x10]
cmp esi, ebx
mov eax, edi
sbb eax, dword [esp + 0x28]
jge 0x421d27
mov eax, dword [esp + 0x18]
mov eax, dword [eax + esi*4]
mov dword [esp + 0x14], eax
movzx eax, byte [eax]
mov ecx, 0
test al, al
je 0x421c40
mov ecx, dword [esp + 0x14]
lea edx, [ecx + 1]
xor ecx, ecx
nop word cs:[eax + eax]
and al, 0xc0
xor ebx, ebx
cmp al, 0x80
setne bl
add ecx, ebx
movzx eax, byte [edx]
inc edx
test al, al
jne 0x421ce0
jmp 0x421c40
mov ecx, dword [esp + 0xc]
mov edx, ebx
push 0x51e083
jmp 0x421d10
mov ecx, dword [esp + 0xc]
mov edx, ebx
push 0x5262ac
call fcn.00422520
add esp, 4
mov esi, 0x5262a8
mov dword [esp + 0x24], 0x5262a4
jmp 0x421d51
mov ecx, dword [esp + 0xc]
mov edx, ebx
push 0x5262ea
push 0x5262e6
push 0x5262e2
call fcn.00422690
add esp, 0xc
mov esi, 0x5262c0
mov dword [esp + 0x24], 0x5262ba
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x34], esi
cmp ebx, dword [esp + 0x30]
mov eax, ecx
sbb eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
jge 0x421f18
lea eax, [ebx - 1]
mov dword [esp + 0x20], eax
xor edi, edi
mov edx, ebx
jmp 0x421db9
push dword [esp + 0x24]
push 0x51d22f
push eax
call fcn.004014c0
add esp, 0xc
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
add edx, 1
adc ecx, 0
inc edi
cmp edx, dword [esp + 0x30]
mov eax, ecx
sbb eax, dword [esp + 0x1c]
jge 0x421f18
mov dword [esp + 0x28], ecx
test edi, edi
mov ebx, dword [esp + 0xc]
jne 0x421e00
mov eax, dword [ebx + 0x4c]
cmp eax, 1
je 0x421e00
cmp eax, 0x10
mov eax, 0x5262ae
mov ecx, 0x5262d2
cmove eax, ecx
push eax
push 0x51d22f
push dword [ebx + 0x38]
mov esi, edx
call fcn.004014c0
mov edx, esi
mov esi, dword [esp + 0x24]
add esp, 0xc
nop word cs:[eax + eax]
mov dword [esp + 0x14], edx
mov eax, dword [esi + edx*4]
test eax, eax
cmove eax, dword [esp + 0x4c]
mov ecx, dword [ebx + 0xfc]
mov ecx, dword [ecx + edi*4]
mov esi, dword [ebx + 0xf8]
mov edx, ecx
neg edx
cmp dword [esi + edi*4], 0
cmovns edx, ecx
mov ecx, dword [ebx + 0x38]
push eax
call fcn.0041fcc0
add esp, 4
mov eax, dword [ebx + 0x38]
cmp edi, dword [esp + 0x20]
jne 0x421d80
push dword [esp + 0x34]
push 0x51d22f
push eax
call fcn.004014c0
add esp, 0xc
cmp dword [esp + 0x54], 0
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
je 0x421f00
mov eax, ebx
sar eax, 0x1f
push eax
push ebx
mov edi, dword [esp + 0x30]
push edi
mov ebx, esi
mov esi, dword [esp + 0x20]
push esi
call fcn.0050f570
add esp, 0x10
mov edx, esi
mov esi, ebx
mov ebx, dword [esp + 0x10]
add edx, 1
mov ecx, edi
adc ecx, 0
mov edi, dword [esp + 0x38]
cmp byte [eax + edi - 1], 0
je 0x421f00
cmp edx, dword [esp + 0x30]
sbb ecx, dword [esp + 0x1c]
jge 0x421f00
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x4c]
cmp eax, 1
je 0x421ed1
cmp eax, 0x10
je 0x421ee0
cmp eax, 0xf
jne 0x421f00
mov ecx, dword [esp + 0xc]
mov edx, ebx
push 0x5262ac
call fcn.00422520
add esp, 4
jmp 0x421f00
push dword [ecx + 0x38]
push 0xa
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fputc
add esp, 8
jmp 0x421f00
mov edx, ebx
push 0x5262ea
push 0x5262e6
push 0x5262e2
call fcn.00422690
add esp, 0xc
nop dword [eax]
mov edi, 0xffffffff
cmp dword [0x53dde4], 0
mov ecx, dword [esp + 0x28]
je 0x421d9e
jmp 0x421f40
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x4c]
cmp eax, 0x10
je 0x42202e
cmp eax, 0xf
jne 0x421f40
mov ecx, dword [esp + 0xc]
mov edx, ebx
push 0x5262ac
call fcn.00422520
add esp, 4
cmp dword [0x53dde4], 0
je 0x421f5d
push str.Interrupt_n
mov eax, dword [esp + 0x10]
push dword [eax + 0x38]
call fcn.004014c0
add esp, 8
cmp dword [esp + 0x30], 1
mov eax, dword [esp + 0x5c]
sbb eax, 0
jl 0x421fb1
xor esi, esi
xor edi, edi
jmp 0x421f92
add esi, 1
adc edi, 0
cmp esi, dword [esp + 0x30]
mov eax, edi
sbb eax, dword [esp + 0x5c]
jge 0x421fb1
mov eax, dword [esp + 0x18]
mov eax, dword [eax + esi*4]
cmp eax, 0x51cfd7
je 0x421f80
cmp eax, dword [esp + 0x4c]
je 0x421f80
push eax
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
add esp, 4
jmp 0x421f80
push dword [esp + 0x18]
call fcn.00424f10
add esp, 4
push dword [esp + 0x44]
call fcn.00424f10
add esp, 4
push dword [esp + 0x38]
call fcn.00424f10
add esp, 4
mov eax, dword [esp + 0x50]
test eax, eax
je 0x422026
test ebx, ebx
mov ebx, eax
jle 0x42201d
xor esi, esi
mov ecx, dword [esp + 0x10]
sar ecx, 0x1f
mov dword [esp + 0xc], ecx
xor edi, edi
nop word cs:[eax + eax]
push dword [ebx + esi*4]
call fcn.00424f10
add esp, 4
add esi, 1
adc edi, 0
cmp esi, dword [esp + 0x10]
mov eax, edi
sbb eax, dword [esp + 0xc]
jl 0x422000
push ebx
call fcn.00424f10
add esp, 4
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, ebx
push 0x5262f6
push 0x5262f2
push 0x5262ee
call fcn.00422690
add esp, 0xc
cmp dword [0x53dde4], 0
jne 0x421f49
jmp 0x421f5d
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x120], xmm0
movdqa xmmword [esp + 0x110], xmm0
movdqa xmmword [esp + 0x100], xmm0
movdqa xmmword [esp + 0xf0], xmm0
movdqa xmmword [esp + 0xe0], xmm0
movdqa xmmword [esp + 0xd0], xmm0
movdqa xmmword [esp + 0xc0], xmm0
movdqa xmmword [esp + 0xb0], xmm0
movdqa xmmword [esp + 0xa0], xmm0
movdqa xmmword [esp + 0x90], xmm0
movdqa xmmword [esp + 0x80], xmm0
movdqa xmmword [esp + 0x70], xmm0
mov dword [esp + 0x134], 0xffffffff
mov dword [esp + 0x130], 0xffffffff
mov eax, dword [esp + 0x34]
or eax, dword [esp + 0x24]
mov eax, 0x51cfd7
mov ecx, 0x5262a2
cmove ecx, eax
lea esi, [esp + 0x70]
push ecx
push dword [esp + 0x1c]
push dword [esp + 0x1c]
push str._llu_row_s_n
push esi
push 0xc8
call fcn.00428750
add esp, 0x18
push esi
push 0x51d22f
call fcn.00408710
add esp, 8
jmp 0x422026
mov esi, 0x51d1eb
jmp case.0x421853.2
mov esi, 0x51d1eb
mov dword [esp + 0x24], 0x5212e1
jmp case.0x421853.2
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
push 1
push 0x15
push str.Error:_out_of_memory_n
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fwrite
add esp, 0x10
push 1
call sub.api_ms_win_crt_runtime_l1_1_0.dll_exit
nop word cs:[eax + eax]