Function at 0x428e20
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, edx
push edi
push esi
push ebx
mov ebx, eax
sub esp, 0x49c
mov edi, dword [ebx + 0x28]
mov eax, dword [esp + 0x4b0]
mov dword [esp + 0x58], ecx
mov edx, dword [esp + 0x4b4]
mov dword [esp + 0xe8], 0
mov dword [esp + 0x50], eax
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x54], edx
mov dword [esp + 0xec], 0
mov edx, dword [eax + ebp*4]
mov dword [esp + 0xf0], 0
mov eax, dword [eax + ebp*4 + 4]
mov dword [esp + 0xf4], 0
add edi, edx
sub eax, edx
mov dword [esp + 0x4c], edi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], eax
je 0x42947c
movzx ecx, byte [edi]
mov edx, edi
test cl, cl
js 0x4291e0
movzx esi, cl
add edx, 1
sub eax, 1
mov dword [esp + 0x48], esi
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x48]
lea esi, [eax - 1]
cmp esi, 3
ja 0x429440
lea edi, [esp + 0xe8]
lea eax, [eax + eax*2]
mov dword [esp + 0x28], 0
lea eax, [edi + eax*4]
mov dword [esp + 0x5c], edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebp
mov ebp, edi
mov esi, dword [esp + 0xcc]
test esi, esi
je 0x42947c
mov eax, dword [esp + 0xc8]
lea edi, [esi - 1]
mov dword [esp + 0x24], edi
lea ebx, [eax + 1]
mov dword [esp + 0xcc], edi
mov dword [esp + 0x30], ebx
mov dword [esp + 0xc8], ebx
movzx ebx, byte [eax]
cmp bl, 0x3f
ja 0x429440
mov edx, ebx
mov ecx, ebx
mov byte [esp + 0x18], bl
and ecx, 0xf
and edx, 0xf
mov dword [esp + 0x34], ecx
cmp dl, 8
ja 0x429440
cmp edi, ecx
jb 0x42947c
test dl, dl
je 0x429340
movzx ecx, byte [eax + 1]
xor ebx, ebx
test byte [esp + 0x18], 0xe
je 0x429390
movzx edi, byte [eax + 2]
shld ebx, ecx, 8
mov dword [esp + 0x3c], 0
shl ecx, 8
or ebx, dword [esp + 0x3c]
mov dword [esp + 0x38], edi
or ecx, dword [esp + 0x38]
cmp dl, 2
jbe 0x42944d
mov edi, ebx
mov esi, ecx
xor ebx, ebx
shld edi, ecx, 8
movzx ecx, byte [eax + 3]
shl esi, 8
or ebx, edi
or ecx, esi
test byte [esp + 0x18], 0xc
je 0x429310
mov edi, ebx
mov esi, ecx
xor ebx, ebx
shld edi, ecx, 8
movzx ecx, byte [eax + 4]
shl esi, 8
or ebx, edi
or ecx, esi
cmp dl, 4
jbe 0x429310
mov edi, ebx
mov esi, ecx
xor ebx, ebx
shld edi, ecx, 8
movzx ecx, byte [eax + 5]
shl esi, 8
or ebx, edi
or ecx, esi
cmp dl, 5
jbe 0x429049
mov edi, ebx
mov esi, ecx
xor ebx, ebx
shld edi, ecx, 8
movzx ecx, byte [eax + 6]
shl esi, 8
or ebx, edi
or ecx, esi
cmp dl, 6
jbe 0x429049
mov edx, ecx
movzx esi, byte [eax + 7]
mov ecx, ebx
xor edi, edi
shld ecx, edx, 8
shl edx, 8
or edi, ecx
or esi, edx
cmp dword [esp + 0x34], 8
mov ecx, esi
mov ebx, edi
jne 0x429049
movzx eax, byte [eax + 8]
shld edi, esi, 8
xor edx, edx
shl esi, 8
or edx, edi
or eax, esi
mov ebx, edx
mov ecx, eax
mov edx, dword [esp + 0x34]
add dword [esp + 0x30], edx
sub dword [esp + 0x24], edx
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x24]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], esi
cmp ebx, 0
ja 0x429440
mov eax, ecx
mov dword [ebp + 0x3c], eax
movzx eax, word [0x48b9c0]
mov ebx, 1
mov dword [ebp + 0x38], 0
mov word [ebp + 0x40], ax
test byte [esp + 0x18], 0x10
jne 0x429228
add dword [esp + 0x28], ebx
mov eax, dword [esp + 0x28]
cmp eax, 7
ja 0x429440
test byte [esp + 0x18], 0x20
jne 0x4292b0
add ebp, 0xc
cmp dword [esp + 0x40], ebp
jne 0x428f00
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x68]
cmp ecx, esi
jb 0x42947c
mov edx, ecx
mov dword [esp + 0xec], esi
sub edx, esi
mov dword [esp + 0x18], 4
mov dword [esp + 0x24], edx
cmp edx, 4
ja 0x4291cc
mov dword [esp + 0xf0], edx
test ecx, ecx
je 0x429ce0
lea edx, [esp + 0x250]
xor edi, edi
mov eax, edx
cmp ecx, 4
jae 0x429da5
test byte [esp + 0x28], 2
je 0x42912f
xor edx, edx
add eax, 2
mov word [eax - 2], dx
test byte [esp + 0x28], 1
je 0x429139
mov byte [eax], 0
test esi, esi
jne 0x429ce8
cmp dword [esp + 0x24], 1
je 0x42946e
mov eax, dword [esp + 0x24]
test eax, eax
je 0x42959e
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x24], ebx
lea ecx, [esp + 0x150]
lea edi, [esp + 0xc8]
mov ebx, ecx
lea eax, [esi + eax*4]
mov dword [esp + 0x18], eax
jmp 0x4291b6
mov eax, dword [esp + 0x150]
mov edx, dword [esp + 0x28]
cmp eax, edx
jae 0x42947c
cmp byte [esp + eax + 0x250], 0
jne 0x42947c
mov dword [esi + 0x10], eax
add esi, 4
mov byte [esp + eax + 0x250], 1
cmp dword [esp + 0x18], esi
je 0x42a734
mov edx, ebx
mov eax, edi
call fcn.00428b60
mov edx, eax
test eax, eax
je 0x42917d
lea esi, [esi]
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add esp, 0x49c
pop ebx
pop esi
pop edi
pop ebp
ret
lea edi, [esp + 0xc8]
lea edx, [esp + 0x250]
mov eax, edi
call fcn.00424c50
mov dword [esp + 0x18], eax
mov edi, eax
test eax, eax
jne 0x4291cc
mov eax, dword [esp + 0x250]
mov ecx, 0xfffffff
cmp ecx, eax
sbb edi, dword [esp + 0x254]
mov dword [esp + 0x48], eax
jae 0x428ec5
jmp 0x429440
mov esi, dword [esp + 0x24]
test esi, esi
je 0x42947c
mov eax, dword [esp + 0x30]
movzx ebx, byte [eax]
test bl, bl
js 0x429350
add eax, 1
mov dword [esp + 0xc8], eax
mov eax, esi
sub eax, 1
mov dword [esp + 0xcc], eax
cmp ebx, 7
ja 0x429440
mov edx, dword [esp + 0xcc]
mov byte [ebp + 0x40], bl
test edx, edx
je 0x42947c
mov ecx, dword [esp + 0xc8]
movzx eax, byte [ecx]
test al, al
js 0x4293b8
add ecx, 1
sub edx, 1
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], edx
cmp eax, 1
je 0x42909b
jmp 0x429440
mov eax, dword [esp + 0xcc]
test eax, eax
je 0x42947c
mov edx, dword [esp + 0xc8]
movzx ebx, byte [edx]
test bl, bl
js 0x4293f8
movzx ecx, bl
sub eax, 1
add edx, 1
cmp eax, ecx
jb 0x42947c
mov edi, dword [esp + 0x4c]
mov esi, edx
sub eax, ecx
add edx, ecx
mov byte [ebp + 0x41], bl
sub esi, edi
mov dword [esp + 0xc8], edx
mov dword [ebp + 0x38], esi
mov dword [esp + 0xcc], eax
jmp 0x4290b7
mov esi, dword [esp + 0x34]
add dword [esp + 0x30], esi
sub dword [esp + 0x24], esi
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x24]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], edx
jmp 0x429074
xor eax, eax
jmp 0x429076
lea edx, [esp + 0x250]
lea eax, [esp + 0xc8]
call fcn.00424c50
mov edx, eax
test eax, eax
jne 0x4291c8
mov ebx, dword [esp + 0x250]
mov eax, 0xfffffff
cmp eax, ebx
sbb edx, dword [esp + 0x254]
jae 0x429259
jmp 0x429440
add eax, 2
lea edx, [esi - 2]
mov dword [esp + 0x30], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], edx
jmp 0x429074
lea edx, [esp + 0x250]
lea eax, [esp + 0xc8]
call fcn.00424c50
mov edx, eax
test eax, eax
jne 0x4291c8
mov eax, dword [esp + 0x250]
mov ecx, 0xfffffff
cmp ecx, eax
sbb edx, dword [esp + 0x254]
jae 0x42929a
jmp 0x429440
lea edx, [esp + 0x250]
lea eax, [esp + 0xc8]
call fcn.00424c50
mov edx, eax
test eax, eax
jne 0x4291c8
mov ecx, dword [esp + 0x250]
mov eax, 0xfffffff
cmp eax, ecx
sbb edx, dword [esp + 0x254]
jb 0x429440
mov eax, dword [esp + 0xcc]
cmp eax, ecx
jb 0x42947c
cmp ecx, 0x7f
jbe 0x429a88
mov dword [esp + 0x18], 4
jmp 0x4291cc
add eax, 3
sub esi, 3
mov dword [esp + 0x30], eax
mov dword [esp + 0x24], esi
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], esi
jmp 0x429074
cmp byte [esp + 0x250], 0
je 0x42aeea
mov dword [esp + 0x18], 0x10
mov eax, dword [esp + 0x18]
add esp, 0x49c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp byte [esp + 0x150], 0
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x30]
je 0x42af09
cmp byte [esp + 0x151], 0
je 0x42aef1
cmp dword [esp + 0x48], 2
je 0x42947c
cmp byte [esp + 0x152], 0
je 0x42aec6
cmp dword [esp + 0x48], 4
jne 0x42947c
cmp byte [esp + 0x153], 0
mov eax, 3
jne 0x42947c
cmp dword [esp + 0x24], 1
mov dword [esp + 0xf4], eax
jne 0x42914c
cmp byte [esp + 0x250], 0
je 0x42aeea
cmp dword [esp + 0x28], 1
je 0x42947c
cmp byte [esp + 0x251], 0
je 0x42aebc
mov eax, dword [esp + 0x28]
cmp eax, 2
jbe 0x42947c
cmp byte [esp + 0x252], 0
je 0x42aeb2
cmp eax, 3
je 0x42947c
cmp byte [esp + 0x253], 0
je 0x42aea8
cmp eax, 4
je 0x42947c
cmp byte [esp + 0x254], 0
je 0x42ae9e
cmp eax, 5
je 0x42947c
cmp byte [esp + 0x255], 0
je 0x42ae94
cmp eax, 7
jne 0x42947c
cmp byte [esp + 0x256], 0
mov eax, 6
jne 0x42947c
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x18], 0xb
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xcc]
test eax, eax
jne 0x4291cc
mov eax, dword [ebx + 0x20]
movzx eax, byte [eax + ebp]
cmp dword [esp + 0xf4], eax
jne 0x4291cc
mov esi, dword [esp + 0x4bc]
mov ecx, dword [ebx + 0x1c]
xor edi, edi
mov dword [esp + 0x2c], edi
mov edi, dword [ebx + 0x24]
mov dword [esp + 0x28], esi
mov esi, dword [ecx + ebp*4]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
add eax, esi
xor ecx, dword [edi + eax*8 + 4]
xor edx, dword [edi + eax*8]
mov eax, ecx
or eax, edx
jne 0x4291cc
mov eax, dword [ebx + 0x18]
mov edx, dword [ebx + 8]
mov dword [esp + 0xd0], 0
cmp byte [esp + 0x128], 1
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov eax, dword [eax + ebp*4]
mov dword [esp + 0xdc], 0
mov dword [esp + 0x18], eax
mov dword [esp + 0xe0], 0
je 0x429711
mov dword [esp + 0x18], 4
lea edi, [esp + 0xd0]
mov dword [esp + 0x24], ebx
lea esi, [esp + 0xdc]
mov ebx, edi
mov edi, dword [esp + 0x18]
mov edx, dword [ebx]
add ebx, 4
mov dword [esp], 0x484ea4
mov dword [esp + 4], edx
call dword [0x484ea8]
cmp ebx, esi
jne 0x42967b
mov dword [esp + 0x18], edi
mov ebx, dword [esp + 0x24]
test edi, edi
jne 0x4291cc
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x4291cc
mov ecx, ebp
shr ecx, 3
movzx esi, byte [eax + ecx]
mov ecx, ebp
mov eax, pe_nt_image_headers32
and ecx, 7
sar eax, cl
test esi, eax
je 0x4291cc
mov eax, dword [esp + 0x4bc]
mov dword [esp + 0xc], 0x4af180
mov dword [esp], 0xffffffff
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4b8]
mov dword [esp + 4], eax
call dword [0x4b1180]
mov ecx, dword [ebx + 0x10]
not eax
cmp eax, dword [ecx + ebp*4]
mov eax, 3
cmove eax, edi
mov dword [esp + 0x18], eax
jmp 0x4291cc
mov eax, dword [esp + 0x124]
cmp eax, 0x21
je 0x42972c
cmp eax, 0x30101
je 0x42972c
test eax, eax
jne 0x42965b
cmp dword [esp + 0x48], 1
je 0x429dbb
cmp dword [esp + 0x48], 2
je 0x429de2
cmp dword [esp + 0x48], 4
jne 0x42965b
cmp byte [esp + 0x134], 1
jne 0x42965b
mov eax, dword [esp + 0x130]
cmp eax, 0x21
je 0x429776
cmp eax, 0x30101
je 0x429776
test eax, eax
jne 0x42965b
cmp byte [esp + 0x140], 1
jne 0x42965b
mov eax, dword [esp + 0x13c]
cmp eax, 0x21
je 0x42979f
cmp eax, 0x30101
je 0x42979f
test eax, eax
jne 0x42965b
cmp dword [esp + 0x148], 0x303011b
jne 0x42965b
cmp byte [esp + 0x14c], 4
jne 0x42965b
cmp dword [esp + 0xf0], 4
jne 0x42965b
cmp dword [esp + 0xf8], 2
jne 0x42965b
cmp dword [esp + 0xfc], 6
jne 0x42965b
cmp dword [esp + 0x100], 1
jne 0x42965b
cmp dword [esp + 0xec], 3
mov eax, dword [esp + 0x104]
jne 0x42965b
cmp dword [esp + 0x108], 5
jne 0x42965b
or eax, dword [esp + 0x10c]
jne 0x42965b
cmp dword [esp + 0x110], 4
jne 0x42965b
cmp dword [esp + 0x114], 1
jne 0x42965b
cmp dword [esp + 0x118], 3
jne 0x42965b
cmp dword [esp + 0x11c], 2
jne 0x42965b
mov eax, dword [esp + 0x18]
mov dword [esp + 0x78], 0
mov dword [esp + 0x38], 0
lea eax, [edx + eax*8]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x60], eax
lea eax, [edi + esi*8]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x30], ebp
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x5c]
mov ebx, dword [ebx + 0x3c]
cmp ebx, 0x21
je 0x4298d3
cmp ebx, 0x30101
je 0x4298d3
test ebx, ebx
je 0x4298d3
cmp ebx, 0x303011b
je 0x429b85
cmp dword [esp + 0x38], 1
je 0x42aabe
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
jmp 0x42965b
cmp eax, 4
je 0x429ae8
lea edi, [esp + 0x250]
mov eax, dword [esp + 0x4bc]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x34], edi
mov ebp, dword [esp + 0x4b8]
mov dword [esp + 0x18], eax
mov eax, 8
mov esi, dword [edx]
mov edi, dword [edx + 4]
mov edx, dword [esp + 0x60]
add edx, eax
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 8], 0
sub eax, esi
sbb edx, edi
add esi, dword [esp + 0x50]
adc edi, dword [esp + 0x54]
mov dword [esp + 0x40], eax
mov dword [esp + 0x254], edi
mov edi, dword [esp + 0x34]
mov dword [esp + 0x44], edx
mov dword [esp + 4], edi
mov edi, dword [esp + 0x58]
mov dword [esp + 0x250], esi
mov dword [esp], edi
call dword [edi + 0xc]
mov edx, eax
test eax, eax
jne 0x429ccf
test ebx, ebx
jne 0x429a96
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x40]
xor edi, edi
mov edx, dword [esp + 0x44]
xor eax, esi
xor edx, edi
or eax, edx
jne 0x429ad0
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x58]
or eax, edi
jne 0x4299da
jmp 0x429a50
mov ecx, dword [esp + 0x250]
test ecx, ecx
je 0x429e70
mov eax, dword [esp + 0x150]
mov dword [esp + 8], ecx
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 0x18], ecx
call sub.msvcrt.dll_memcpy
mov ecx, dword [esp + 0x18]
xor edx, edx
mov dword [esp], ebx
add ebp, ecx
sub esi, ecx
mov dword [esp + 4], ecx
sbb edi, edx
call dword [ebx + 4]
test eax, eax
jne 0x429a0b
mov eax, edi
or eax, esi
je 0x429a50
mov eax, 0x40000
xor edx, edx
mov dword [esp], ebx
cmp eax, esi
sbb edx, edi
cmovae eax, esi
mov dword [esp + 0x250], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 8], eax
lea eax, [esp + 0x150]
mov dword [esp + 4], eax
call dword [ebx]
test eax, eax
je 0x429990
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x18], eax
jmp 0x429663
cmp dword [esp + 0x18], eax
jne 0x42a952
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov ebx, eax
or ebx, edx
jne 0x42a952
mov eax, dword [esp + 0x260]
mov dword [esp], 0x484ea4
mov dword [esp + 4], eax
call dword [0x484ea8]
add dword [esp + 0x38], 1
mov eax, dword [esp + 0xe8]
mov ebx, dword [esp + 0x38]
add dword [esp + 0x5c], 0xc
cmp ebx, eax
jb 0x429897
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x18], 0
jmp 0x429663
mov edx, dword [esp + 0xc8]
mov ebx, ecx
jmp 0x4292e2
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x4c]
movzx ecx, byte [eax + 0x41]
add edx, dword [eax + 0x38]
mov dword [esp + 0x264], 0
mov dword [esp + 0x260], 0
cmp ebx, 0x30101
je 0x42a73d
cmp cl, 1
je 0x429e85
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x18], 1
jmp 0x429663
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0xac]
lea ecx, [esp + 0x250]
mov dword [esp + 0x250], 3
mov dword [esp + 0x254], 2
mov dword [esp + 0x258], 0
mov edi, dword [eax + edx*8]
mov esi, dword [ecx + edx*4]
mov eax, dword [eax + edx*8 + 4]
mov dword [esp + 0x34], ecx
cmp edx, 1
jbe 0x42a58f
cmp dword [esp + 0x38], 2
jne 0x4298c6
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
cmp edx, edi
mov edx, ecx
sbb edx, eax
jb 0x42ae4b
mov eax, dword [esp + 0x4bc]
mov dword [esp + 0x78], edi
mov dword [esp + 0x18], edi
sub eax, edi
add eax, dword [esp + 0x4b8]
mov dword [esp + 0x7c], eax
mov ebp, eax
mov edi, dword [esp + 0x60]
lea eax, [esi*8]
lea edx, [edi + eax]
add eax, 8
jmp 0x429902
mov ebx, dword [esp + 0x60]
cmp dword [esp + 0x38], 3
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
mov esi, dword [ebx + 0x10]
mov edi, dword [ebx + 0x14]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
jne 0x4298c6
sub esi, eax
sbb edi, edx
mov dword [esp + 0x48], esi
cmp edi, 0
ja 0x42aaa9
mov dword [esp + 4], esi
mov dword [esp], 0x484ea4
call dword [0x484ea4]
test eax, eax
mov dword [esp + 0xd8], eax
mov ebx, eax
sete dl
cmp dword [esp + 0x48], 0
setne al
and dl, al
mov byte [esp + 0x40], dl
jne 0x42aaa9
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0x50]
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x250], eax
adc edx, dword [esp + 0x54]
xor eax, eax
mov dword [esp + 8], eax
lea eax, [esp + 0x250]
mov dword [esp + 0x254], edx
mov dword [esp + 0x34], eax
mov dword [esp + 4], eax
mov dword [esp], ebp
call dword [ebp + 0xc]
mov edx, eax
test eax, eax
jne 0x429ccf
mov dword [esp + 0x18], ebx
mov eax, edi
or eax, esi
je 0x42a977
mov eax, 0x3ffff
mov edx, 0x40000
mov dword [esp], ebp
cmp eax, esi
mov eax, 0
sbb eax, edi
mov eax, esi
cmovb eax, edx
mov dword [esp + 0x250], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 8], eax
lea eax, [esp + 0x150]
mov dword [esp + 4], eax
call dword [ebp]
mov edx, eax
test eax, eax
jne 0x429ccf
mov ecx, dword [esp + 0x250]
test ecx, ecx
je 0x429e70
mov eax, dword [esp + 0x150]
mov dword [esp + 8], ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x18]
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [esp + 0x64]
xor edx, edx
add dword [esp + 0x18], ecx
mov dword [esp], ebp
sub esi, ecx
mov dword [esp + 4], ecx
sbb edi, edx
call dword [ebp + 4]
mov edx, eax
test eax, eax
je 0x429c37
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x18], edx
jmp 0x429663
test esi, esi
je 0x42959e
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x150]
mov dword [esp + 4], 0
lea esi, [esp + 0x108]
mov dword [esp], ecx
lea edi, [esp + 0xc8]
mov dword [esp + 8], eax
call sub.msvcrt.dll_memset
mov eax, 1
mov dword [esp + 0x18], ebx
mov dword [esp + 0x30], ebp
mov ebx, eax
mov ebp, dword [esp + 0x48]
jmp 0x429d91
mov eax, dword [esi]
mov edx, dword [esp + 0x28]
cmp eax, edx
jae 0x42947c
cmp byte [esp + eax + 0x250], 0
jne 0x42947c
mov byte [esp + eax + 0x250], 1
lea edx, [esi + 4]
mov eax, edi
call fcn.00428b60
mov edx, eax
test eax, eax
jne 0x4291c8
mov eax, dword [esi + 4]
cmp eax, ebp
jae 0x42947c
cmp byte [esp + eax + 0x150], 0
jne 0x42947c
add ebx, 1
mov byte [esp + eax + 0x150], 1
add esi, 8
cmp ebx, ebp
je 0x429493
mov edx, esi
mov eax, edi
call fcn.00428b60
mov edx, eax
test eax, eax
je 0x429d2a
jmp 0x4291c8
and ecx, 0xfffffffc
xor eax, eax
mov dword [edx + eax], edi
add eax, 4
cmp eax, ecx
jb 0x429daa
add eax, edx
jmp 0x42911f
cmp dword [esp + 0xf0], 1
jne 0x42965b
mov eax, dword [esp + 0xf8]
or eax, dword [esp + 0xec]
je 0x42985e
jmp 0x42965b
cmp byte [esp + 0x134], 1
jne 0x42965b
cmp dword [esp + 0xf0], 1
jne 0x42965b
cmp dword [esp + 0xec], 1
mov eax, dword [esp + 0xf8]
jne 0x42965b
cmp dword [esp + 0x108], 1
jne 0x42965b
or eax, dword [esp + 0x10c]
jne 0x42965b
mov eax, dword [esp + 0x130]
cmp eax, 0x3030401
je 0x42985e
ja 0x42ab77
cmp eax, 0x3030103
je 0x42985e
cmp eax, 0x3030205
je 0x42985e
cmp eax, 3
jne 0x42965b
jmp 0x42985e
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x18], 6
jmp 0x429663
movzx edx, byte [edx]
cmp dl, 0x28
ja 0x4298c6
je 0x42ae20
mov eax, edx
shr dl, 1
and eax, 1
lea ecx, [edx + 0xb]
or eax, 2
shl eax, cl
mov ecx, eax
mov edx, eax
movzx ebx, ah
shr eax, 0x18
shr ecx, 0x10
mov byte [esp + 0x154], al
lea eax, [esp + 0x150]
mov byte [esp + 0x151], dl
mov edx, eax
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x34]
mov byte [esp + 0x153], cl
mov ecx, 5
mov byte [esp + 0x150], 4
mov byte [esp + 0x152], bl
call fcn.00426070
mov edx, eax
test eax, eax
jne 0x429ccf
mov eax, dword [esp + 0x18]
mov dword [esp + 0x264], ebp
mov dword [esp + 0x2c8], 0
mov dword [esp + 0x278], eax
lea eax, [esp + 0xc0]
mov dword [esp + 0x74], eax
lea eax, [esp + 0xbc]
mov dword [esp + 0x2d0], 1
mov dword [esp + 0x2d4], 1
mov dword [esp + 0x2d8], 1
mov dword [esp + 0x274], 0
mov dword [esp + 0x29c], 1
mov dword [esp + 0x298], 0
mov dword [esp + 0x2a8], 0
mov dword [esp + 0x27c], 0
mov dword [esp + 0x280], 0
mov dword [esp + 0x2a0], 1
mov dword [esp + 0x70], eax
mov edi, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
mov eax, 0x40000
xor edx, edx
mov dword [esp + 0xbc], 0
cmp eax, edi
sbb edx, ebp
cmovae eax, edi
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call dword [eax]
mov edx, eax
test eax, eax
jne 0x42a479
mov eax, dword [esp + 0xc0]
mov edi, dword [esp + 0x274]
mov dword [esp + 0xc4], 0
mov ebp, dword [esp + 0xbc]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x2c8]
mov dword [esp + 0x80], edi
cmp eax, 8
je 0x42ae86
xor edx, edx
mov esi, ebp
mov ebp, edx
cmp eax, 9
je 0x42ae79
lea edx, [eax - 6]
cmp edx, 1
jbe 0x42a240
mov ebx, dword [esp + 0x18]
cmp dword [esp + 0x64], ebp
je 0x42a63f
movzx edx, byte [esi]
add ebp, 1
lea ecx, [esi + 1]
cmp eax, 5
ja case.default.0x42a05e
jmp dword [eax*4 + 0x48b860]
movzx eax, dl
movzx edx, byte [esp + 0x2cc]
or eax, dword [esp + 0x2c0]
add eax, 1
mov dword [esp + 0x2c0], eax
mov eax, edx
shr al, 5
test al, 2
jne 0x42a68e
mov eax, dword [esp + 0x2d8]
test eax, eax
jne case.default.0x42a05e
mov dword [esp + 0x2c8], 6
cmp dword [esp + 0x18], edi
je 0x42a2f4
mov esi, ecx
mov eax, 6
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x84], 0
sub ecx, edi
sub ebx, ebp
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x2c4]
mov dword [esp + 0x150], ebx
cmp dword [esp + 0x48], ecx
jb 0x42a0f7
mov dword [esp + 0x48], ecx
mov dword [esp + 0x84], 1
test dl, dl
js 0x42a347
cmp dword [esp + 0x64], ebp
je 0x42a63f
cmp eax, 6
je 0x42a4b0
mov eax, dword [esp + 0x48]
cmp eax, ebx
jae 0x42a123
mov dword [esp + 0x150], eax
mov ebx, eax
test ebx, ebx
je 0x42a2f4
add edi, dword [esp + 0x264]
mov dword [esp + 8], ebx
mov dword [esp], edi
mov dword [esp + 4], esi
call sub.msvcrt.dll_memcpy
mov edi, dword [esp + 0x274]
mov ecx, dword [esp + 0x280]
add edi, ebx
mov dword [esp + 0x274], edi
test ecx, ecx
je 0x42a48a
mov eax, dword [esp + 0x27c]
add eax, ebx
add esi, ebx
add ebp, ebx
mov dword [esp + 0x27c], eax
mov eax, dword [esp + 0x2c4]
sub eax, ebx
mov dword [esp + 0x2c4], eax
neg eax
sbb eax, eax
and eax, 7
mov dword [esp + 0x2c8], eax
jmp 0x42a032
mov dword [esp + 0x2c8], 4
movzx eax, dl
shl eax, 8
mov dword [esp + 0x2c0], eax
cmp ebx, edi
je 0x42a2f4
mov eax, 4
mov esi, ecx
jmp 0x42a042
cmp dl, 0xe0
ja case.default.0x42a05e
mov eax, 0x39
mul dl
shr ax, 9
mov ebx, eax
lea eax, [ebx + ebx*8]
sub edx, eax
mov eax, 0xffffffcd
mul bl
movzx edx, dl
shr ax, 0xa
movzx esi, al
lea eax, [eax + eax*4]
sub ebx, eax
mov dword [esp + 0x258], esi
movzx eax, bl
lea ebx, [edx + eax]
cmp ebx, 4
ja case.default.0x42a05e
mov dword [esp + 0x250], edx
mov dword [esp + 0x254], eax
mov dword [esp + 0x2d8], 0
mov dword [esp + 0x2c8], 6
cmp dword [esp + 0x18], edi
je 0x42a2f4
mov esi, ecx
mov eax, 6
movzx edx, byte [esp + 0x2cc]
jmp 0x42a0b9
mov dword [esp + 0x2c8], 2
movzx eax, dl
shl eax, 8
or dword [esp + 0x2c4], eax
cmp ebx, edi
je 0x42a2f4
mov eax, 2
mov esi, ecx
jmp 0x42a042
mov byte [esp + 0x2cc], dl
test dl, dl
je 0x42a6d6
js 0x42a6ad
cmp dl, 2
ja case.default.0x42a05e
mov dword [esp + 0x2c4], 0
mov dword [esp + 0x2c8], 1
cmp ebx, edi
je 0x42a2f4
mov eax, 1
mov esi, ecx
jmp 0x42a042
movzx eax, dl
or eax, dword [esp + 0x2c4]
add eax, 1
cmp byte [esp + 0x2cc], 0
mov dword [esp + 0x2c4], eax
js 0x42a66f
mov dword [esp + 0x2c8], 6
cmp dword [esp + 0x18], edi
jne 0x42a239
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x2c8], 9
mov dword [esp + 0x18], 1
mov eax, dword [esp + 0x260]
mov dword [esp], 0x484ea4
mov dword [esp + 4], eax
call dword [0x484ea8]
jmp 0x429663
mov dword [esp + 0x2c8], 9
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
cmp dword [esp + 0x18], edi
je 0x42a2fc
jmp 0x42a307
cmp eax, 6
je 0x42a512
mov eax, dword [esp + 0x2c0]
cmp eax, ebx
jae 0x42a362
mov dword [esp + 0x150], eax
lea eax, [esp + 0xc4]
mov edx, dword [esp + 0x48]
mov ecx, esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x84]
add edx, edi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov eax, dword [esp + 0x34]
call fcn.00427e40
mov edx, eax
mov eax, dword [esp + 0x150]
lea ebx, [eax + ebp]
add esi, eax
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x2c0]
sub ebx, eax
mov dword [esp + 0x84], ebx
mov dword [esp + 0x2c0], ebx
mov ebx, dword [esp + 0x274]
mov ecx, ebx
sub ecx, edi
mov dword [esp + 0xa8], ecx
mov ecx, dword [esp + 0x2c4]
sub ecx, ebx
add ecx, edi
mov dword [esp + 0x2c4], ecx
test edx, edx
jne 0x42a479
mov edx, dword [esp + 0xc4]
cmp edx, 3
je 0x42a433
mov edi, dword [esp + 0xa8]
or eax, edi
jne 0x42a4ee
or ecx, dword [esp + 0x84]
jne 0x42a2f4
cmp edx, 4
jne 0x42a2f4
mov dword [esp + 0x2c8], 0
mov edi, ebx
mov dword [esp + 0xc4], 2
jmp 0x42a032
mov eax, dword [esp + 0x48]
xor edx, edx
sub dword [esp + 0xc0], eax
sub dword [esp + 0x40], eax
sbb dword [esp + 0x44], edx
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x42a45d
cmp dword [esp + 0x80], ebx
je 0x42ae60
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call dword [eax + 4]
mov edx, eax
test eax, eax
je 0x429f9d
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x18], edx
jmp 0x42a30f
mov edx, dword [esp + 0x25c]
mov eax, dword [esp + 0x27c]
mov ecx, edx
sub ecx, eax
cmp ebx, ecx
jb 0x42a168
mov dword [esp + 0x280], edx
jmp 0x42a168
cmp dl, 1
je 0x42a5d7
mov eax, dword [esp + 0x2d0]
test eax, eax
jne 0x42a2f4
mov dword [esp + 0x29c], 1
mov dword [esp + 0x298], 0
mov dword [esp + 0x2a8], 0
jmp 0x42a112
mov eax, dword [esp + 0x2c8]
cmp edx, 4
je 0x42ae0f
cmp eax, 8
je 0x42ae04
mov ebp, dword [esp + 0x48]
mov edi, ebx
jmp 0x42a029
mov eax, edx
shr al, 5
and eax, 3
cmp al, 3
je 0x42a919
mov edx, dword [esp + 0x2d0]
test edx, edx
jne 0x42a2f4
test al, al
jne 0x42a8e8
mov eax, dword [esp + 0x2d4]
test eax, eax
jne 0x42a2f4
mov dword [esp + 0x29c], 1
mov dword [esp + 0x298], 0
mov dword [esp + 0x2a8], 0
mov dword [esp + 0x2d0], 0
mov dword [esp + 0x2d4], 0
mov dword [esp + 0x2c8], 7
jmp 0x42a350
mov dword [esp + 0x18], edi
cmp eax, 0
ja 0x42aaa9
mov dword [esp + 4], edi
mov dword [esp], 0x484ea4
call dword [0x484ea4]
mov ebp, eax
test eax, eax
jne 0x42a5bb
test edi, edi
jne 0x42aaa9
mov eax, dword [esp + 0x38]
neg eax
shl eax, 2
mov dword [esp + eax + 0xd4], ebp
mov dword [esp + eax + 0xe0], edi
jmp 0x429b6f
mov dword [esp + 0x2d4], 1
mov dword [esp + 0x2d8], 1
mov dword [esp + 0x2d0], 0
mov dword [esp + 0x29c], 1
mov dword [esp + 0x298], 0
mov dword [esp + 0x2a8], 0
mov dword [esp + 0x27c], 0
mov dword [esp + 0x280], 0
mov dword [esp + 0x2a0], 1
jmp 0x42a112
mov ecx, dword [esp + 0xc0]
xor edx, edx
mov dword [esp + 0x48], ebp
mov ebx, edi
mov dword [esp + 0xc4], 3
sub ecx, ebp
sub dword [esp + 0x40], ebp
mov dword [esp + 0xc0], ecx
sbb dword [esp + 0x44], edx
jmp 0x42a448
mov dword [esp + 0x2c8], 3
cmp ebx, edi
je 0x42a2f4
mov eax, 3
mov esi, ecx
jmp 0x42a042
mov dword [esp + 0x2c8], 5
cmp ebx, edi
je 0x42a2f4
mov eax, 5
mov esi, ecx
jmp 0x42a042
mov dword [esp + 0x2c8], 1
mov eax, edx
shl eax, 0x10
and eax, 0x1f0000
mov dword [esp + 0x2c4], eax
cmp ebx, edi
je 0x42a2f4
jmp 0x42a2b1
mov dword [esp + 0x2c8], 8
mov ecx, ebp
mov esi, edi
xor edx, edx
sub dword [esp + 0xc0], ecx
mov eax, dword [0x484ea8]
sub dword [esp + 0x40], ecx
mov edi, dword [esp + 0x40]
sbb dword [esp + 0x44], edx
mov edx, dword [esp + 0x260]
mov ebp, dword [esp + 0x44]
cmp dword [esp + 0x18], esi
jne 0x42a71a
mov ebx, edi
or ebx, ebp
je 0x42ae39
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
mov dword [esp + 4], edx
mov dword [esp], 0x484ea4
call eax
jmp 0x429ad8
mov ebx, dword [esp + 0x24]
jmp 0x42959e
mov eax, dword [esp + 0x34]
call fcn.00426070
mov edx, eax
test eax, eax
jne 0x429ccf
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x58]
mov dword [esp + 0x264], ebp
mov dword [esp + 0x274], 0
mov dword [esp + 0x278], eax
lea eax, [esp + 0xc0]
mov dword [esp + 0x74], eax
lea eax, [esp + 0xbc]
mov dword [esp + 0x29c], 1
mov dword [esp + 0x298], 0
mov dword [esp + 0x2a8], 0
mov dword [esp + 0x27c], 0
mov dword [esp + 0x280], 0
mov dword [esp + 0x2a0], 1
mov dword [esp + 0x70], eax
jmp 0x42a88e
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0x18]
mov dword [esp + 4], 1
mov ecx, dword [esp + 0xbc]
mov ebp, dword [esp + 0x274]
mov dword [esp + 0xc4], eax
lea eax, [esp + 0x150]
mov dword [esp + 8], eax
lea eax, [esp + 0xc4]
mov dword [esp], eax
mov eax, dword [esp + 0x34]
call fcn.00427e40
mov esi, dword [esp + 0xc4]
xor edx, edx
sub dword [esp + 0xc0], esi
mov ecx, eax
sub dword [esp + 0x40], esi
sbb dword [esp + 0x44], edx
test eax, eax
jne 0x42a8d7
mov edx, dword [esp + 0x150]
mov eax, dword [esp + 0x274]
cmp edx, 1
je 0x429a1c
cmp dword [esp + 0x18], eax
sete cl
cmp edx, 4
sete dl
test cl, dl
je 0x42a872
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov ebx, edx
or ebx, ecx
je 0x429a38
cmp ebp, eax
jne 0x42a87e
test esi, esi
je 0x42a952
mov dword [esp + 4], esi
mov dword [esp], edi
call dword [edi + 4]
mov ecx, eax
test eax, eax
jne 0x42a8d7
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x44]
mov eax, 0x40000
xor edx, edx
mov dword [esp + 0xbc], 0
cmp eax, ecx
mov dword [esp], edi
sbb edx, ebx
cmovae eax, dword [esp + 0x40]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
call dword [edi]
mov ecx, eax
test eax, eax
je 0x42a7d0
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x18], ecx
jmp 0x42a30f
mov dword [esp + 0x29c], 1
mov dword [esp + 0x298], 0
mov dword [esp + 0x2a8], 0
mov dword [esp + 0x2a0], 1
jmp 0x42a569
mov dword [esp + 0x29c], 1
mov dword [esp + 0x298], 0
mov dword [esp + 0x2a8], 0
mov dword [esp + 0x27c], 0
mov dword [esp + 0x280], 0
jmp 0x42a909
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
mov dword [esp], 0x484ea4
mov eax, dword [esp + 0x260]
mov dword [esp + 4], eax
call dword [0x484ea8]
jmp 0x429ad8
mov ecx, dword [esp + 0xdc]
mov edi, dword [esp + 0xd0]
test cl, 3
jne 0x429ad0
mov esi, dword [esp + 0xe0]
mov eax, esi
and eax, 3
jne 0x429ad0
mov ebp, dword [esp + 0x78]
lea edx, [ecx + esi]
add edx, ebp
cmp dword [esp + 0x4bc], edx
jne 0x429ad0
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x254], edi
mov dword [esp + 0x25c], ebx
mov dword [esp + 0x250], edx
add edx, ebp
xor ebp, ebp
mov dword [esp + 0x64], edx
mov dword [esp + 0x260], edx
lea edx, [edi + ecx]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x264], edx
mov edx, dword [esp + 0xd4]
mov dword [esp + 0x278], 9
mov dword [esp + 0x258], edx
add edx, esi
lea esi, [ebx + edi]
mov edi, dword [esp + 0x4b8]
mov dword [esp + 0x68], esi
mov dword [esp + 0x26c], esi
mov esi, dword [esp + 0x4bc]
mov dword [esp + 0x270], edi
add esi, edi
xor edi, edi
mov byte [esp + 0x283], 0
mov dword [esp + 0x18], esi
mov dword [esp + 0x274], esi
mov dword [esp + 0x27c], edi
mov dword [esp + 0x284], ebp
mov dword [esp + 0x288], ebp
mov dword [esp + 0x268], edx
xor edx, edx
mov edi, dword [esp + 0x34]
mov word [edi + edx*2 + 0x3c], 0x400
add edx, 1
cmp edx, 0x102
jne 0x42aa5f
xor edx, edx
lea ecx, [ebx + edx]
cmp edx, 5
je 0x42aba5
cmp edx, 1
je 0x42ab98
cmp dword [esp + 0x48], edx
je 0x42addf
movzx ecx, byte [ebx + edx]
shl eax, 8
mov byte [esp + 0x40], 1
add edx, 1
or eax, ecx
jmp 0x42aa77
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x18], 2
jmp 0x429663
movzx eax, byte [esp + 0x135]
cmp ebx, 3
je 0x42b3b8
test al, al
jne 0x4298c6
cmp ebx, 0x3030501
je 0x42b221
ja 0x42b295
cmp ebx, 0x3030205
je 0x42b1e3
cmp ebx, 0x3030401
jne 0x42b0e8
cmp dword [esp + 0x4bc], 0xf
jbe 0x429a50
xor ebx, ebx
mov eax, dword [esp + 0x4bc]
mov dword [esp + 0x18], ebx
sub eax, 0x10
mov edi, dword [esp + 0x4b8]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x70], eax
xor ebp, ebp
movzx edx, byte [edi + edx]
and edx, 0x1f
movzx edi, byte [edx + 0x48b9a0]
mov dword [esp + 0x64], edi
imul eax, ebp, 0x29
mov edx, dword [esp + 0x64]
mov ecx, ebp
shr edx, cl
add eax, 5
and dl, 1
jne 0x42af10
add ebp, 1
cmp ebp, 3
jne 0x42ab42
add dword [esp + 0x18], 0x10
mov eax, dword [esp + 0x70]
mov ebx, dword [esp + 0x18]
cmp eax, ebx
jae 0x42ab1f
jmp 0x429a50
mov ecx, eax
and ch, 0xfd
cmp ecx, 0x3030501
je 0x42985e
cmp eax, 0x3030805
jne 0x42965b
jmp 0x42985e
test eax, eax
je 0x42aa8c
jmp 0x429ad0
cmp byte [esp + 0x40], 0
je 0x42abba
mov dword [esp + 0x288], eax
mov dword [esp + 0x25c], ecx
cmp dword [esp + 0x288], 0xffffffff
je 0x429ad0
mov dword [esp + 0x284], 0xffffffff
mov edi, dword [esp + 0x278]
mov eax, dword [esp + 0x284]
lea edx, [edi - 1]
cmp edx, 1
jbe 0x42adcf
cmp eax, 0xffffff
ja 0x42ac2f
mov ecx, dword [esp + 0x25c]
cmp dword [esp + 0x68], ecx
je 0x42adf4
shl eax, 8
mov edx, dword [esp + 0x288]
mov dword [esp + 0x284], eax
lea eax, [ecx + 1]
mov dword [esp + 0x25c], eax
movzx eax, byte [ecx]
shl edx, 8
or eax, edx
mov dword [esp + 0x288], eax
mov esi, dword [esp + 0x250]
mov eax, dword [esp + 0x64]
sub eax, esi
je 0x42ad72
mov ebp, dword [esp + 0x270]
mov edx, dword [esp + 0x18]
sub edx, ebp
cmp edx, eax
jae 0x42ac5d
test edx, edx
je 0x42adc2
mov eax, edx
add eax, esi
movzx edx, byte [esi]
mov dword [esp + 0x40], eax
movzx eax, byte [esp + 0x283]
cmp al, 0xf
jne 0x42b67d
mov ecx, edx
and ecx, 0xfffffff0
cmp cl, 0x80
jne 0x42b67d
mov byte [ebp], dl
add esi, 1
lea eax, [ebp + 1]
add dword [esp + 0x27c], 1
mov byte [esp + 0x283], dl
mov dword [esp + 0x250], esi
mov dword [esp + 0x270], eax
xor eax, eax
cmp dl, 0xe9
sete al
add eax, eax
lea edi, [esp + 0x28c]
mov esi, dword [esp + 0x288]
add eax, edi
mov edi, dword [esp + 0x284]
movzx ebx, word [eax]
mov edx, edi
shr edx, 0xb
mov ecx, ebx
imul edx, ebx
cmp esi, edx
jb 0x42b662
shr ebx, 5
sub edi, edx
sub esi, edx
sub ecx, ebx
mov dword [esp + 0x284], edi
mov dword [esp + 0x288], esi
mov word [eax], cx
xor ebx, ebx
cmp byte [esp + 0x283], 0xe8
setne bl
add ebx, 1
mov edx, dword [esp + ebx*4 + 0x250]
cmp edx, dword [esp + ebx*4 + 0x260]
je 0x42b611
mov eax, dword [edx]
add edx, 4
mov dword [esp + ebx*4 + 0x250], edx
mov ebx, dword [esp + 0x27c]
bswap eax
lea edx, [ebx + 4]
mov ebx, dword [esp + 0x18]
sub eax, edx
mov dword [esp + 0x27c], edx
mov edx, dword [esp + 0x270]
mov ecx, eax
sub ebx, edx
shr ecx, 0x18
cmp ebx, 3
jbe 0x42b5e5
mov dword [edx], eax
add edx, 4
mov byte [esp + 0x283], cl
mov dword [esp + 0x270], edx
jmp 0x42abd3
xor esi, esi
mov dword [esp + 0x278], esi
mov eax, dword [esp + 0x34]
lea edx, [esp + 0x260]
mov edi, dword [eax + 0x10]
cmp dword [eax], edi
jne 0x429ad0
add eax, 4
cmp eax, edx
jne 0x42ad86
mov eax, dword [esp + 0x288]
mov ebx, dword [esp + 0x18]
cmp ebx, dword [esp + 0x270]
jne 0x429ad0
or eax, dword [esp + 0x278]
je 0x429a50
jmp 0x429ad0
mov dword [esp + 0x278], 8
jmp 0x42ad7b
mov dword [esp + 0x278], 9
jmp 0x42acfa
cmp byte [esp + 0x40], 0
je 0x42adf4
mov dword [esp + 0x288], eax
mov dword [esp + 0x25c], ecx
mov dword [esp + 0x278], 3
jmp 0x42ad7b
mov ecx, dword [esp + 0x48]
mov esi, ebx
jmp 0x42a6e5
mov dword [esp + 0xc4], 2
jmp 0x42a4fe
mov eax, 0xffffffff
mov ecx, 0xffffffff
mov ebx, 0xffffffff
mov edx, 0xffffffff
jmp 0x429eb3
mov dword [esp + 4], edx
mov dword [esp], 0x484ea4
call eax
jmp 0x429a50
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x18], 5
jmp 0x429663
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
mov edx, dword [esp + 0x260]
mov eax, dword [0x484ea8]
jmp 0x42a722
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
jmp 0x42a307
mov esi, dword [esp + 0x80]
xor ecx, ecx
jmp 0x42a6e5
mov eax, 5
jmp 0x429597
mov eax, 4
jmp 0x429597
mov eax, 3
jmp 0x429597
mov eax, 2
jmp 0x429597
mov eax, 1
jmp 0x429597
mov dword [esp + 0xf4], 2
cmp dword [esp + 0x24], 1
jne 0x42914c
cmp byte [esp + 0x250], 0
jne 0x42950d
xor eax, eax
jmp 0x429597
mov dword [esp + 0xf4], 1
cmp dword [esp + 0x24], 1
jne 0x42914c
jmp 0x42aedc
xor eax, eax
jmp 0x4294e2
mov edx, eax
mov edi, dword [esp + 0x18]
xor ecx, ecx
and eax, 7
shr edx, 3
mov dword [esp + 0x40], ecx
add edx, edi
add edx, dword [esp + 0x4b8]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x34], eax
xor eax, eax
mov ebx, dword [esp + 0x48]
lea ecx, [eax*8]
xor edi, edi
xor edx, edx
movzx esi, byte [ebx + eax]
shld edi, esi, cl
shl esi, cl
test cl, 0x20
cmovne edi, esi
cmovne esi, edx
add dword [esp + 0x40], esi
adc dword [esp + 0x44], edi
add eax, 1
cmp eax, 6
jne 0x42af39
movzx ecx, byte [esp + 0x34]
mov edx, dword [esp + 0x44]
xor edi, edi
mov eax, dword [esp + 0x40]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
cmovne eax, edx
cmovne edx, edi
mov ecx, edx
shr ecx, 5
and ecx, 0xf
xor ecx, 5
or ecx, 0
jne 0x42ab59
mov ecx, eax
mov ebx, edx
shrd ecx, edx, 9
and ecx, 7
or ecx, 0
jne 0x42ab59
mov ecx, eax
shl ebx, 0x10
mov esi, dword [esp + 0x18]
xor edi, edi
shrd ecx, edx, 0xd
and ebx, 0x100000
mov dword [esp + 0x6c], edi
and ecx, 0xfffff
or ecx, ebx
mov ebx, eax
mov eax, edx
shl ecx, 4
and eax, 0xffffffee
and ebx, 0x1fff
sub ecx, esi
mov dword [esp + 0x8c], eax
mov eax, 1
shr ecx, 4
mov dword [esp + 0x88], ebx
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x68], ecx
movzx ecx, byte [esp + 0x34]
mov esi, dword [esp + 0x68]
shl eax, cl
mov ecx, dword [esp + 0x40]
sub eax, 1
mov edi, ecx
cdq
movzx ecx, byte [esp + 0x34]
and edi, eax
and ebx, edx
mov eax, esi
mov dword [esp + 0x90], edi
mov edi, dword [esp + 0x6c]
shl eax, 0xd
mov dword [esp + 0x94], ebx
mov ebx, eax
mov edx, edi
shld edi, esi, 0x10
and ebx, 0xffffe000
shld edx, esi, 0xd
xor esi, esi
mov dword [esp + 0x98], ebx
mov eax, edx
mov dword [esp + 0xa0], esi
and eax, 1
mov dword [esp + 0x9c], eax
mov eax, edi
mov edx, dword [esp + 0x9c]
xor edi, edi
and eax, 0x10
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x98]
or edx, dword [esp + 0xa4]
or eax, dword [esp + 0xa0]
or edx, dword [esp + 0x8c]
or eax, dword [esp + 0x88]
shld edx, eax, cl
shl eax, cl
test cl, 0x20
cmovne edx, eax
cmovne eax, edi
or edx, dword [esp + 0x94]
xor ebx, ebx
or eax, dword [esp + 0x90]
mov edi, edx
mov esi, eax
lea ecx, [ebx*8]
mov edx, edi
mov eax, esi
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x42b0d4
mov eax, edx
mov ecx, dword [esp + 0x48]
mov byte [ecx + ebx], al
add ebx, 1
cmp ebx, 6
jne 0x42b0bd
jmp 0x42ab59
cmp ebx, 0x3030103
jne 0x4298c6
cmp dword [esp + 0x4bc], 4
jbe 0x429a50
mov eax, dword [esp + 0x4b8]
mov edi, dword [esp + 0x4bc]
xor esi, esi
xor ebx, ebx
lea edi, [eax + edi - 4]
mov edx, dword [esp + 0x4b8]
add edx, ebx
cmp edx, edi
jae 0x429a50
movzx eax, byte [edx]
and eax, 0xfffffffe
cmp al, 0xe8
je 0x42b138
add edx, 1
jmp 0x42b121
mov eax, edx
sub eax, dword [esp + 0x4b8]
mov ecx, eax
sub ecx, ebx
cmp ecx, 2
ja 0x42b1c2
shr esi, cl
mov ecx, esi
test esi, esi
je 0x42b1c2
shr esi, 1
cmp ecx, 4
ja 0x42b1d8
cmp ecx, 3
je 0x42b1d8
movzx ebx, byte [edx + esi + 1]
add ebx, 1
and bl, 0xfe
je 0x42b1d8
movzx ebx, byte [edx + 4]
add ebx, 1
and bl, 0xfe
jne 0x42b1d4
lea ebx, [eax + 5]
mov eax, dword [edx + 1]
shl ecx, 2
and ecx, 0x18
sub eax, ebx
mov esi, eax
shr esi, cl
add esi, 1
and esi, 0xfe
jne 0x42b1a4
mov esi, 0x100
shl esi, cl
mov ecx, esi
sub ecx, 1
xor eax, ecx
sub eax, ebx
mov ecx, eax
mov word [edx + 1], ax
shr eax, 0x18
xor esi, esi
and eax, 1
shr ecx, 0x10
neg eax
mov byte [edx + 3], cl
mov byte [edx + 4], al
jmp 0x42b118
movzx ecx, byte [edx + 4]
add ecx, 1
and cl, 0xfe
je 0x42b2f0
xor ecx, ecx
mov esi, ecx
shr esi, 1
or esi, 4
lea ebx, [eax + 1]
jmp 0x42b118
cmp dword [esp + 0x4bc], 3
jbe 0x429a50
mov eax, dword [esp + 0x4bc]
xor edx, edx
lea edi, [eax - 4]
mov eax, dword [esp + 0x4b8]
movzx ecx, byte [eax + edx]
mov eax, ecx
shr al, 2
cmp al, 0x12
je 0x42b463
add edx, 4
cmp edi, edx
jae 0x42b1fd
jmp 0x429a50
cmp dword [esp + 0x4bc], 3
jbe 0x429a50
mov eax, dword [esp + 0x4bc]
mov ebp, 0xfffffff8
lea ebx, [eax - 4]
xor eax, eax
mov edi, dword [esp + 0x4b8]
cmp byte [edi + eax + 3], 0xeb
jne 0x42b289
movzx edx, byte [edi + eax + 2]
movzx esi, byte [edi + eax + 1]
shl edx, 0x10
shl esi, 8
or edx, esi
movzx esi, byte [edi + eax]
or edx, esi
mov esi, ebp
sub esi, eax
lea edx, [esi + edx*4]
mov esi, edx
shr esi, 0x12
mov ecx, esi
mov esi, edx
shr edx, 2
shr esi, 0xa
mov byte [edi + eax + 2], cl
mov ecx, esi
mov byte [edi + eax], dl
mov byte [edi + eax + 1], cl
add eax, 4
cmp ebx, eax
jae 0x42b240
jmp 0x429a50
cmp ebx, 0x3030701
je 0x42b36b
cmp ebx, 0x3030805
jne 0x4298c6
cmp dword [esp + 0x4bc], 3
jbe 0x429a50
mov eax, dword [esp + 0x4bc]
mov edx, dword [esp + 0x4b8]
xor ecx, ecx
lea ebx, [eax - 4]
mov edi, ebx
movzx esi, byte [edx]
mov eax, esi
cmp al, 0x40
je 0x42b360
cmp al, 0x7f
je 0x42b2fd
add ecx, 4
add edx, 4
cmp edi, ecx
jae 0x42b2d0
jmp 0x429a50
lea ebx, [eax + 5]
mov eax, dword [edx + 1]
sub eax, ebx
jmp 0x42b1a4
movzx eax, byte [edx + 1]
and eax, 0xffffffc0
cmp al, 0xc0
jne 0x42b2e1
movzx eax, byte [edx + 1]
shl esi, 0x18
shl eax, 0x10
or eax, esi
movzx esi, byte [edx + 3]
or eax, esi
movzx esi, byte [edx + 2]
shl esi, 8
or eax, esi
shl eax, 2
sub eax, ecx
mov esi, eax
shr eax, 2
shl esi, 7
and eax, 0x3fffff
sar esi, 9
and esi, 0x3fc00000
or eax, esi
or eax, 0x40000000
mov esi, eax
mov byte [edx + 2], ah
shr esi, 0x18
mov byte [edx + 3], al
mov ebx, esi
mov esi, eax
shr esi, 0x10
mov byte [edx], bl
mov ebx, esi
mov byte [edx + 1], bl
jmp 0x42b2e1
cmp byte [edx + 1], 0x3f
jbe 0x42b308
jmp 0x42b2e1
cmp dword [esp + 0x4bc], 3
jbe 0x429a50
mov eax, dword [esp + 0x4bc]
xor esi, esi
sub eax, 4
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x4b8]
lea ebp, [eax + esi + 1]
lea eax, [esi + 2]
movzx edx, byte [ebp]
mov byte [esp + 0x34], dl
and edx, 0xfffffff8
cmp dl, 0xf0
je 0x42b4df
mov esi, eax
cmp dword [esp + 0x18], eax
jae 0x42b389
jmp 0x429a50
sub al, 1
jne 0x4298c6
lea esi, [esp + 0x150]
xor eax, eax
mov ecx, 0x40
mov ebx, dword [esp + 0x4c]
mov edi, esi
mov dword [esp + 0x68], esi
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x12c]
movzx eax, byte [ebx + eax]
lea edx, [eax + 1]
lea eax, [esp + 0x250]
mov dword [esp + 0x34], eax
mov edi, eax
cmp edx, 4
jb 0x42b401
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
xor eax, eax
test dl, 2
je 0x42b413
movzx eax, word [esi]
mov word [edi], ax
mov eax, 2
test dl, 1
je 0x42b41f
movzx ecx, byte [esi + eax]
mov byte [edi + eax], cl
mov esi, dword [esp + 0x34]
xor ebx, ebx
xor eax, eax
cmp ebx, dword [esp + 0x4bc]
jae 0x42b56c
xor eax, eax
cmp eax, edx
jae 0x42b427
cmp ebx, dword [esp + 0x4bc]
jae 0x42b56c
mov edi, dword [esp + 0x4b8]
movzx ecx, byte [edi + ebx]
add cl, byte [esi + eax]
mov byte [edi + ebx], cl
add ebx, 1
mov byte [esi + eax], cl
add eax, 1
jmp 0x42b436
mov eax, dword [esp + 0x4b8]
movzx ebx, byte [eax + edx + 3]
mov eax, ebx
and eax, 3
sub al, 1
jne 0x42b215
mov eax, dword [esp + 0x4b8]
mov esi, dword [esp + 0x4b8]
and ebx, 0xfc
shl ecx, 0x18
and ecx, 0x3000000
movzx eax, byte [eax + edx + 1]
movzx esi, byte [esi + edx + 2]
shl eax, 0x10
shl esi, 8
or eax, esi
or eax, ebx
mov ebx, dword [esp + 0x4b8]
or eax, ecx
sub eax, edx
mov ecx, eax
mov byte [ebx + edx + 2], ah
shr ecx, 0x18
and ecx, 3
or ecx, 0x48
mov byte [ebx + edx], cl
mov ecx, eax
or eax, 1
shr ecx, 0x10
mov byte [ebx + edx + 3], al
mov byte [ebx + edx + 1], cl
jmp 0x42b215
mov ebx, dword [esp + 0x4b8]
lea ebx, [ebx + esi + 3]
movzx edx, byte [ebx]
mov byte [esp + 0x40], dl
and edx, 0xfffffff8
cmp dl, 0xf8
jne 0x42b3ab
mov edi, dword [esp + 0x4b8]
add eax, dword [esp + 0x4b8]
movzx edx, byte [eax]
add edi, esi
movzx ecx, byte [edi]
shl ecx, 0xb
or edx, ecx
mov ecx, dword [esp + 0x34]
shl ecx, 0x13
and ecx, 0x380000
or edx, ecx
mov ecx, dword [esp + 0x40]
shl ecx, 8
and ecx, 0x700
or edx, ecx
mov ecx, 0xfffffffc
sub ecx, esi
add edx, edx
add edx, ecx
mov ecx, edx
shr ecx, 0x14
and ecx, 7
or ecx, 0xfffffff0
mov byte [ebp], cl
mov ecx, edx
shr ecx, 0xc
mov byte [edi], cl
mov ecx, edx
shr edx, 1
shr ecx, 9
or ecx, 0xfffffff8
mov byte [ebx], cl
mov byte [eax], dl
lea eax, [esi + 4]
jmp 0x42b3ab
cmp edx, eax
jne 0x42b572
xor eax, eax
mov esi, dword [esp + 0x34]
sub edx, eax
mov edi, dword [esp + 0x68]
add esi, eax
cmp edx, 4
jb 0x42b58a
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
test dl, 2
je 0x42b59c
movzx ecx, word [esi]
mov word [edi], cx
mov ecx, 2
test dl, 1
je 0x42b5a8
movzx ebx, byte [esi + ecx]
mov byte [edi + ecx], bl
mov ebx, dword [esp + 0x68]
add ebx, edx
mov edx, ebx
cmp eax, 4
jae 0x42b6af
test eax, eax
je 0x429a50
movzx ecx, byte [esp + 0x250]
mov byte [ebx], cl
test al, 2
je 0x429a50
movzx ecx, word [esp + eax + 0x24e]
mov word [ebx + eax - 2], cx
jmp 0x429a50
mov dword [esp + 0x280], eax
lea eax, [esp + 0x280]
mov dword [esp + 8], ebx
add ebx, 4
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x18]
mov dword [esp + 0x270], eax
cmp dword [esp + 0x284], 0xffffff
mov dword [esp + 0x278], ebx
ja 0x42ad7b
mov eax, dword [esp + 0x25c]
cmp eax, dword [esp + 0x26c]
je 0x42ad7b
mov edx, dword [esp + 0x288]
lea ecx, [eax + 1]
mov dword [esp + 0x25c], ecx
movzx eax, byte [eax]
shl edx, 8
or eax, edx
mov dword [esp + 0x288], eax
jmp 0x42ad7b
mov dword [esp + 0x284], edx
mov edx, 0x800
sub edx, ebx
shr edx, 5
add edx, ebx
mov word [eax], dx
jmp 0x42abd3
mov byte [esp + 0x48], al
lea edx, [esi + 1]
lea ecx, [ebp + 1]
movzx ebx, byte [edx - 1]
mov edi, edx
mov byte [ecx - 1], bl
cmp bl, 0xf
je 0x42b765
and ebx, 0xfffffffe
cmp bl, 0xe8
je 0x42b70d
cmp dword [esp + 0x40], edx
je 0x42b6df
add edx, 1
add ecx, 1
jmp 0x42b687
mov ecx, dword [esp + 0x250]
lea edi, [ebx + 4]
and edi, 0xfffffffc
mov dword [ebx], ecx
mov ecx, dword [esp + eax + 0x24c]
sub edx, edi
mov dword [ebx + eax - 4], ecx
add eax, edx
mov esi, dword [esp + 0x34]
shr eax, 2
sub esi, edx
mov ecx, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x429a50
mov ebx, edx
mov eax, ebp
sub ebx, esi
add eax, ebx
mov dword [esp + 0x250], edi
mov dword [esp + 0x270], eax
xor eax, eax
cmp dword [esp + 0x64], edi
setne al
shl eax, 3
mov dword [esp + 0x278], eax
jmp 0x42ad7b
sub edi, 1
movzx eax, byte [esp + 0x48]
mov ebx, edi
sub ebx, esi
cmp dword [esp + 0x40], edi
je 0x42b761
movzx edx, byte [edi]
test ebx, ebx
je 0x42b72a
movzx eax, byte [edi - 1]
add ebx, 1
add edi, 1
add dword [esp + 0x27c], ebx
add ebx, ebp
mov byte [esp + 0x283], dl
mov dword [esp + 0x250], edi
mov dword [esp + 0x270], ebx
cmp dl, 0xe8
jne 0x42acaa
add eax, 2
add eax, eax
jmp 0x42acb4
mov eax, ebp
jmp 0x42b6e5
cmp dword [esp + 0x40], edx
je 0x42b6df
movzx ebx, byte [edx]
mov eax, ebx
and eax, 0xfffffff0
cmp al, 0x80
jne 0x42b6a7
mov byte [ecx], bl
mov ebx, edx
movzx eax, byte [esp + 0x48]
sub ebx, esi
jmp 0x42b71f