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

Disassembly:
mov eax, 0x1808
call fcn.0042c930
push ebx
push ebp
push esi
mov esi, dword [esp + 0x1818]
test esi, esi
push edi
mov dword [esp + 0x20], 0
je 0x429a9a
mov eax, dword [esi + 0x10]
test eax, eax
je 0x429a9a
mov edx, dword [esp + 0x1824]
test edx, edx
je 0x429a9a
mov eax, dword [esp + 0x1820]
test eax, eax
je 0x429a9a
mov ebp, dword [edx]
test ebp, ebp
je 0x429a9a
mov edi, dword [edx + 4]
test edi, edi
jbe 0x429a9a
mov ecx, dword [eax]
test ecx, ecx
je 0x429a9a
mov ebx, dword [eax + 4]
test ebx, ebx
jbe 0x429a9a
mov ebx, dword [esp + 0x1828]
test ebx, ebx
je 0x4285fa
mov eax, dword [esi + 0xc]
cmp ebx, eax
jle 0x428606
mov eax, dword [esi + 0xc]
mov ebx, eax
mov dword [esp + 0x1828], ebx
cmp dword [esi + 8], ebx
jg 0x429a7b
cmp ebx, eax
jg 0x429a7b
mov edx, dword [esi + 0x74]
test edx, edx
jbe 0x428649
cmp dword [esi + 0x58], ebx
jle 0x428649
mov ecx, dword [esp + 0x1820]
mov edx, dword [esp + 0x1824]
xor eax, eax
pop edi
mov dword [ecx + 4], eax
pop esi
mov dword [edx + 4], eax
pop ebp
mov eax, 0x82010401
pop ebx
add esp, 0x1808
ret
mov ebx, dword [esi + 0x3c]
mov eax, esi
sub eax, ebx
add edi, ebp
sub eax, 0x114
lea ebx, [esp + 0x98]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x1820]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x48], edi
mov eax, dword [eax + 4]
mov dword [esp + 0x24], esi
add eax, ecx
mov dword [esp + 0x50], ebx
mov dword [esp + 0xc4], eax
mov eax, dword [esi + 0x64]
test eax, eax
mov dword [esp + 0x98], esi
mov dword [esp + 0xa4], 1
mov dword [esp + 0xa8], 0
mov dword [esp + 0xc8], ebp
mov dword [esp + 0xc0], ecx
jbe 0x4286e3
mov ecx, dword [esi + 0x68]
mov dword [esp + 0xac], eax
cmp ecx, 0xffffffff
je 0x4286d5
mov dword [esp + 0xcc], ebp
add ebp, eax
mov dword [esp + 0x10], ebp
jmp 0x4286fa
mov ecx, dword [esi + 0x5c]
add ecx, ebp
mov dword [esp + 0xcc], ecx
jmp 0x4286fa
xor eax, eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xcc], eax
test edx, edx
jbe 0x4288b3
mov ecx, dword [esi + 0x6c]
add ecx, ebp
sub edi, ecx
cmp edi, edx
jl 0x428870
mov eax, edx
sub eax, 2
je 0x42883c
sub eax, 2
je 0x428815
sub eax, 4
je 0x428733
xor eax, eax
mov al, byte [ecx]
jmp 0x42884a
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
mov edi, edx
mov ecx, 0x10
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
xor esi, esi
and edi, 0xff0000
call fcn.0042cd70
or esi, eax
or edi, edx
mov ecx, 0x10
mov eax, esi
mov edx, edi
call fcn.0042cd70
mov esi, dword [esp + 0x44]
xor ecx, ecx
mov edi, esi
or eax, ecx
and edi, 0xff00
mov ecx, 0x10
or edx, edi
call fcn.0042cd70
mov edi, esi
xor ecx, ecx
and edi, 0xff
or eax, ecx
or edx, edi
mov ecx, 8
call fcn.0042cd70
mov edi, dword [esp + 0x40]
mov dword [esp + 0x64], eax
mov dword [esp + 0x30], edx
mov ecx, 0x10
mov eax, edi
mov edx, esi
call fcn.0042cb10
xor ecx, ecx
and edi, 0xff00
or edx, ecx
or eax, edi
mov ecx, 0x10
call fcn.0042cb10
mov ecx, dword [esp + 0x40]
xor esi, esi
and ecx, 0xff0000
or edx, esi
or eax, ecx
mov ecx, 0x10
call fcn.0042cb10
mov ecx, dword [esp + 0x40]
or edx, esi
and ecx, 0xff000000
or eax, ecx
mov ecx, 8
call fcn.0042cb10
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x181c]
or ecx, eax
mov eax, dword [esp + 0x30]
or eax, edx
mov dword [esp + 0x68], eax
jmp 0x428851
mov ecx, dword [ecx]
mov eax, ecx
mov edx, ecx
and eax, 0xff0000
shr edx, 0x10
or eax, edx
mov edx, ecx
shl edx, 0x10
and ecx, 0xff00
or edx, ecx
shr eax, 8
shl edx, 8
or eax, edx
jmp 0x42884a
xor eax, eax
mov ax, word [ecx]
xor ecx, ecx
mov ch, al
shr eax, 8
or eax, ecx
cdq
mov ecx, eax
mov dword [esp + 0x68], edx
xor edx, edx
mov eax, ecx
cmp ecx, edx
mov dword [esp + 0xb8], eax
jne 0x428880
mov eax, dword [esp + 0x1828]
mov dword [esp + 0xb8], eax
jmp 0x428880
mov eax, dword [esp + 0x1828]
xor edx, edx
mov dword [esp + 0xb8], eax
cmp dword [esi + 8], eax
jg 0x42888f
cmp eax, dword [esi + 0xc]
jg 0x42888f
cmp eax, dword [esi + 0x58]
jge 0x4288c3
mov eax, dword [esp + 0x1820]
mov ecx, dword [esp + 0x1824]
pop edi
pop esi
mov dword [eax + 4], edx
pop ebp
mov dword [ecx + 4], edx
mov eax, 0x82010470
pop ebx
add esp, 0x1808
ret
mov edx, dword [esp + 0x1828]
mov dword [esp + 0xb8], edx
xor edx, edx
mov eax, 1
mov dword [esp + 0xbc], edx
mov dword [esp + 0x34], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0x9c], edx
mov dword [esp + 0x2c], edx
xor edi, edi
cmp dword [esp + 0x2c], edi
je 0x428ac5
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x2c], edi
cmp eax, edi
jbe 0x428a56
sub eax, 2
je 0x428a29
sub eax, 2
je 0x428a01
sub eax, 4
je 0x428925
mov eax, dword [ebx + 0x34]
xor ecx, ecx
mov cl, byte [eax]
mov eax, ecx
jmp 0x428a3a
mov edx, dword [ebx + 0x34]
mov ecx, 0x10
xor esi, esi
mov edi, dword [edx]
mov eax, edi
mov edx, dword [edx + 4]
mov ebp, edx
mov dword [esp + 0x94], edx
and ebp, 0xff0000
call fcn.0042cd70
or esi, eax
or ebp, edx
mov ecx, 0x10
mov eax, esi
mov edx, ebp
call fcn.0042cd70
mov esi, dword [esp + 0x94]
xor ecx, ecx
mov ebp, esi
or eax, ecx
and ebp, 0xff00
mov ecx, 0x10
or edx, ebp
call fcn.0042cd70
mov ebp, esi
xor ecx, ecx
and ebp, 0xff
or eax, ecx
or edx, ebp
mov ecx, 8
call fcn.0042cd70
mov dword [esp + 0x80], eax
mov ebp, edx
mov ecx, 0x10
mov eax, edi
mov edx, esi
call fcn.0042cb10
mov ecx, edi
xor esi, esi
and ecx, 0xff00
or edx, esi
or eax, ecx
mov ecx, 0x10
call fcn.0042cb10
mov ecx, edi
or edx, esi
and ecx, 0xff0000
or eax, ecx
mov ecx, 0x10
call fcn.0042cb10
xor ecx, ecx
and edi, 0xff000000
or edx, ecx
or eax, edi
mov ecx, 8
call fcn.0042cb10
mov ecx, dword [esp + 0x80]
or ebp, edx
or ecx, eax
mov dword [esp + 0x3c], ebp
xor edi, edi
jmp 0x428a41
mov edx, dword [ebx + 0x34]
mov ecx, dword [edx]
mov eax, ecx
mov edx, ecx
and eax, 0xff0000
shr edx, 0x10
or eax, edx
mov edx, ecx
shl edx, 0x10
and ecx, 0xff00
or edx, ecx
shr eax, 8
shl edx, 8
jmp 0x428a38
mov ecx, dword [ebx + 0x34]
xor eax, eax
xor edx, edx
mov ax, word [ecx]
mov dh, al
shr eax, 8
or eax, edx
cdq
mov ecx, eax
mov dword [esp + 0x3c], edx
mov ebp, dword [ebx + 0x30]
mov eax, dword [esp + 0x48]
add ebp, ecx
cmp ebp, eax
mov dword [esp + 0x10], ebp
ja 0x42999e
cmp dword [ebx + 0xc], edi
jle 0x428a81
cmp dword [ebx + 0x14], edi
jbe 0x428a81
cmp dword [ebx + 0x18], edi
jge 0x428a76
mov eax, dword [ebx + 0x18]
mov dword [ebx + 0x34], ebp
sub ebp, eax
mov dword [esp + 0x10], ebp
mov dword [ebx + 0x30], ebp
jmp 0x428a81
mov eax, dword [ebx + 0x18]
mov dword [ebx + 0x30], ebp
add eax, ebp
mov dword [ebx + 0x34], eax
cmp dword [esp + 0x34], 1
jle 0x428ac5
mov eax, dword [ebx + 4]
test byte [eax + 0x44], 4
je 0x428aab
mov ecx, dword [eax + 0x18]
mov eax, dword [ebx - 0x98]
mov esi, dword [esp + 0x24]
add eax, ecx
mov dword [ebx - 0x98], eax
mov dword [ebx + 0x24], edi
jmp 0x428ac9
mov esi, dword [esp + 0x24]
mov eax, dword [ebx - 0x98]
mov edx, dword [esi + 0x1c]
add eax, edx
mov dword [ebx - 0x98], eax
mov dword [ebx + 0x24], edi
jmp 0x428ac9
mov esi, dword [esp + 0x24]
cmp dword [ebx + 0xc], edi
jg 0x428b2d
mov eax, dword [esp + 0x34]
sub ebx, 0xbc
dec eax
mov dword [esp + 0x50], ebx
cmp eax, edi
mov dword [esp + 0x34], eax
jle 0x4299dc
mov eax, dword [ebx]
mov dword [esp + 0x24], eax
cmp dword [eax + 0x10], edi
je 0x4296b9
mov esi, dword [ebx + 0x10]
mov edx, dword [eax + 0x2c]
inc esi
mov ecx, esi
mov dword [ebx + 0x10], esi
cmp ecx, edx
jl 0x42998e
mov ecx, dword [ebx + 0xc]
mov edx, dword [eax + 0x1c]
mov eax, dword [ebx + 0x28]
dec ecx
add eax, edx
mov dword [ebx + 0x10], edi
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 0x38]
mov dword [ebx + 0xc], ecx
mov dword [esp + 0x2c], eax
jmp 0x42998e
mov ecx, dword [ebx + 0x10]
lea eax, [ecx + ecx*4]
lea edx, [eax + eax*8]
mov al, byte [esi + edx*4 + 0xfc]
test al, 2
lea edi, [esi + edx*4 + 0xb8]
mov dword [esp + 0x18], edi
je 0x428b59
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x428bef
jmp 0x428bd1
mov eax, dword [edi + 0x58]
test eax, eax
jbe 0x428ba8
mov edx, dword [edi + 0x5c]
add edx, dword [ebx + 0x28]
sub eax, 2
je 0x428b9a
sub eax, 2
je 0x428b8f
sub eax, 4
je 0x428b82
xor eax, eax
mov al, byte [edx]
cdq
mov dword [esp + 0x3c], edx
mov edx, eax
jmp 0x428bab
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x3c], edx
mov edx, eax
jmp 0x428bab
mov eax, dword [edx]
cdq
mov dword [esp + 0x3c], edx
mov edx, eax
jmp 0x428bab
xor eax, eax
mov ax, word [edx]
cdq
mov dword [esp + 0x3c], edx
mov edx, eax
jmp 0x428bab
mov edx, dword [edi + 0x24]
test edx, edx
mov dword [esp + 0x4c], edx
jl 0x4299ce
mov eax, dword [edi + 0x24]
cmp eax, edx
jge 0x428bc6
test eax, eax
jg 0x4299ce
test edx, edx
jne 0x428c25
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x428bef
mov edx, dword [ebx + 0xc]
mov eax, dword [esi + 0x1c]
mov ecx, dword [ebx + 0x28]
dec edx
add ecx, eax
mov dword [ebx + 0xc], edx
mov dword [ebx + 0x28], ecx
mov ecx, dword [ebx + 0x38]
mov dword [esp + 0x2c], ecx
jmp 0x42998e
lea eax, [ecx + 1]
mov ecx, dword [esi + 0x2c]
cmp eax, ecx
mov dword [ebx + 0x10], eax
jl 0x42998e
mov ecx, dword [ebx + 0xc]
mov edx, dword [esi + 0x1c]
mov eax, dword [ebx + 0x28]
dec ecx
add eax, edx
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 0x38]
mov dword [ebx + 0xc], ecx
mov dword [esp + 0x2c], eax
jmp 0x42998e
mov eax, dword [ebx + 0x28]
mov esi, dword [edi + 0x2c]
add esi, eax
mov al, byte [edi + 0x44]
test al, 4
mov dword [esp + 0x14], esi
je 0x428c5f
mov eax, dword [edi + 8]
mov esi, dword [esi]
cmp eax, 1
mov dword [esp + 0x14], esi
jle 0x428c4d
mov ecx, dword [edi + 0x14]
add ecx, esi
jmp 0x428c62
mov ecx, dword [edi + 0x78]
mov eax, dword [esp + 0x6c]
mov ecx, dword [ecx + eax + 0x130]
add ecx, esi
jmp 0x428c62
mov ecx, dword [ebx + 0x2c]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x28], ecx
cmp dword [edi + 4], eax
jle 0x428e07
mov eax, dword [edi + 0x98]
cmp eax, 0xffffffff
mov dword [esp + 0x30], eax
jne 0x428cc1
mov eax, dword [edi + 0x20]
test eax, eax
jbe 0x428c8f
imul eax, edx
mov edi, eax
jmp 0x428c95
mov edi, dword [edi + 0x18]
imul edi, edx
sub ecx, esi
cmp ecx, edi
jge 0x428ca8
mov dword [esp + 0x20], 0x82010407
jmp 0x428d95
mov ecx, edi
xor eax, eax
mov edx, ecx
mov edi, esi
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
jmp 0x428d95
mov eax, dword [edi + 8]
cmp eax, 0x15
je 0x428cd7
cmp eax, 0x16
je 0x428cd7
mov eax, dword [edi + 0x18]
mov dword [esp + 0x1c], eax
jmp 0x428ce6
mov eax, dword [edi + 0x20]
test eax, eax
ja 0x428ce2
mov eax, ecx
sub eax, esi
mov dword [esp + 0x1c], eax
sub ecx, esi
cmp ecx, eax
jge 0x428cf2
mov eax, ecx
mov dword [esp + 0x1c], eax
mov ecx, dword [edi + 0x8c]
cmp eax, ecx
jge 0x428d09
mov dword [esp + 0x20], 0x82010407
jmp 0x428d95
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x6c]
test edx, edx
lea eax, [eax + edi + 0x114]
mov dword [esp + 0x30], eax
jle 0x428d95
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x28], edx
cmp ecx, 0x40
ja 0x428d4a
xor edi, edi
test ecx, ecx
jbe 0x428d70
mov cl, byte [eax]
mov edx, dword [esp + 0x18]
mov byte [esi], cl
inc esi
mov ecx, dword [edx + 0x8c]
inc eax
inc edi
cmp edi, ecx
jb 0x428d33
jmp 0x428d70
mov esi, eax
mov eax, dword [esp + 0x14]
mov edx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
add eax, dword [ecx + 0x8c]
mov dword [esp + 0x14], eax
mov esi, eax
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
mov ecx, dword [edx + 0x8c]
mov edx, dword [esp + 0x1c]
sub edx, ecx
add esi, edx
mov edx, dword [esp + 0x28]
dec edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x28], edx
jne 0x428d28
test dword [esp + 0x20], 0x80000000
jne 0x4299a8
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x10]
test eax, eax
jne 0x428dcc
mov edx, dword [ebx + 0xc]
mov eax, dword [ecx + 0x1c]
mov ecx, dword [ebx + 0x28]
dec edx
add ecx, eax
mov dword [ebx + 0xc], edx
mov dword [ebx + 0x28], ecx
mov ecx, dword [ebx + 0x38]
mov dword [esp + 0x2c], ecx
jmp 0x42998e
mov eax, dword [ebx + 0x10]
mov edx, dword [ecx + 0x2c]
inc eax
cmp eax, edx
mov dword [ebx + 0x10], eax
jl 0x42998e
mov edx, dword [ebx + 0xc]
mov dword [ebx + 0x10], 0
dec edx
mov dword [ebx + 0xc], edx
mov edx, dword [esp + 0x24]
mov ecx, dword [ebx + 0x28]
mov eax, dword [edx + 0x1c]
add ecx, eax
mov dword [ebx + 0x28], ecx
mov ecx, dword [ebx + 0x38]
mov dword [esp + 0x2c], ecx
jmp 0x42998e
mov eax, dword [edi + 8]
cmp eax, 1
jle 0x429560
sub eax, 0x15
je 0x429281
dec eax
je 0x429035
mov eax, dword [edi + 0x18]
imul eax, edx
add eax, esi
cmp eax, ecx
jbe 0x428e3c
mov dword [esp + 0x20], 0x82010407
jmp 0x4294d3
mov eax, dword [edi + 0x1c]
mov ecx, eax
imul ecx, edx
add ecx, ebp
cmp ecx, dword [esp + 0x48]
jbe 0x428e59
mov dword [esp + 0x20], 0x82010402
jmp 0x4294d3
dec eax
je 0x428fe4
dec eax
je 0x428fbc
sub eax, 2
je 0x428f6d
test edx, edx
jle 0x4294d3
mov dword [esp + 0x28], edx
mov esi, dword [ebp]
mov ebp, dword [ebp + 4]
mov ebx, ebp
mov ecx, 0x10
mov eax, esi
mov edx, ebp
xor edi, edi
and ebx, 0xff0000
call fcn.0042cd70
or edi, eax
or ebx, edx
mov ecx, 0x10
mov eax, edi
mov edx, ebx
call fcn.0042cd70
mov edi, ebp
xor ecx, ecx
and edi, 0xff00
or eax, ecx
or edx, edi
mov ecx, 0x10
call fcn.0042cd70
mov edi, ebp
xor ecx, ecx
and edi, 0xff
or eax, ecx
or edx, edi
mov ecx, 8
call fcn.0042cd70
mov edi, eax
mov ebx, edx
mov ecx, 0x10
mov eax, esi
mov edx, ebp
call fcn.0042cb10
mov ecx, esi
xor ebp, ebp
and ecx, 0xff00
or edx, ebp
or eax, ecx
mov ecx, 0x10
call fcn.0042cb10
mov ecx, esi
or edx, ebp
and ecx, 0xff0000
or eax, ecx
mov ecx, 0x10
call fcn.0042cb10
xor ecx, ecx
and esi, 0xff000000
or edx, ecx
or eax, esi
mov ecx, 8
call fcn.0042cb10
or edi, eax
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
or ebx, edx
mov dword [eax], edi
mov dword [eax + 4], ebx
add eax, 8
add ebp, 8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
dec eax
mov dword [esp + 0x10], ebp
mov dword [esp + 0x28], eax
jne 0x428e7c
mov ebx, dword [esp + 0x50]
mov esi, dword [esp + 0x14]
jmp 0x4294cf
test edx, edx
jle 0x4294d3
mov dword [esp + 0x28], edx
mov eax, dword [ebp]
add esi, 4
mov edx, eax
mov ecx, eax
and edx, 0xff0000
add ebp, 4
shr ecx, 0x10
or edx, ecx
mov ecx, eax
shl ecx, 0x10
and eax, 0xff00
or ecx, eax
mov eax, dword [esp + 0x28]
shr edx, 8
shl ecx, 8
or edx, ecx
dec eax
mov dword [esi - 4], edx
mov dword [esp + 0x28], eax
jne 0x428f79
mov dword [esp + 0x10], ebp
jmp 0x4294d3
test edx, edx
jle 0x4294d3
mov ax, word [ebp]
xor ecx, ecx
mov cl, ah
add esi, 2
mov ch, al
add ebp, 2
mov word [esi - 2], cx
dec edx
jne 0x428fc4
mov dword [esp + 0x10], ebp
jmp 0x4294d3
cmp edx, 0x40
jg 0x429004
test edx, edx
jbe 0x4294d3
mov al, byte [ebp]
mov byte [esi], al
inc esi
inc ebp
dec edx
jne 0x428ff1
mov dword [esp + 0x10], ebp
jmp 0x4294d3
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x14]
mov ecx, eax
mov esi, ebp
mov edx, ecx
add ebp, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov dword [esp + 0x10], ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14]
add ecx, eax
mov dword [esp + 0x14], ecx
mov esi, ecx
jmp 0x4294cf
test edx, edx
mov dword [esp + 0x30], 0
jle 0x4294d3
jmp 0x42904f
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
mov eax, dword [edi + 0x20]
test eax, eax
jne 0x42905e
sub ecx, esi
mov dword [esp + 0x1c], ecx
jmp 0x429062
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x50]
mov edx, dword [esp + 0x48]
lea ecx, [eax + ebp]
cmp ecx, edx
mov dword [esp + 0x10], ecx
jae 0x429270
sub eax, 2
je 0x4291a0
sub eax, 2
je 0x429178
sub eax, 4
je 0x429099
xor eax, eax
mov al, byte [ebp]
jmp 0x4291af
mov edx, dword [ebp + 4]
mov esi, dword [ebp]
mov ebx, edx
mov ecx, 0x10
mov eax, esi
xor edi, edi
and ebx, 0xff0000
call fcn.0042cd70
or edi, eax
or ebx, edx
mov ecx, 0x10
mov eax, edi
mov edx, ebx
call fcn.0042cd70
mov edi, dword [ebp + 4]
xor ecx, ecx
mov ebx, edi
or eax, ecx
and ebx, 0xff00
mov ecx, 0x10
or edx, ebx
call fcn.0042cd70
mov ebx, edi
xor ecx, ecx
and ebx, 0xff
or eax, ecx
or edx, ebx
mov ecx, 8
call fcn.0042cd70
mov ebx, eax
mov dword [esp + 0x74], edx
mov ecx, 0x10
mov eax, esi
mov edx, edi
call fcn.0042cb10
mov ecx, esi
xor edi, edi
and ecx, 0xff00
or edx, edi
or eax, ecx
mov ecx, 0x10
call fcn.0042cb10
mov ecx, esi
or edx, edi
and ecx, 0xff0000
or eax, ecx
mov ecx, 0x10
call fcn.0042cb10
xor ecx, ecx
and esi, 0xff000000
or edx, ecx
or eax, esi
mov ecx, 8
call fcn.0042cb10
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
or ebx, eax
mov eax, dword [esp + 0x74]
or eax, edx
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
jmp 0x4291b8
mov ecx, dword [ebp]
mov eax, ecx
mov edx, ecx
and eax, 0xff0000
shr edx, 0x10
or eax, edx
mov edx, ecx
shl edx, 0x10
and ecx, 0xff00
or edx, ecx
shr eax, 8
shl edx, 8
or eax, edx
jmp 0x4291af
xor eax, eax
xor ecx, ecx
mov ax, word [ebp]
mov ch, al
shr eax, 8
or eax, ecx
cdq
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], edx
test edx, edx
jl 0x429270
jg 0x4291cb
cmp eax, 2
jb 0x429270
mov edi, dword [edi + 0x50]
lea ecx, [eax + edi]
mov edi, dword [esp + 0x48]
sub edi, ebp
cmp edi, ecx
jl 0x4294b5
xor edi, edi
cmp edx, edi
jg 0x4294c3
mov edx, dword [esp + 0x1c]
jl 0x4291f7
cmp eax, edx
ja 0x4294c3
cmp word [ecx + ebp - 2], 0
jne 0x4294c3
mov ebp, dword [esp + 0x10]
cmp eax, 0x40
ja 0x42921e
test eax, eax
jbe 0x42924a
mov edi, eax
mov cl, byte [ebp]
mov byte [esi], cl
inc esi
inc ebp
dec edi
jne 0x429212
jmp 0x42924a
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x14]
mov ecx, eax
mov esi, ebp
mov edx, ecx
add ebp, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [esp + 0x1c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14]
add ecx, eax
mov dword [esp + 0x14], ecx
mov esi, ecx
mov ecx, dword [esp + 0x4c]
sub edx, eax
mov eax, dword [esp + 0x30]
add esi, edx
inc eax
mov dword [esp + 0x14], esi
cmp eax, ecx
mov dword [esp + 0x30], eax
jl 0x429047
mov dword [esp + 0x10], ebp
jmp 0x4294cf
mov dword [esp + 0x10], ebp
mov dword [esp + 0x20], 0x82010402
jmp 0x4294d3
test edx, edx
mov dword [esp + 0x30], 0
jle 0x4294d3
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0x20]
test eax, eax
jne 0x4292a2
mov eax, dword [esp + 0x28]
sub eax, esi
mov edx, dword [esp + 0x48]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x50]
lea ecx, [eax + ebp]
cmp ecx, edx
mov dword [esp + 0x10], ecx
jae 0x429270
sub eax, 2
je 0x4293da
sub eax, 2
je 0x4293b2
sub eax, 4
je 0x4292d9
xor eax, eax
mov al, byte [ebp]
jmp 0x4293e9
mov edx, dword [ebp + 4]
mov esi, dword [ebp]
mov ebx, edx
mov ecx, 0x10
mov eax, esi
xor edi, edi
and ebx, 0xff0000
call fcn.0042cd70
or edi, eax
or ebx, edx
mov ecx, 0x10
mov eax, edi
mov edx, ebx
call fcn.0042cd70
mov edi, dword [ebp + 4]
xor ecx, ecx
mov ebx, edi
or eax, ecx
and ebx, 0xff00
mov ecx, 0x10
or edx, ebx
call fcn.0042cd70
mov ebx, edi
xor ecx, ecx
and ebx, 0xff
or eax, ecx
or edx, ebx
mov ecx, 8
call fcn.0042cd70
mov ebx, eax
mov dword [esp + 0x7c], edx
mov ecx, 0x10
mov eax, esi
mov edx, edi
call fcn.0042cb10
mov ecx, esi
xor edi, edi
and ecx, 0xff00
or edx, edi
or eax, ecx
mov ecx, 0x10
call fcn.0042cb10
mov ecx, esi
or edx, edi
and ecx, 0xff0000
or eax, ecx
mov ecx, 0x10
call fcn.0042cb10
xor ecx, ecx
and esi, 0xff000000
or edx, ecx
or eax, esi
mov ecx, 8
call fcn.0042cb10
mov esi, dword [esp + 0x14]
or ebx, eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
or eax, edx
mov dword [esp + 0x58], eax
mov edi, eax
jmp 0x4293f6
mov ecx, dword [ebp]
mov eax, ecx
mov edx, ecx
and eax, 0xff0000
shr edx, 0x10
or eax, edx
mov edx, ecx
shl edx, 0x10
and ecx, 0xff00
or edx, ecx
shr eax, 8
shl edx, 8
or eax, edx
jmp 0x4293e9
xor eax, eax
xor ecx, ecx
mov ax, word [ebp]
mov ch, al
shr eax, 8
or eax, ecx
cdq
mov ecx, eax
mov edi, edx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edi
test edi, edi
jl 0x4294b5
jg 0x429409
cmp ecx, 1
jb 0x4294b5
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x50]
mov edx, dword [esp + 0x48]
add eax, ecx
sub edx, ebp
cmp edx, eax
mov dword [esp + 0x38], eax
jl 0x4294b5
mov eax, dword [esp + 0x1c]
cdq
cmp edi, edx
jg 0x4294c3
jl 0x42943b
cmp ecx, eax
ja 0x4294c3
mov eax, dword [esp + 0x38]
mov dl, byte [eax + ebp - 1]
test dl, dl
jne 0x4294c3
mov ebp, dword [esp + 0x10]
cmp ecx, 0x40
ja 0x429462
test ecx, ecx
jbe 0x42948e
mov edi, ecx
mov dl, byte [ebp]
mov byte [esi], dl
inc esi
inc ebp
dec edi
jne 0x429456
jmp 0x42948e
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x14]
mov ecx, eax
mov esi, ebp
mov edx, ecx
add ebp, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14]
add ecx, eax
mov dword [esp + 0x14], ecx
mov ecx, eax
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
sub eax, ecx
mov ecx, dword [esp + 0x4c]
add esi, eax
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x14], esi
cmp eax, ecx
mov dword [esp + 0x30], eax
jl 0x429291
mov dword [esp + 0x10], ebp
jmp 0x4294cf
mov dword [esp + 0x10], ebp
mov dword [esp + 0x20], 0x82010402
jmp 0x4294cf
mov dword [esp + 0x10], ebp
mov dword [esp + 0x20], 0x82010406
mov edi, dword [esp + 0x18]
test byte [edi + 0x44], 4
je 0x4294e6
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x2c]
add eax, ecx
mov dword [ebx + 0x24], eax
jmp 0x4294ec
sub esi, dword [ebx + 0x28]
mov dword [ebx + 0x24], esi
test dword [esp + 0x20], 0x80000000
jne 0x4299dc
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x10]
test eax, eax
jne 0x429523
mov edx, dword [ebx + 0xc]
mov ecx, dword [ecx + 0x1c]
mov eax, dword [ebx + 0x28]
dec edx
mov dword [ebx + 0xc], edx
mov edx, dword [ebx + 0x38]
add eax, ecx
mov dword [esp + 0x2c], edx
mov dword [ebx + 0x28], eax
jmp 0x42998e
mov esi, dword [ebx + 0x10]
mov edx, dword [ecx + 0x2c]
inc esi
mov eax, esi
mov dword [ebx + 0x10], esi
cmp eax, edx
jl 0x42998e
mov ecx, dword [ebx + 0xc]
mov eax, dword [esp + 0x24]
mov edx, dword [ebx + 0x38]
dec ecx
mov dword [ebx + 0xc], ecx
mov ecx, dword [eax + 0x1c]
mov eax, dword [ebx + 0x28]
mov dword [ebx + 0x10], 0
add eax, ecx
mov dword [esp + 0x2c], edx
mov dword [ebx + 0x28], eax
jmp 0x42998e
cmp dword [esp + 0x34], 0x20
jge 0x4299b4
test eax, eax
jne 0x429712
mov ecx, dword [edi + 0x68]
mov esi, dword [ebx + 0x28]
mov eax, dword [edi + 0x64]
add ecx, esi
sub eax, 2
je 0x4295a6
sub eax, 2
je 0x4295a2
sub eax, 4
je 0x429593
xor eax, eax
mov al, byte [ecx]
jmp 0x4295ab
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
jmp 0x4295b4
mov eax, dword [ecx]
jmp 0x4295ab
xor eax, eax
mov ax, word [ecx]
cdq
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
mov edx, dword [edi + 0x78]
mov ecx, dword [esp + 0x6c]
mov esi, dword [edx + ecx + 0x24c]
lea edx, [edx + ecx + 0x114]
xor ecx, ecx
mov dword [esp + 0x24], edx
cmp esi, dword [edx + 0x134]
lea edi, [edx + 0x134]
mov dword [esp + 0x38], edi
setg cl
dec ecx
mov dword [esp + 0x1c], ecx
mov ecx, eax
sub ecx, esi
js 0x42960e
cmp ecx, dword [edx + 0x2c]
jge 0x42960e
lea esi, [ecx + ecx*4]
lea esi, [esi + esi*8]
mov edi, dword [edx + esi*4 + 0x138]
lea esi, [edx + esi*4]
cmp edi, eax
jne 0x42960e
cmp edi, dword [esi + 0x134]
jle 0x429681
mov edx, dword [edx + 0x2c]
cmp edx, 0x10
jge 0x42963c
xor esi, esi
test edx, edx
jle 0x429685
mov ecx, dword [esp + 0x38]
cmp dword [ecx + 4], eax
jg 0x429629
cmp eax, dword [ecx]
jle 0x429636
inc esi
add ecx, 0xb4
cmp esi, edx
jl 0x429620
jmp 0x429685
mov dword [esp + 0x1c], esi
jmp 0x429685
lea esi, [edx - 1]
xor eax, eax
test esi, esi
jl 0x429685
lea ecx, [esi + eax]
mov edi, dword [esp + 0x24]
sar ecx, 1
lea edx, [ecx + ecx*4]
lea edx, [edx + edx*8]
lea edx, [edi + edx*4]
mov edi, dword [edx + 0x138]
mov edx, dword [edx + 0x134]
cmp edi, edx
jg 0x429678
cmp dword [esp + 0x40], edi
jge 0x429672
lea esi, [ecx - 1]
jmp 0x42967b
cmp dword [esp + 0x40], edx
jle 0x429681
lea eax, [ecx + 1]
cmp eax, esi
jle 0x429645
jmp 0x429685
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x1c]
cmp eax, 0xffffffff
je 0x4296ac
mov esi, dword [esp + 0x24]
lea ecx, [eax + eax*4]
lea edx, [ecx + ecx*8]
mov ecx, dword [ebx + 0x20]
cmp dword [esi + edx*4 + 0xbc], ecx
jg 0x4296ac
test esi, esi
jne 0x429732
mov eax, dword [ebx]
mov dword [esp + 0x24], eax
mov ecx, dword [eax + 0x10]
test ecx, ecx
jne 0x4296d7
mov edx, dword [ebx + 0xc]
mov eax, dword [eax + 0x1c]
mov ecx, dword [ebx + 0x28]
dec edx
add ecx, eax
mov dword [ebx + 0xc], edx
mov dword [ebx + 0x28], ecx
mov ecx, dword [ebx + 0x38]
mov dword [esp + 0x2c], ecx
jmp 0x42998e
mov ecx, dword [ebx + 0x10]
mov edx, dword [eax + 0x2c]
inc ecx
cmp ecx, edx
mov dword [ebx + 0x10], ecx
jl 0x42998e
mov edx, dword [ebx + 0xc]
mov dword [ebx + 0x10], 0
dec edx
mov dword [ebx + 0xc], edx
mov edx, dword [esp + 0x24]
mov ecx, dword [ebx + 0x28]
mov eax, dword [edx + 0x1c]
add ecx, eax
mov dword [ebx + 0x28], ecx
mov ecx, dword [ebx + 0x38]
mov dword [esp + 0x2c], ecx
jmp 0x42998e
mov edx, dword [edi + 0x78]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x1c], 0
lea ecx, [edx + eax + 0x114]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], ecx
mov esi, ecx
mov edi, dword [esp + 0x34]
add ebx, 0xbc
mov edx, dword [esp + 0x4c]
inc edi
mov dword [ebx + 0x10], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x34], edi
mov dword [ebx + 0x28], eax
mov eax, dword [esi + 0x64]
xor edi, edi
cmp eax, edi
mov dword [esp + 0x50], ebx
mov dword [ebx + 0x24], edi
mov dword [ebx], esi
mov dword [ebx + 0xc], edx
mov dword [ebx + 0x30], ebp
jbe 0x42979a
mov ecx, dword [esi + 0x68]
mov dword [ebx + 0x14], eax
cmp ecx, 0xffffffff
je 0x429788
mov ecx, eax
mov dword [ebx + 0x34], ebp
neg ecx
add ebp, eax
mov dword [ebx + 0x18], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x10], ebp
jmp 0x4297e6
mov eax, dword [esi + 0x5c]
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0x18], eax
lea edx, [eax + ebp]
mov dword [ebx + 0x34], edx
jmp 0x4297e6
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x50]
cmp eax, edi
jbe 0x4297e3
mov edx, dword [ecx + 0x54]
mov dword [ebx + 0x14], eax
cmp edx, 0xffffffff
je 0x4297c0
mov dword [ebx + 0x34], ebp
add ebp, eax
neg eax
mov dword [esp + 0x10], ebp
mov dword [ebx + 0x18], eax
jmp 0x4297e6
mov eax, dword [ecx + 0x48]
mov edx, dword [ecx + 0x28]
cmp eax, edx
jl 0x4297d6
sub eax, edx
mov dword [ebx + 0x18], eax
add eax, ebp
mov dword [ebx + 0x34], eax
jmp 0x4297e6
mov edx, dword [ebx - 0x8c]
add edx, eax
mov dword [ebx + 0x34], edx
jmp 0x4297e6
mov dword [ebx + 0x14], edi
mov eax, dword [esp + 0x28]
mov dword [ebx + 0x30], ebp
mov dword [ebx + 0x2c], eax
mov eax, dword [esi + 0x74]
cmp eax, edi
mov dword [ebx + 4], ecx
mov dword [ebx + 0x38], 1
jbe 0x429976
mov ecx, dword [esi + 0x6c]
mov edx, dword [esp + 0x48]
add ecx, ebp
sub edx, ecx
cmp edx, eax
jl 0x42996b
sub eax, 2
je 0x429944
sub eax, 2
je 0x42991d
sub eax, 4
je 0x429838
xor eax, eax
mov al, byte [ecx]
jmp 0x429952
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
mov edi, edx
mov ecx, 0x10
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], edx
xor esi, esi
and edi, 0xff0000
call fcn.0042cd70
or esi, eax
or edi, edx
mov ecx, 0x10
mov eax, esi
mov edx, edi
call fcn.0042cd70
mov esi, dword [esp + 0x68]
xor ecx, ecx
mov edi, esi
or eax, ecx
and edi, 0xff00
mov ecx, 0x10
or edx, edi
call fcn.0042cd70
mov edi, esi
xor ecx, ecx
and edi, 0xff
or eax, ecx
or edx, edi
mov ecx, 8
call fcn.0042cd70
mov edi, dword [esp + 0x64]
mov dword [esp + 0x88], eax
mov dword [esp + 0x38], edx
mov ecx, 0x10
mov eax, edi
mov edx, esi
call fcn.0042cb10
xor ecx, ecx
and edi, 0xff00
or edx, ecx
or eax, edi
mov ecx, 0x10
call fcn.0042cb10
mov ecx, dword [esp + 0x64]
xor esi, esi
and ecx, 0xff0000
or edx, esi
or eax, ecx
mov ecx, 0x10
call fcn.0042cb10
mov ecx, dword [esp + 0x64]
or edx, esi
and ecx, 0xff000000
or eax, ecx
mov ecx, 8
call fcn.0042cb10
mov ecx, dword [esp + 0x88]
mov esi, dword [esp + 0x24]
or ecx, eax
mov eax, dword [esp + 0x38]
or eax, edx
mov dword [esp + 0x3c], eax
jmp 0x429959
mov ecx, dword [ecx]
mov eax, ecx
mov edx, ecx
and eax, 0xff0000
shr edx, 0x10
or eax, edx
mov edx, ecx
shl edx, 0x10
and ecx, 0xff00
or edx, ecx
shr eax, 8
shl edx, 8
or eax, edx
jmp 0x429952
xor eax, eax
mov ax, word [ecx]
xor ecx, ecx
mov ch, al
shr eax, 8
or eax, ecx
cdq
mov ecx, eax
mov dword [esp + 0x3c], edx
test ecx, ecx
mov dword [ebx + 0x20], ecx
jne 0x42997f
mov edx, dword [ebx - 0x9c]
mov dword [ebx + 0x20], edx
jmp 0x42997f
mov eax, dword [ebx - 0x9c]
mov dword [ebx + 0x20], eax
jmp 0x42997f
mov ecx, dword [ebx - 0x9c]
mov dword [ebx + 0x20], ecx
mov eax, dword [ebx + 0x20]
mov ecx, dword [esi + 8]
cmp ecx, eax
jg 0x4299c4
cmp eax, dword [esi + 0x58]
jl 0x4299c4
mov eax, dword [esp + 0x34]
xor edi, edi
cmp eax, edi
jg 0x4288e7
jmp 0x4299dc
mov dword [esp + 0x20], 0x82010402
jmp 0x4299dc
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x2c]
mov dword [ebx + 0x24], eax
jmp 0x4299dc
mov ecx, dword [edi + 0x2c]
mov dword [esp + 0x20], 0x82010404
mov dword [ebx + 0x24], ecx
jmp 0x4299dc
mov dword [esp + 0x20], 0x82010401
jmp 0x4299dc
mov edx, dword [edi + 0x2c]
mov dword [esp + 0x20], 0x82010403
mov dword [ebx + 0x24], edx
mov edx, dword [esp + 0x1820]
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0xbc]
test esi, 0x80000000
mov dword [edx + 4], eax
je 0x429a62
mov ecx, dword [esp + 0x34]
mov eax, 1
cmp ecx, eax
jle 0x429a62
lea ecx, [esp + 0x178]
mov edi, dword [ecx - 0x20]
test byte [edi + 0x44], 4
jne 0x429a48
mov edi, dword [ecx]
mov ebx, dword [edx + 4]
add ebx, edi
mov edi, dword [esp + 0x34]
inc eax
add ecx, 0xbc
cmp eax, edi
mov dword [edx + 4], ebx
jl 0x429a0d
mov eax, dword [esp + 0x1824]
pop edi
sub ebp, dword [eax]
mov dword [eax + 4], ebp
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x1808
ret
lea ecx, [eax + eax*2]
shl ecx, 4
sub ecx, eax
mov eax, dword [esp + ecx*4 + 0x9c]
mov ecx, dword [eax + 0x18]
mov eax, dword [edx + 4]
add eax, ecx
mov dword [edx + 4], eax
mov eax, dword [esp + 0x1824]
pop edi
sub ebp, dword [eax]
mov dword [eax + 4], ebp
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x1808
ret
mov ecx, dword [esp + 0x1820]
xor eax, eax
pop edi
pop esi
mov dword [ecx + 4], eax
mov dword [edx + 4], eax
pop ebp
mov eax, 0x82010401
pop ebx
add esp, 0x1808
ret
pop edi
pop esi
pop ebp
mov eax, 0x82010468
pop ebx
add esp, 0x1808
ret