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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xbc
mov dword [esp + 0x34], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 8]
mov eax, ecx
add eax, 1
xor ecx, 0xffffffff
or ecx, 0x80000
add ecx, eax
xor eax, eax
cmp ecx, 0
je 0x428ca2
jmp 0x428c1e
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x1c]
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 0x40]
mov eax, ecx
xor eax, esi
xor eax, 0xffffffff
mov edx, esi
and edx, eax
shl edx, 1
sub edx, esi
mov eax, ecx
sub eax, edx
or esi, esi
xor esi, 0xffffffff
xor esi, 0xffffffff
and esi, 0xffffffff
xor esi, 0xffffffff
and esi, 0xffffffff
mov edx, ecx
and edx, esi
xor edx, 0xffffffff
xor ecx, 0xffffffff
xor esi, 0xffffffff
or ecx, esi
xor edx, 0xffffffff
xor ecx, 0xffffffff
or edx, ecx
mov ecx, edx
xor ecx, 0xffffffff
mov esi, ecx
and esi, 2
or ecx, 2
xor ecx, 0xffffffff
imul ecx, esi
mov esi, edx
and esi, 2
or edx, 2
imul edx, esi
add edx, ecx
add edx, 0x557d7c6a
sub edx, eax
sub edx, 0x557d7c6a
mov eax, dword [esp + 0xc]
cmp edx, dword [eax + 0x24]
setbe al
jmp 0x428ca2
and al, 1
movzx eax, al
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xc]
cmp dword [eax], 0
sete al
test al, 1
jne 0x428cbb
jmp 0x428d13
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x7c]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x8c]
mov ecx, eax
xor ecx, 0xffffffff
and ecx, edx
mov esi, edx
xor esi, 0xffffffff
xor esi, 0xffffffff
and esi, 0xffffffff
shl esi, 1
sub esi, 0xffffffff
sub edx, esi
xor edx, 0xffffffff
mov esi, eax
xor esi, edx
and esi, eax
sub esi, ecx
cmp esi, 0x14ccc
jb 0x428d13
jmp 0x428d00
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x74]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x8c]
jmp 0x428d20
jmp 0x428d15
mov eax, dword [esp + 0xc]
add eax, 0x39272
jmp 0x428d20
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x30], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
add eax, 0x14ccc
add eax, 0xfffffff0
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x34], eax
mov eax, dword [esp + 0xc]
mov dword [eax + 0x58], 0
mov eax, dword [esp + 0xc]
mov dword [eax + 0x5c], 0
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x2c]
movzx eax, byte [eax]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x38]
shr eax, cl
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x2c]
mov byte [ecx], al
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x38], 8
sete al
and al, 1
movzx eax, al
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x28]
mov esi, 0x696cf454
sub esi, eax
add esi, 0x96930bac
add edx, esi
mov dword [ecx + 0x28], edx
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
and eax, 0x1000
cmp eax, 0
je 0x428fd0
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x64], 0
jne 0x428fd0
jmp 0x428dc5
mov dword [esp + 0xb8], pe_nt_image_headers32
mov dword [esp + 0xb4], 8
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
shl esi, cl
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x48]
mov ecx, edi
xor ecx, 0xffffffff
and ecx, 0xffffffff
or ecx, 0
mov edx, esi
xor edx, 0xffffffff
mov ebx, esi
xor ebx, 0xffffffff
or edx, ebx
xor edx, 0xffffffff
or edx, 0
xor edx, 0xffffffff
or edx, 0
mov ebx, ecx
xor ebx, 0xffffffff
or ebx, 0x4f5a49b0
xor ebx, 0xffffffff
and ebx, 0xffffffff
and edi, 0x4f5a49b0
mov ebp, edx
xor ebp, 0xffffffff
or ebp, 0x4f5a49b0
xor ebp, 0xffffffff
and ebp, 0xffffffff
and esi, 0x4f5a49b0
or ebx, edi
mov edi, ebp
and edi, esi
xor ebp, esi
or edi, ebp
mov esi, ebx
xor esi, 0xffffffff
and esi, 0x6ee65bd8
and ebx, 0x9119a427
mov ebp, edi
xor ebp, 0xffffffff
and ebp, 0x6ee65bd8
and edi, 0x9119a427
or esi, ebx
or ebp, edi
xor esi, ebp
or ecx, edx
xor ecx, 0xffffffff
mov edx, ecx
and edx, 0xffffffff
xor edx, 0xffffffff
xor ecx, 0xffffffff
or ecx, 0
xor edx, 0xffffffff
xor ecx, 0xffffffff
or edx, ecx
or esi, edx
mov dword [eax + 0x48], esi
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x44]
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x428ef7
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x428edb
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
add ecx, 0xfffffff8
mov dword [eax + 0x44], ecx
jmp 0x428ea9
jmp 0x428ef9
jmp 0x428efb
mov dword [esp + 0xb0], 1
mov dword [esp + 0xac], 8
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x44]
shl eax, cl
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x48]
mov edi, eax
and edi, edx
mov esi, edi
xor esi, 0xffffffff
xor edi, 0xffffffff
and esi, edi
xor esi, 0xffffffff
and esi, 0xffffffff
xor esi, 0xffffffff
and esi, 0xffffffff
add edx, eax
add edx, 1
add edx, esi
mov dword [ecx + 0x48], edx
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x44]
mov dword [ecx + 0x44], eax
jmp 0x428f5f
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
setae al
test al, 1
jne 0x428f70
jmp 0x428fc4
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x428f9c
jmp 0x428f82
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
jmp 0x428f9c
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
sub ecx, 0x913a9075
sub ecx, 8
add ecx, 0x913a9075
mov dword [eax + 0x44], ecx
jmp 0x428f5d
jmp 0x428fc6
jmp 0x428fc8
jmp 0x428fca
jmp 0x428fcc
jmp 0x428fce
jmp 0x428fd0
jmp 0x428fd2
cmp dword [esp + 0x34], 4
sete al
and al, 1
movzx eax, al
mov dword [esp + 0xa8], eax
mov dword [esp + 0xa4], 1
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x44]
shl eax, cl
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x48]
mov esi, edx
and esi, eax
xor edx, eax
or esi, edx
mov dword [ecx + 0x48], esi
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x44]
mov dword [ecx + 0x44], eax
jmp 0x429026
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
setae al
test al, 1
jne 0x429037
jmp 0x429088
jmp 0x429039
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
setb al
test al, 1
jne 0x429050
jmp 0x42906c
jmp 0x429052
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
jmp 0x42906c
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
sub ecx, 8
mov dword [eax + 0x44], ecx
jmp 0x429024
jmp 0x42908a
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x44]
mov dword [esp + 0x40], eax
cmp dword [esp + 0x38], 0
jne 0x4290e3
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 8]
and ecx, 0x40000
mov al, 1
cmp ecx, 0
jne 0x4290d1
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x3c], 0x30
setb al
and al, 1
movzx edx, al
mov ecx, dword [esp + 0xc]
call fcn.00431d30
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x38], 0
jne 0x429127
jmp 0x4290ec
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x3c], 0
setne al
test al, 1
jne 0x429100
jmp 0x429640
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0x30]
sub eax, ecx
mov ecx, eax
and ecx, 1
shl ecx, 1
xor eax, 1
add eax, ecx
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x3c]
jb 0x429640
jmp 0x429129
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x1c]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x40]
sub eax, 0x30e44e0a
sub eax, 0x56b55b68
sub eax, ecx
add eax, 0x56b55b68
sub eax, 0xcf1bb1f6
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x24]
setbe al
test al, 1
jne 0x429160
jmp 0x429640
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x30], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x48], eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x44], eax
mov dword [esp + 0xa0], 0
mov dword [esp + 0x9c], 2
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x44]
shl eax, cl
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x48]
mov esi, eax
xor esi, 0xffffffff
mov edi, edx
xor edi, 0xffffffff
or esi, edi
xor esi, 0xffffffff
and esi, 0xffffffff
xor esi, 0xffffffff
add edx, eax
add edx, 1
add edx, esi
mov dword [ecx + 0x48], edx
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x44]
mov dword [ecx + 0x44], eax
jmp 0x4291e0
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x429237
jmp 0x4291ec
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
setb al
test al, 1
jne 0x429203
jmp 0x42921b
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
sub ecx, 8
mov dword [eax + 0x44], ecx
jmp 0x4291e0
jmp 0x429239
jmp 0x42923b
jmp 0x42923d
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 0
je 0x429383
jmp 0x42924d
mov dword [esp + 0x98], 0
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x44]
xor ecx, ecx
sub ecx, eax
add ecx, 8
mov dword [esp + 0x94], ecx
mov esi, dword [esp + 0x98]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
shl esi, cl
mov eax, dword [esp + 0xc]
mov ebx, dword [eax + 0x48]
mov edx, ebx
xor edx, 0xffffffff
mov edi, esi
xor edi, 0xffffffff
mov ecx, edx
and ecx, 0x5795d906
and ebx, 0xa86a26f9
mov ebp, edi
and ebp, 0x5795d906
and esi, 0xa86a26f9
or ecx, ebx
or ebp, esi
xor ecx, ebp
or edx, edi
xor edx, 0xffffffff
or edx, edx
xor edx, 0xffffffff
xor edx, 0xffffffff
and edx, 0xffffffff
mov esi, edx
xor esi, 0xffffffff
mov edi, ecx
and edi, esi
mov esi, ecx
xor esi, edx
add ecx, esi
sub ecx, edi
mov dword [eax + 0x48], ecx
mov esi, dword [esp + 0x94]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
mov edx, ecx
and edx, esi
mov edi, edx
and edi, 0xfffffffd
mov ebx, edx
or ebx, 0xfffffffd
xor ebx, 0xffffffff
imul ebx, edi
mov edi, edx
and edi, 2
or edx, 2
imul edx, edi
add edx, ebx
xor ecx, esi
xor esi, esi
sub esi, edx
sub ecx, esi
mov dword [eax + 0x44], ecx
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x429377
jmp 0x42931a
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
setb al
test al, 1
jne 0x429331
jmp 0x42934d
jmp 0x429333
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
jmp 0x42934d
jmp 0x42934f
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
add ecx, 0xc5140f4
sub ecx, 8
sub ecx, 0xc5140f4
mov dword [eax + 0x44], ecx
jmp 0x42930e
jmp 0x429379
jmp 0x42937b
jmp 0x42937d
jmp 0x42937f
jmp 0x429381
jmp 0x429383
mov dword [esp + 0x10], 2
jmp 0x42938d
cmp dword [esp + 0x10], 0
setne al
test al, 1
jne 0x42939e
jmp 0x429514
jmp 0x4293a0
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x3c]
or eax, eax
xor eax, 0xffffffff
mov ecx, eax
and ecx, 0xffffffff
shl ecx, 1
add eax, 0xffffffff
sub eax, ecx
and eax, 0xffff
mov dword [esp + 0x90], eax
mov dword [esp + 0x8c], 0x10
mov edi, dword [esp + 0x90]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
shl edi, cl
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 0x48]
mov ecx, esi
xor ecx, 0xffffffff
mov edx, edi
xor edx, 0xffffffff
or ecx, edx
xor ecx, 0xffffffff
and ecx, 0xffffffff
mov edx, esi
and edx, edx
xor edx, 0xffffffff
and edx, edi
xor edx, 0xffffffff
mov ebx, edi
xor ebx, 0xffffffff
xor edi, 0xffffffff
or ebx, edi
xor esi, 0xffffffff
xor ebx, 0xffffffff
or esi, ebx
xor edx, 0xffffffff
xor esi, 0xffffffff
or edx, esi
mov esi, ecx
xor esi, 0xffffffff
mov ebx, edx
xor ebx, 0xffffffff
mov edi, esi
and edi, 0x46cbfe2
and ecx, 0xfb93401d
mov ebp, ebx
and ebp, 0x46cbfe2
and edx, 0xfb93401d
or edi, ecx
or ebp, edx
xor edi, ebp
or esi, ebx
xor esi, 0xffffffff
and esi, 0xffffffff
or edi, esi
mov dword [eax + 0x48], edi
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x44]
mov esi, edx
and esi, eax
or edx, eax
add esi, edx
mov dword [ecx + 0x44], esi
jmp 0x429473
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
setae al
test al, 1
jne 0x429484
jmp 0x4294ca
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x4294ac
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
jmp 0x4294ae
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
add ecx, 0xfffffff8
mov dword [eax + 0x44], ecx
jmp 0x429471
jmp 0x4294cc
jmp 0x4294ce
jmp 0x4294d0
jmp 0x4294d2
mov eax, dword [esp + 0x10]
add eax, 0xbee19549
sub eax, 1
sub eax, 0xbee19549
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 0x3c]
mov ecx, edx
and ecx, ecx
xor ecx, 0xffffffff
and ecx, 0xffff
xor ecx, 0xffffffff
and edx, 0xffff0000
xor edx, 0xffffffff
and ecx, edx
xor ecx, 0xffffffff
mov dword [eax + 0x3c], ecx
jmp 0x42938b
mov dword [esp + 0x10], 0
jmp 0x42951e
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x3c]
setb al
test al, 1
jne 0x429535
jmp 0x42963e
jmp 0x429537
jmp 0x429539
jmp 0x42953b
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x40]
add ecx, dword [esp + 0x10]
mov edx, ecx
xor edx, 0xffffffff
or edx, 0xffff8000
and ecx, 0x7fff
xor ecx, 0xffffffff
and edx, ecx
xor edx, 0xffffffff
movzx eax, byte [eax + edx + 0x90]
mov dword [esp + 0x88], eax
mov dword [esp + 0x84], 8
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x44]
shl eax, cl
mov ecx, dword [esp + 0xc]
or eax, dword [ecx + 0x48]
mov dword [ecx + 0x48], eax
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 0x44]
sub edx, 0x3ca1d7fb
xor esi, esi
sub esi, ecx
sub edx, esi
xor ecx, ecx
sub ecx, edx
add ecx, 0xc35e2805
xor edx, edx
sub edx, ecx
mov dword [eax + 0x44], edx
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x42962a
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x4295f4
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
jmp 0x4295f6
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
add ecx, 0x4dd375a2
add ecx, 0x4b5ac461
sub ecx, 8
sub ecx, 0x4b5ac461
sub ecx, 0x4dd375a2
mov dword [eax + 0x44], ecx
jmp 0x4295c2
jmp 0x42962c
jmp 0x42962e
mov eax, dword [esp + 0x10]
sub eax, 0xffffffff
mov dword [esp + 0x10], eax
jmp 0x42951c
jmp 0x429680
cmp dword [esp + 0x3c], 0
jne 0x42967a
jmp 0x429649
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x30], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x48], eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x44], eax
mov ecx, dword [esp + 0xc]
mov edx, 1
call fcn.00431d30
jmp 0x42967a
jmp 0x42967c
jmp 0x42967e
jmp 0x429680
cmp dword [esp + 0x34], 0
je 0x429c52
cmp dword [esp + 0x34], 4
jne 0x4298c4
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 0
je 0x4297b4
jmp 0x4296a6
mov dword [esp + 0x80], 0
mov eax, dword [esp + 0xc]
mov ecx, 8
sub ecx, dword [eax + 0x44]
mov dword [esp + 0x7c], ecx
mov esi, dword [esp + 0x80]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
shl esi, cl
mov eax, dword [esp + 0xc]
mov dword [esp + 0x50], eax
mov ebx, dword [eax + 0x48]
mov ecx, ebx
xor ecx, 0xffffffff
mov eax, esi
xor eax, 0xffffffff
mov edx, ecx
and edx, 0xcb66012d
mov edi, ebx
add edi, 1
xor ebx, 0xffffffff
or ebx, 0x3499fed2
add ebx, edi
mov ebp, eax
and ebp, 0xcb66012d
mov edi, esi
xor edi, 0xffffffff
or edi, 0xcb66012d
and esi, 0x3499fed2
xor esi, 0xffffffff
and edi, esi
xor edi, 0xffffffff
or edx, ebx
or ebp, edi
xor edx, ebp
mov esi, eax
and esi, ecx
xor esi, 0xffffffff
add ecx, eax
add ecx, 1
add ecx, esi
xor ecx, 0xffffffff
and ecx, 0xffffffff
or edx, ecx
mov eax, dword [esp + 0x50]
mov dword [eax + 0x48], edx
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x44]
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x4297a8
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x429782
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
mov edx, ecx
xor edx, 0xffffffff
and edx, 8
and ecx, 0xfffffff7
sub ecx, edx
mov dword [eax + 0x44], ecx
jmp 0x429750
jmp 0x4297aa
jmp 0x4297ac
jmp 0x4297ae
jmp 0x4297b0
jmp 0x4297b2
jmp 0x4297b4
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
mov ecx, eax
and ecx, 0x1000
xor ecx, 0xffffffff
xor eax, 0xffffffff
or eax, 0xffffefff
and ecx, eax
xor ecx, 0xffffffff
cmp ecx, 0
je 0x4298bf
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 0
jmp 0x4297f1
cmp dword [esp + 0x28], 4
setb al
test al, 1
jne 0x429802
jmp 0x4298bb
jmp 0x429804
jmp 0x429806
jmp 0x429808
mov eax, dword [esp + 0x24]
shr eax, 0x18
add eax, 1
add eax, 0xffffffff
mov dword [esp + 0x78], eax
mov dword [esp + 0x74], 8
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x44]
shl eax, cl
mov ecx, dword [esp + 0xc]
or eax, dword [ecx + 0x48]
mov dword [ecx + 0x48], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x44]
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x42989a
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x42987e
jmp 0x429864
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
jmp 0x42987e
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
add ecx, 0xfffffff8
mov dword [eax + 0x44], ecx
jmp 0x429848
jmp 0x42989c
jmp 0x42989e
jmp 0x4298a0
mov eax, dword [esp + 0x24]
shl eax, 8
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x28]
add eax, 1
mov dword [esp + 0x28], eax
jmp 0x4297ef
jmp 0x4298bd
jmp 0x4298bf
jmp 0x429c50
mov dword [esp + 0x1c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 3
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
shl ebx, cl
mov eax, dword [esp + 0xc]
mov dword [esp + 0x54], eax
mov ecx, dword [eax + 0x48]
mov eax, ecx
xor eax, 0xffffffff
xor eax, 0xffffffff
and eax, 0xffffffff
shl eax, 1
sub eax, 0xffffffff
mov edx, ecx
sub edx, eax
mov eax, ebx
xor eax, 0xffffffff
mov esi, eax
mov dword [esp + 0x4c], esi
mov ebp, edx
and ebp, 0xe0e79012
or ecx, ecx
xor ecx, 0xffffffff
xor ecx, 0xffffffff
and ecx, 0x1f186fed
and esi, 0xe0e79012
mov eax, ebx
xor eax, 0xe0e79012
and eax, ebx
mov ebx, ebp
xor ebx, 0xffffffff
mov edi, ecx
xor edi, 0xffffffff
and ebx, edi
or ebp, ecx
xor ebp, 0xffffffff
xor ebx, 0xffffffff
xor ebp, 0xffffffff
and ebx, ebp
or esi, eax
mov edi, ebx
xor edi, 0xffffffff
and edi, 0x7abb3830
and ebx, 0x8544c7cf
mov eax, esi
xor eax, 0xffffffff
and eax, 0x7abb3830
and esi, 0x8544c7cf
or edi, ebx
or eax, esi
xor edi, eax
or edx, dword [esp + 0x4c]
mov eax, edx
and eax, 0xffffffff
shl eax, 1
add edx, 0xffffffff
sub edx, eax
xor edx, 0xffffffff
xor edx, 0xffffffff
and edx, 0xffffffff
or edi, edx
mov eax, dword [esp + 0x54]
mov dword [eax + 0x48], edi
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x44]
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x429a0d
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x4299e3
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
jmp 0x4299e5
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
add ecx, 0x51202c12
sub ecx, 8
sub ecx, 0x51202c12
mov dword [eax + 0x44], ecx
jmp 0x4299b1
jmp 0x429a0f
jmp 0x429a11
jmp 0x429a13
jmp 0x429a15
jmp 0x429a17
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 0
je 0x429b3e
jmp 0x429a27
jmp 0x429a29
jmp 0x429a2b
mov dword [esp + 0x68], 0
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x44]
mov ecx, 0x6814f144
sub ecx, eax
add ecx, 0x97eb0ec4
mov dword [esp + 0x64], ecx
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
shl edx, cl
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 0x48]
mov ecx, esi
xor ecx, 0xffffffff
and ecx, 0xec8800e2
mov edi, esi
and edi, 0x1377ff1d
or ecx, edi
xor ecx, 0x1377ff1d
xor esi, 0xffffffff
or ecx, esi
mov esi, edx
xor esi, 0xffffffff
xor edx, 0xffffffff
or esi, edx
xor esi, 0xffffffff
and esi, 0xffffffff
mov edx, esi
xor edx, 0xffffffff
xor esi, 0xffffffff
or edx, esi
and edx, 0xffffffff
xor edx, 0xffffffff
xor edx, 0xffffffff
or edx, 0
xor ecx, 0xffffffff
mov esi, edx
and esi, 0xffffffff
shl esi, 1
add edx, 0xffffffff
sub edx, esi
mov esi, edx
and esi, ecx
xor esi, 0xffffffff
add ecx, edx
add ecx, 1
add ecx, esi
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x44]
xor esi, esi
sub esi, edx
xor edx, edx
sub edx, eax
add esi, edx
xor eax, eax
sub eax, esi
mov dword [ecx + 0x44], eax
jmp 0x429ae4
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x429b32
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x429b16
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
add ecx, 0xfffffff8
mov dword [eax + 0x44], ecx
jmp 0x429ae4
jmp 0x429b34
jmp 0x429b36
jmp 0x429b38
jmp 0x429b3a
jmp 0x429b3c
jmp 0x429b3e
mov dword [esp + 0x20], 2
cmp dword [esp + 0x20], 0
je 0x429c4c
jmp 0x429b53
mov eax, dword [esp + 0x1c]
mov ecx, eax
and ecx, 0xffff0000
shl ecx, 1
mov edx, eax
add edx, 0xffff0000
sub edx, ecx
and edx, eax
mov dword [esp + 0x60], edx
mov dword [esp + 0x5c], 0x10
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x44]
shl eax, cl
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x48]
mov esi, edx
add esi, 1
mov edi, edx
xor edi, 0xffffffff
or edi, eax
add edi, esi
xor edx, eax
or edi, edx
mov dword [ecx + 0x48], edi
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x44]
mov dword [ecx + 0x44], eax
jmp 0x429bb3
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
setae al
test al, 1
jne 0x429bc4
jmp 0x429c1d
jmp 0x429bc6
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
setb al
test al, 1
jne 0x429bdd
jmp 0x429bf5
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
jmp 0x429bf7
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
mov edx, ecx
xor edx, 0xffffffff
and edx, 8
and ecx, 0xfffffff7
sub ecx, edx
mov dword [eax + 0x44], ecx
jmp 0x429bb1
jmp 0x429c1f
jmp 0x429c21
jmp 0x429c23
jmp 0x429c25
mov eax, dword [esp + 0x20]
add eax, 0x3e89ae03
add eax, 0xffffffff
sub eax, 0x3e89ae03
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
xor eax, 0xffff
mov dword [esp + 0x1c], eax
jmp 0x429b46
jmp 0x429c4e
jmp 0x429c50
jmp 0x429c52
mov eax, dword [esp + 0xc]
add eax, 0x8192
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x240
call fcn.00450c00
mov eax, dword [esp + 0xc]
add eax, 0x8192
add eax, 0x240
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x40
call fcn.00450c00
mov eax, dword [esp + 0xc]
add eax, 0x9272
add eax, 1
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0xc]
add eax, 0x9272
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0xc]
mov dword [eax + 0x38], 8
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x3c]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x40]
and eax, 0xffffffff
xor esi, esi
sub esi, eax
sub edx, esi
mov dword [ecx + 0x40], edx
mov eax, dword [esp + 0xc]
mov dword [eax + 0x3c], 0
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x64]
add ecx, 1
mov dword [eax + 0x64], ecx
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0x2c]
sub eax, ecx
mov dword [esp + 0x14], eax
cmp eax, 0
je 0x429f22
mov eax, dword [esp + 0xc]
cmp dword [eax], 0
je 0x429dcf
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x84]
mov ecx, dword [esp + 0xc]
mov esi, dword [ecx + 0x70]
mov ecx, eax
xor ecx, esi
mov edx, esi
xor edx, 0xffffffff
xor esi, 0xffffffff
and edx, esi
or edx, 0
xor edx, 0xffffffff
xor edx, 0xffffffff
and edx, 0xffffffff
and eax, edx
mov edx, eax
and edx, 0xfffffffd
mov esi, eax
xor esi, 0xffffffff
and esi, 2
imul esi, edx
mov edx, eax
and edx, 2
or eax, 2
imul eax, edx
add eax, esi
sub eax, ecx
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x78]
mov dword [ecx], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 4]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0xc]
add esi, 0x39272
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call eax
cmp eax, 0
jne 0x429dca
jmp 0x429daa
mov eax, dword [esp + 0xc]
mov dword [eax + 0x6c], 0xffffffff
mov dword [esp + 0x48], 0xffffffff
mov dword [esp + 0x58], 1
jmp 0x429f35
jmp 0x429f1c
jmp 0x429dd1
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xc]
add ecx, 0x39272
cmp eax, ecx
sete al
test al, 1
jne 0x429ded
jmp 0x429efc
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x7c]
mov ecx, dword [ecx]
mov edx, dword [esp + 0xc]
mov esi, dword [edx + 0x8c]
mov edx, ecx
and edx, edx
xor edx, 0xffffffff
xor edx, 0xffffffff
or edx, 0
and edx, 0xffffffff
xor edx, 0xffffffff
and edx, esi
xor esi, 0xffffffff
mov edi, ecx
xor edi, esi
xor edi, 0xffffffff
or ecx, esi
and ecx, edi
sub ecx, edx
cmp eax, ecx
jae 0x429e33
mov eax, dword [esp + 0x14]
jmp 0x429e4a
jmp 0x429e35
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x7c]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
sub eax, dword [ecx + 0x8c]
jmp 0x429e4a
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x74]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x8c]
mov ecx, dword [esp + 0xc]
add ecx, 0x39272
mov edx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00450100
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 0x8c]
add edx, 0x42080f56
xor esi, esi
sub esi, ecx
sub edx, esi
add edx, 0xe54a4925
sub edx, 0x42080f56
sub edx, 0xe54a4925
mov dword [eax + 0x8c], edx
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov ecx, eax
xor ecx, edx
mov esi, edx
and esi, 0xffffffff
shl esi, 1
add edx, 0xffffffff
sub edx, esi
and eax, edx
shl eax, 1
mov edx, eax
xor edx, 0xffffffff
and edx, ecx
xor ecx, 0xffffffff
and eax, ecx
sub eax, edx
mov dword [esp + 0x14], eax
cmp eax, 0
je 0x429efa
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x58], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x5c], eax
jmp 0x429f16
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x8c]
xor esi, esi
sub esi, eax
sub edx, esi
mov dword [ecx + 0x8c], edx
jmp 0x429f18
jmp 0x429f1a
jmp 0x429f1c
jmp 0x429f1e
jmp 0x429f20
jmp 0x429f22
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x5c]
mov dword [esp + 0x48], eax
mov dword [esp + 0x58], 1
mov eax, dword [esp + 0x48]
add esp, 0xbc
pop esi
pop edi
pop ebx
pop ebp
ret