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

Disassembly:
mov eax, 0x17f0
call fcn.0042c930
mov eax, dword [esp + 0x17f4]
push ebx
push ebp
push esi
test eax, eax
push edi
mov dword [esp + 0x14], 0
je 0x428557
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x428557
mov ecx, dword [esp + 0x1808]
test ecx, ecx
je 0x428557
mov ebx, dword [esp + 0x180c]
test ebx, ebx
je 0x428557
mov ebp, dword [ecx]
test ebp, ebp
je 0x428557
mov edi, dword [ecx + 4]
test edi, edi
jbe 0x428557
mov esi, dword [ebx]
test esi, esi
je 0x428557
mov ecx, dword [ebx + 4]
test ecx, ecx
jbe 0x428557
mov edx, dword [esp + 0x1810]
test edx, edx
je 0x427578
cmp edx, dword [eax + 0xc]
jle 0x427582
mov edx, dword [eax + 0xc]
mov dword [esp + 0x1810], edx
cmp dword [eax + 8], edx
jg 0x428538
mov ebx, dword [eax + 0x74]
test ebx, ebx
jbe 0x42759b
cmp dword [eax + 0x58], edx
jg 0x428531
add edi, ebp
lea edx, [ecx + esi]
mov dword [esp + 0x44], edi
mov edi, dword [eax + 0x3c]
mov ecx, eax
mov dword [esp + 0x18], ebp
sub ecx, edi
mov edi, 1
sub ecx, 0x114
mov dword [esp + 0x28], eax
mov dword [esp + 0x5c], ecx
lea ecx, [esp + 0x80]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0x64]
test ecx, ecx
mov dword [esp + 0x80], eax
mov dword [esp + 0x8c], edi
mov dword [esp + 0x90], 0
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], edx
jbe 0x42761e
cmp dword [eax + 0x68], 0xffffffff
mov dword [esp + 0x94], ecx
je 0x427617
mov dword [esp + 0xb4], ebp
add ebp, ecx
mov dword [esp + 0x18], ebp
jmp 0x427635
mov ecx, dword [eax + 0x5c]
add ecx, ebp
jmp 0x42762e
xor ecx, ecx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], ecx
mov dword [esp + 0xb4], ecx
test ebx, ebx
mov dword [esp + 0xb0], ebp
mov dword [esp + 0xb8], edi
mov dword [esp + 0xa4], 0
jbe 0x4276a8
mov ecx, dword [eax + 0x70]
add ecx, esi
sub edx, ecx
cmp edx, ebx
jge 0x427667
mov dword [esp + 0x14], 0x82010407
jmp 0x4276a8
mov eax, ebx
sub eax, 2
je 0x42769d
sub eax, 2
je 0x427692
sub eax, 4
je 0x427683
mov dl, byte [esp + 0x1810]
mov byte [ecx], dl
jmp 0x4276a8
mov eax, dword [esp + 0x1810]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x4276a8
mov eax, dword [esp + 0x1810]
mov dword [ecx], eax
jmp 0x4276a8
mov dx, word [esp + 0x1810]
mov word [ecx], dx
mov eax, dword [esp + 0x14]
test eax, 0x80000000
je 0x4276d4
mov edx, dword [esp + 0x180c]
xor ecx, ecx
pop edi
pop esi
mov dword [edx + 4], ecx
mov edx, dword [esp + 0x1800]
pop ebp
pop ebx
mov dword [edx + 4], ecx
add esp, 0x17f0
ret
xor eax, eax
mov dword [esp + 0x34], edi
mov dword [esp + 0x84], eax
mov dword [esp + 0x1c], eax
mov esi, edi
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4278d0
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x1c], 0
mov edi, dword [ecx + 0x14]
test edi, edi
jbe 0x42784d
mov ebx, dword [ecx + 0x30]
mov eax, ebp
sub eax, ebx
cdq
mov ebx, eax
mov eax, edi
sub eax, 2
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], edx
je 0x427841
sub eax, 2
je 0x427817
sub eax, 4
je 0x42773f
mov eax, dword [ecx + 0x34]
mov byte [eax], bl
jmp 0x42784d
mov edi, edx
mov ecx, 0x10
mov eax, ebx
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 + 0x64]
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, eax
mov ecx, 0x10
mov dword [esp + 0x24], edi
mov edi, edx
mov eax, ebx
mov edx, esi
call fcn.0042cb10
xor ecx, ecx
and ebx, 0xff00
or edx, ecx
or eax, ebx
mov ecx, 0x10
call fcn.0042cb10
mov ecx, dword [esp + 0x60]
xor esi, esi
and ecx, 0xff0000
or edx, esi
or eax, ecx
mov ecx, 0x10
call fcn.0042cb10
mov ecx, dword [esp + 0x60]
or edx, esi
and ecx, 0xff000000
or eax, ecx
mov ecx, 8
call fcn.0042cb10
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
or esi, eax
or edi, edx
mov edx, dword [ecx + 0x34]
mov dword [edx], esi
mov esi, dword [esp + 0x34]
mov dword [edx + 4], edi
mov edi, dword [esp + 0x28]
jmp 0x427851
mov eax, ebx
mov edx, ebx
and eax, 0xff0000
shr edx, 0x10
or eax, edx
mov edx, ebx
shl edx, 0x10
and ebx, 0xff00
or edx, ebx
shr eax, 8
shl edx, 8
or eax, edx
mov edx, dword [ecx + 0x34]
mov dword [edx], eax
jmp 0x42784d
mov edx, dword [ecx + 0x34]
xor eax, eax
mov al, bh
mov ah, bl
mov word [edx], ax
mov edi, dword [esp + 0x28]
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x42788e
cmp ebp, dword [esp + 0x44]
ja 0x428469
mov eax, dword [ecx + 0x14]
test eax, eax
jbe 0x42788e
mov eax, dword [ecx + 0x18]
test eax, eax
jge 0x427881
mov eax, dword [ecx + 0x18]
mov dword [ecx + 0x34], ebp
sub ebp, eax
mov dword [esp + 0x18], ebp
mov dword [ecx + 0x30], ebp
jmp 0x42788e
mov edx, dword [ecx + 0x18]
mov eax, ebp
add eax, edx
mov dword [ecx + 0x30], ebp
mov dword [ecx + 0x34], eax
cmp esi, 1
jle 0x4278d8
mov eax, dword [ecx + 4]
test byte [eax + 0x44], 4
je 0x4278b6
mov edx, dword [eax + 0x18]
mov eax, dword [ecx - 0x98]
add eax, edx
mov dword [ecx - 0x98], eax
mov dword [ecx + 0x24], 0
jmp 0x4278d8
mov eax, dword [edi + 0x1c]
mov edx, dword [ecx - 0x98]
add edx, eax
mov dword [ecx - 0x98], edx
mov dword [ecx + 0x24], 0
jmp 0x4278d8
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 0xc]
test eax, eax
jg 0x42793a
sub ecx, 0xbc
dec esi
test esi, esi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], esi
jle 0x42849b
mov eax, dword [ecx]
mov dword [esp + 0x28], eax
mov edx, dword [eax + 0x10]
test edx, edx
je 0x42791c
mov edi, dword [ecx + 0x10]
inc edi
mov dword [ecx + 0x10], edi
mov edx, edi
cmp edx, dword [eax + 0x2c]
jl 0x42845b
mov dword [ecx + 0x10], 0
mov edx, dword [ecx + 0xc]
dec edx
mov dword [ecx + 0xc], edx
mov edx, dword [eax + 0x1c]
mov eax, dword [ecx + 0x28]
add eax, edx
mov dword [ecx + 0x28], eax
mov eax, dword [ecx + 0x38]
mov dword [esp + 0x1c], eax
jmp 0x42845b
mov edx, dword [ecx + 0x10]
lea eax, [edx + edx*4]
lea eax, [eax + eax*8]
mov ebx, dword [edi + eax*4 + 0xbc]
lea esi, [edi + eax*4 + 0xb8]
mov eax, dword [esp + 0x1810]
mov dword [esp + 0x2c], esi
cmp ebx, eax
jle 0x427981
mov eax, dword [edi + 0x10]
test eax, eax
je 0x42798e
lea eax, [edx + 1]
mov edx, dword [edi + 0x2c]
mov dword [ecx + 0x10], eax
cmp eax, edx
jl 0x42845b
mov dword [ecx + 0x10], 0
jmp 0x42798e
test byte [esi + 0x44], 2
je 0x4279ac
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x427967
mov edx, dword [ecx + 0xc]
mov eax, dword [ecx + 0x28]
dec edx
mov dword [ecx + 0xc], edx
mov edx, dword [edi + 0x1c]
add eax, edx
mov dword [ecx + 0x28], eax
mov eax, dword [ecx + 0x38]
mov dword [esp + 0x1c], eax
jmp 0x42845b
mov eax, dword [esi + 0x58]
test eax, eax
jbe 0x4279fd
mov edx, dword [esi + 0x5c]
mov ebx, dword [ecx + 0x28]
add edx, ebx
sub eax, 2
je 0x4279ef
sub eax, 2
je 0x4279e4
sub eax, 4
je 0x4279d7
xor eax, eax
mov al, byte [edx]
cdq
mov dword [esp + 0x54], edx
mov ebx, eax
jmp 0x427a00
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x54], edx
mov ebx, eax
jmp 0x427a00
mov eax, dword [edx]
cdq
mov dword [esp + 0x54], edx
mov ebx, eax
jmp 0x427a00
xor eax, eax
mov ax, word [edx]
cdq
mov dword [esp + 0x54], edx
mov ebx, eax
jmp 0x427a00
mov ebx, dword [esi + 0x24]
test ebx, ebx
mov dword [esp + 0x40], ebx
jl 0x42848d
mov eax, dword [esi + 0x24]
cmp eax, ebx
jge 0x427a1b
test eax, eax
jg 0x42848d
test ebx, ebx
jg 0x427a4d
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x427a44
mov esi, dword [ecx + 0xc]
mov eax, dword [edi + 0x1c]
mov edx, dword [ecx + 0x28]
dec esi
add edx, eax
mov dword [ecx + 0xc], esi
mov dword [ecx + 0x28], edx
mov ecx, dword [ecx + 0x38]
mov dword [esp + 0x1c], ecx
jmp 0x42845b
mov eax, dword [ecx + 0x10]
inc eax
jmp 0x42796a
mov eax, dword [ecx + 0x28]
mov edx, dword [esi + 0x2c]
add edx, eax
mov al, byte [esi + 0x44]
test al, 4
mov dword [esp + 0x10], edx
je 0x427a87
mov eax, dword [esi + 8]
mov edx, dword [edx]
cmp eax, 1
mov dword [esp + 0x10], edx
jle 0x427a75
mov eax, dword [esi + 0x14]
add eax, edx
jmp 0x427a8a
mov eax, dword [esi + 0x78]
mov edi, dword [esp + 0x5c]
mov eax, dword [eax + edi + 0x130]
add eax, edx
jmp 0x427a8a
mov eax, dword [ecx + 0x2c]
mov edi, dword [esi + 8]
mov dword [esp + 0x38], eax
cmp edi, 1
jle 0x42816e
sub edi, 0x15
je 0x427ec9
dec edi
je 0x427ca3
mov ecx, dword [esi + 0x18]
imul ecx, ebx
add ecx, edx
cmp ecx, eax
jbe 0x427ac3
mov dword [esp + 0x14], 0x82010407
jmp 0x4280cc
mov esi, dword [esi + 0x1c]
mov ecx, dword [esp + 0x44]
mov eax, esi
imul eax, ebx
add eax, ebp
cmp eax, ecx
ja 0x4280c4
dec esi
je 0x427c52
dec esi
je 0x427c2d
sub esi, 2
je 0x427bef
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x24], ebx
mov esi, dword [ecx + 4]
mov eax, dword [ecx]
mov ebx, esi
mov ecx, 0x10
mov edx, esi
mov dword [esp + 0x78], eax
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, esi
xor ecx, ecx
and edi, 0xff00
or eax, ecx
or edx, edi
mov ecx, 0x10
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 + 0x78]
mov ebx, eax
mov dword [esp + 0x38], ebx
mov ebx, 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 + 0x78]
xor esi, esi
and ecx, 0xff0000
or edx, esi
or eax, ecx
mov ecx, 0x10
call fcn.0042cb10
mov ecx, dword [esp + 0x78]
or edx, esi
and ecx, 0xff000000
or eax, ecx
mov ecx, 8
call fcn.0042cb10
mov ecx, dword [esp + 0x38]
or ebx, edx
or ecx, eax
mov eax, dword [esp + 0x24]
mov dword [ebp], ecx
mov ecx, dword [esp + 0x10]
mov dword [ebp + 4], ebx
add ebp, 8
add ecx, 8
dec eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x24], eax
jne 0x427af8
mov dword [esp + 0x18], ebp
jmp 0x4280cc
mov eax, dword [edx]
add ebp, 4
mov ecx, eax
mov esi, eax
and ecx, 0xff0000
add edx, 4
shr esi, 0x10
or ecx, esi
mov esi, eax
shl esi, 0x10
and eax, 0xff00
or esi, eax
shr ecx, 8
shl esi, 8
or ecx, esi
dec ebx
mov dword [ebp - 4], ecx
jne 0x427bef
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], ebp
jmp 0x4280cc
mov esi, ebx
mov ax, word [edx]
xor ecx, ecx
mov cl, ah
add ebp, 2
mov ch, al
add edx, 2
mov word [ebp - 2], cx
dec esi
jne 0x427c2f
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], ebp
jmp 0x4280cc
cmp ebx, 0x40
jg 0x427c7e
test ebx, ebx
jbe 0x4280cc
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x10]
mov dl, byte [eax]
mov byte [ebp], dl
inc ebp
inc eax
dec ecx
jne 0x427c67
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], ebp
jmp 0x4280cc
mov ecx, ebx
mov esi, edx
mov eax, ecx
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
add edx, ebx
and ecx, 3
add ebp, ebx
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], ebp
jmp 0x4280cc
mov dword [esp + 0x24], 0
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0x20]
test eax, eax
jne 0x427cc0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
sub eax, ecx
mov esi, dword [esp + 0x10]
mov edi, eax
push edi
push esi
mov dword [esp + 0x28], eax
call fcn.0042bf30
lea ebx, [eax + eax + 2]
add esp, 8
cmp ebx, edi
mov dword [esp + 0x50], ebx
jg 0x4280ba
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0x50]
mov edx, dword [esp + 0x44]
sub edx, ebp
lea ecx, [eax + ebx]
cmp edx, ecx
jl 0x4280c4
sub eax, 2
je 0x427e4b
sub eax, 2
je 0x427e20
sub eax, 4
je 0x427d1b
mov byte [ebp], bl
jmp 0x427e55
mov eax, ebx
mov ecx, 0x10
cdq
mov edi, eax
mov eax, ebx
and eax, 0xff00
mov esi, edx
cdq
mov ebp, eax
mov eax, edi
mov dword [esp + 0x3c], ebp
mov ebp, edx
mov edx, esi
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], esi
call fcn.0042cb10
mov edi, dword [esp + 0x3c]
or ebp, edx
or edi, eax
mov ecx, 0x10
mov eax, edi
mov edx, ebp
call fcn.0042cb10
mov edi, eax
mov eax, ebx
and eax, 0xff0000
mov ebp, edx
cdq
or edi, eax
or ebp, edx
mov ecx, 0x10
mov eax, edi
mov edx, ebp
call fcn.0042cb10
mov edi, dword [esp + 0x68]
xor ebx, ebx
mov ecx, edi
or edx, ebx
and ecx, 0xff000000
or eax, ecx
mov ecx, 8
call fcn.0042cb10
mov ebx, eax
mov ecx, 0x10
mov dword [esp + 0x3c], ebx
mov ebx, edx
mov dword [esp + 0x58], ebx
mov ebx, esi
mov eax, edi
mov edx, esi
xor ebp, ebp
and ebx, 0xff0000
call fcn.0042cd70
or ebp, eax
or ebx, edx
mov ecx, 0x10
mov eax, ebp
mov edx, ebx
call fcn.0042cd70
mov edi, esi
xor ecx, ecx
and edi, 0xff00
or eax, ecx
or edx, edi
mov ecx, 0x10
call fcn.0042cd70
xor ecx, ecx
and esi, 0xff
or eax, ecx
or edx, esi
mov ecx, 8
call fcn.0042cd70
mov ecx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x20]
or ecx, eax
mov eax, dword [esp + 0x58]
or eax, edx
mov dword [ebp], ecx
mov dword [ebp + 4], eax
mov ebx, dword [esp + 0x50]
jmp 0x427e55
mov ecx, ebx
mov edx, ebx
and ecx, 0xff0000
mov eax, ebx
shr edx, 0x10
or ecx, edx
mov edx, ebx
shl eax, 0x10
and edx, 0xff00
or eax, edx
shr ecx, 8
shl eax, 8
or ecx, eax
mov dword [ebp], ecx
jmp 0x427e55
xor eax, eax
mov al, bh
mov ah, bl
mov word [ebp], ax
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x50]
add ebp, edx
cmp ebx, 0x40
mov dword [esp + 0x18], ebp
ja 0x427e7d
test ebx, ebx
jbe 0x427ea7
mov eax, ebx
mov dl, byte [esi]
mov byte [ebp], dl
inc ebp
inc esi
dec eax
jne 0x427e6d
mov dword [esp + 0x18], ebp
jmp 0x427ea7
mov eax, dword [esp + 0x10]
mov ecx, ebx
mov edx, ecx
mov esi, eax
mov edi, ebp
add eax, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov dword [esp + 0x10], eax
and ecx, 3
add ebp, ebx
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x18], ebp
mov esi, eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x40]
sub edi, ebx
add esi, edi
inc eax
cmp eax, ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0x24], eax
jl 0x427cab
jmp 0x4280cc
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x20]
test edx, edx
jne 0x427ee6
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x10]
sub edx, eax
mov edi, dword [esp + 0x10]
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x24], edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, edx
jge 0x4280ba
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x44]
inc ebx
sub esi, ebp
mov eax, dword [ecx + 0x50]
mov dword [esp + 0x3c], ebx
lea ecx, [eax + ebx]
cmp esi, ecx
jl 0x4280c4
sub eax, 2
je 0x42806a
sub eax, 2
je 0x42803f
sub eax, 4
je 0x427f3e
mov byte [ebp], bl
jmp 0x428074
mov eax, ebx
mov ecx, 0x10
cdq
mov edi, eax
mov eax, ebx
and eax, 0xff00
mov esi, edx
cdq
mov ebp, eax
mov eax, edi
mov dword [esp + 0x50], ebp
mov ebp, edx
mov edx, esi
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], esi
call fcn.0042cb10
mov edi, dword [esp + 0x50]
or ebp, edx
or edi, eax
mov ecx, 0x10
mov eax, edi
mov edx, ebp
call fcn.0042cb10
mov edi, eax
mov eax, ebx
and eax, 0xff0000
mov ebp, edx
cdq
or edi, eax
or ebp, edx
mov ecx, 0x10
mov eax, edi
mov edx, ebp
call fcn.0042cb10
mov edi, dword [esp + 0x70]
xor ebx, ebx
mov ecx, edi
or edx, ebx
and ecx, 0xff000000
or eax, ecx
mov ecx, 8
call fcn.0042cb10
mov ebx, eax
mov ecx, 0x10
mov dword [esp + 0x50], ebx
mov ebx, edx
mov dword [esp + 0x58], ebx
mov ebx, esi
mov eax, edi
mov edx, esi
xor ebp, ebp
and ebx, 0xff0000
call fcn.0042cd70
or ebp, eax
or ebx, edx
mov ecx, 0x10
mov eax, ebp
mov edx, ebx
call fcn.0042cd70
mov edi, esi
xor ecx, ecx
and edi, 0xff00
or eax, ecx
or edx, edi
mov ecx, 0x10
call fcn.0042cd70
xor ecx, ecx
and esi, 0xff
or eax, ecx
or edx, esi
mov ecx, 8
call fcn.0042cd70
mov ecx, dword [esp + 0x50]
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x3c]
or ecx, eax
mov eax, dword [esp + 0x58]
mov dword [ebp], ecx
or eax, edx
mov edx, dword [esp + 0x24]
mov dword [ebp + 4], eax
jmp 0x428074
mov ecx, ebx
mov eax, ebx
and ecx, 0xff0000
mov esi, ebx
shr eax, 0x10
or ecx, eax
mov eax, ebx
shl eax, 0x10
and esi, 0xff00
or eax, esi
shr ecx, 8
shl eax, 8
or ecx, eax
mov dword [ebp], ecx
jmp 0x428074
xor ecx, ecx
mov cl, bh
mov ch, bl
mov word [ebp], cx
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x10]
mov ecx, dword [eax + 0x50]
add ebp, ecx
mov ecx, ebx
mov eax, ecx
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x20]
and ecx, 3
add ebp, ebx
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x40]
add esi, edx
inc eax
cmp eax, ecx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x10], esi
mov dword [esp + 0x20], eax
jl 0x427ed1
jmp 0x4280cc
mov dword [esp + 0x14], 0x82010406
jmp 0x4280cc
mov dword [esp + 0x14], 0x82010402
mov eax, dword [esp + 0x2c]
test byte [eax + 0x44], 4
je 0x4280e4
mov ecx, dword [eax + 0x2c]
mov edx, dword [esp + 0x30]
shl ecx, 1
mov dword [edx + 0x24], ecx
jmp 0x4280f2
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
sub eax, dword [ecx + 0x28]
mov dword [ecx + 0x24], eax
test dword [esp + 0x14], 0x80000000
jne 0x42849b
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x10]
test eax, eax
mov eax, dword [esp + 0x30]
jne 0x42812d
mov esi, dword [eax + 0xc]
mov ecx, dword [ecx + 0x1c]
mov edx, dword [eax + 0x28]
dec esi
add edx, ecx
mov dword [eax + 0xc], esi
mov dword [eax + 0x28], edx
mov edx, dword [eax + 0x38]
mov dword [esp + 0x1c], edx
jmp 0x42845b
mov esi, dword [eax + 0x10]
mov edx, dword [ecx + 0x2c]
inc esi
mov dword [eax + 0x10], esi
mov eax, esi
cmp eax, edx
jl 0x42845b
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov edx, dword [eax + 0xc]
mov dword [eax + 0x10], 0
dec edx
mov dword [eax + 0xc], edx
mov edx, dword [ecx + 0x1c]
mov ecx, dword [eax + 0x28]
add ecx, edx
mov dword [eax + 0x28], ecx
mov eax, dword [eax + 0x38]
mov dword [esp + 0x1c], eax
jmp 0x42845b
cmp dword [esp + 0x34], 0x20
jge 0x428473
test edi, edi
jne 0x4282fe
mov eax, dword [esi + 0x68]
mov ebx, dword [ecx + 0x28]
mov edx, dword [esi + 0x64]
add eax, ebx
sub edx, 2
je 0x4281b4
sub edx, 2
je 0x4281b0
sub edx, 4
je 0x4281a1
xor edx, edx
mov dl, byte [eax]
jmp 0x4281b9
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], eax
jmp 0x4281c6
mov eax, dword [eax]
jmp 0x4281bb
xor edx, edx
mov dx, word [eax]
mov eax, edx
cdq
mov edi, eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], edi
mov eax, dword [esi + 0x78]
mov edx, dword [esp + 0x5c]
mov ebx, dword [eax + edx + 0x248]
lea esi, [eax + edx + 0x114]
xor eax, eax
mov dword [esp + 0x28], esi
mov edx, dword [esi + 0x138]
cmp edx, ebx
setg al
dec eax
mov dword [esp + 0x20], eax
mov eax, edi
sub eax, edx
js 0x428221
cmp eax, dword [esi + 0x2c]
jge 0x428221
lea edx, [eax + eax*4]
lea edx, [edx + edx*8]
mov ebx, dword [esi + edx*4 + 0x138]
lea edx, [esi + edx*4]
cmp ebx, edi
jne 0x428221
cmp ebx, dword [edx + 0x134]
jg 0x428221
mov dword [esp + 0x20], eax
jmp 0x4282a2
mov edx, dword [esi + 0x2c]
cmp edx, 0x10
jge 0x428250
xor ebx, ebx
test edx, edx
jle 0x4282a2
lea eax, [esi + 0x134]
cmp dword [eax + 4], edi
jg 0x42823e
cmp edi, dword [eax]
jle 0x42824a
inc ebx
add eax, 0xb4
cmp ebx, edx
jl 0x428235
jmp 0x4282a2
mov dword [esp + 0x20], ebx
jmp 0x4282a2
lea eax, [edx - 1]
xor ebx, ebx
test eax, eax
mov dword [esp + 0x24], eax
jl 0x4282a2
mov eax, dword [esp + 0x24]
lea edx, [eax + ebx]
sar edx, 1
lea eax, [edx + edx*4]
lea eax, [eax + eax*8]
mov edi, dword [esi + eax*4 + 0x138]
lea eax, [esi + eax*4]
mov eax, dword [eax + 0x134]
cmp edi, eax
jg 0x428293
cmp dword [esp + 0x48], edi
jge 0x42828d
dec edx
mov dword [esp + 0x24], edx
jmp 0x428296
cmp dword [esp + 0x48], eax
jle 0x42829e
lea ebx, [edx + 1]
cmp ebx, dword [esp + 0x24]
jle 0x42825d
jmp 0x4282a2
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x20]
cmp eax, 0xffffffff
je 0x4282c7
mov edi, dword [esp + 0x1810]
lea edx, [eax + eax*4]
lea edx, [edx + edx*8]
mov edx, dword [esi + edx*4 + 0xbc]
cmp edx, edi
jg 0x4282c7
test esi, esi
jne 0x42831c
mov eax, dword [ecx]
mov dword [esp + 0x28], eax
mov edx, dword [eax + 0x10]
test edx, edx
jne 0x4282f2
mov esi, dword [ecx + 0xc]
mov eax, dword [eax + 0x1c]
mov edx, dword [ecx + 0x28]
dec esi
add edx, eax
mov dword [ecx + 0xc], esi
mov dword [ecx + 0x28], edx
mov ecx, dword [ecx + 0x38]
mov dword [esp + 0x1c], ecx
jmp 0x42845b
mov edx, dword [ecx + 0x10]
inc edx
mov dword [ecx + 0x10], edx
jmp 0x42790c
mov edx, dword [esi + 0x78]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x20], 0
lea esi, [edx + eax + 0x114]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], esi
mov edx, dword [esp + 0x1810]
mov edi, dword [esi + 0x58]
cmp edi, edx
jg 0x428483
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x10]
add ecx, 0xbc
inc edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x64]
xor edx, edx
cmp eax, edx
mov dword [ecx + 0x24], edx
mov dword [ecx], esi
mov dword [ecx + 0xc], edi
mov dword [ecx + 0x28], ebx
mov dword [ecx + 0x30], ebp
jbe 0x428396
mov edx, dword [esi + 0x68]
mov dword [ecx + 0x14], eax
cmp edx, 0xffffffff
je 0x428384
mov edi, dword [esp + 0x2c]
mov edx, eax
mov dword [ecx + 0x34], ebp
neg edx
add ebp, eax
mov dword [ecx + 0x18], edx
mov dword [esp + 0x18], ebp
jmp 0x4283e2
mov eax, dword [esi + 0x5c]
mov edi, dword [esp + 0x2c]
mov dword [ecx + 0x18], eax
lea edx, [eax + ebp]
mov dword [ecx + 0x34], edx
jmp 0x4283e2
mov edi, dword [esp + 0x2c]
mov eax, dword [edi + 0x50]
cmp eax, edx
jbe 0x4283df
mov edx, dword [edi + 0x54]
mov dword [ecx + 0x14], eax
cmp edx, 0xffffffff
je 0x4283bc
mov dword [ecx + 0x34], ebp
add ebp, eax
neg eax
mov dword [esp + 0x18], ebp
mov dword [ecx + 0x18], eax
jmp 0x4283e2
mov eax, dword [edi + 0x48]
mov edx, dword [edi + 0x28]
cmp eax, edx
jl 0x4283d2
sub eax, edx
mov dword [ecx + 0x18], eax
add eax, ebp
mov dword [ecx + 0x34], eax
jmp 0x4283e2
mov edx, dword [ecx - 0x8c]
add edx, eax
mov dword [ecx + 0x34], edx
jmp 0x4283e2
mov dword [ecx + 0x14], edx
mov eax, dword [esi + 0x74]
mov edx, dword [esp + 0x38]
test eax, eax
mov dword [ecx + 0x30], ebp
mov dword [ecx + 0x2c], edx
mov dword [ecx + 4], edi
mov dword [ecx + 0x38], 1
jbe 0x428451
mov esi, dword [esi + 0x70]
add esi, ebx
sub edx, esi
cmp edx, eax
jge 0x428412
mov dword [esp + 0x14], 0x82010407
jmp 0x428451
sub eax, 2
je 0x428446
sub eax, 2
je 0x42843b
sub eax, 4
je 0x42842c
mov al, byte [esp + 0x1810]
mov byte [esi], al
jmp 0x428451
mov eax, dword [esp + 0x1810]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x428451
mov ecx, dword [esp + 0x1810]
mov dword [esi], ecx
jmp 0x428451
mov dx, word [esp + 0x1810]
mov word [esi], dx
test dword [esp + 0x14], 0x80000000
jne 0x42849b
mov esi, dword [esp + 0x34]
test esi, esi
jg 0x4276e7
jmp 0x42849b
mov dword [esp + 0x14], 0x82010402
jmp 0x42849b
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x14], 0x82010404
mov dword [ecx + 0x24], eax
jmp 0x42849b
mov dword [esp + 0x14], 0x82010401
jmp 0x42849b
mov edx, dword [esi + 0x2c]
mov dword [esp + 0x14], 0x82010403
mov dword [ecx + 0x24], edx
mov esi, dword [esp + 0x180c]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0xa4]
test edi, 0x80000000
mov dword [esi + 4], eax
je 0x428518
mov edx, dword [esp + 0x34]
mov eax, 1
cmp edx, eax
jle 0x428518
lea ecx, [esp + 0x160]
mov ebx, dword [ecx - 0x20]
test byte [ebx + 0x44], 4
jne 0x4284fe
mov ebx, dword [ecx]
add ecx, 0xbc
add dword [esi + 4], ebx
inc eax
cmp eax, edx
jl 0x4284cc
mov eax, dword [esp + 0x1808]
sub ebp, dword [eax]
mov dword [eax + 4], ebp
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x17f0
ret
lea ecx, [eax + eax*2]
shl ecx, 4
sub ecx, eax
mov edx, dword [esp + ecx*4 + 0x84]
mov ecx, dword [esi + 4]
mov eax, dword [edx + 0x18]
add ecx, eax
mov dword [esi + 4], ecx
mov eax, dword [esp + 0x1808]
sub ebp, dword [eax]
mov dword [eax + 4], ebp
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x17f0
ret
mov ebx, dword [esp + 0x180c]
mov ecx, dword [esp + 0x1808]
xor eax, eax
pop edi
mov dword [ebx + 4], eax
pop esi
mov dword [ecx + 4], eax
pop ebp
mov eax, 0x82010401
pop ebx
add esp, 0x17f0
ret
pop edi
pop esi
pop ebp
mov eax, 0x82010468
pop ebx
add esp, 0x17f0
ret