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

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0xc8
push ebx
push ebp
push esi
mov esi, ecx
lea eax, [eax + eax*2]
push edi
mov ecx, dword [esi + 0x1680]
xor edi, edi
mov eax, dword [ecx + eax*8 + 8]
test byte [eax + 0x85], 0x20
je 0x428db0
cmp eax, edi
je 0x428d79
mov ecx, dword [eax + 0x34]
mov eax, dword [eax + 0x38]
lea edx, [ecx + ecx*2]
mov ecx, dword [0x6249f8]
lea eax, [eax + eax*4]
mov ecx, dword [ecx + 0x28]
mov ecx, dword [ecx + edx*4]
mov ecx, dword [ecx + eax*8]
jmp 0x428d7b
xor ecx, ecx
mov edx, dword [ecx]
call dword [edx + 0x20]
test al, al
je 0x428db0
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0xdc]
push eax
push ecx
push edx
mov ecx, esi
call fcn.0042a8b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc8
ret 0xc
lea eax, [esp + 0x2f]
push edi
push eax
lea ecx, [esp + 0x28]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
call fcn.0046fe80
mov ebp, dword [esp + 0xdc]
lea ecx, [ebp - 1]
cmp ecx, edi
jle 0x428e61
mov edx, dword [esi + 0x1680]
lea edi, [ecx + ecx*2]
shl edi, 3
lea eax, [ebp + ebp*2]
mov ebx, dword [edi + edx]
cmp ebx, dword [edx + eax*8]
jne 0x428e61
mov eax, dword [edi + edx + 8]
add eax, 0x24
mov ebx, dword [eax]
cmp ebx, dword [esi + 0x16e8]
jg 0x428e29
mov ebx, dword [eax + 4]
cmp ebx, dword [esi + 0x16f0]
jg 0x428e29
mov ebx, dword [eax + 8]
cmp ebx, dword [esi + 0x16e4]
jl 0x428e29
mov eax, dword [eax + 0xc]
mov ebx, dword [esi + 0x16ec]
cmp eax, ebx
jl 0x428e29
mov al, 1
jmp 0x428e2b
xor al, al
mov ebx, 6
cmp dword [edi + edx + 0x10], ebx
je 0x428e61
test al, al
je 0x428e61
mov edx, dword [esp + 0xe0]
push edx
push ecx
mov ecx, esi
call fcn.0042a590
mov eax, dword [esi + 0x1680]
cmp dword [edi + eax + 0x10], ebx
jne 0x428f41
mov ebp, dword [esp + 0xdc]
mov edx, dword [esi + 0x16cc]
mov ecx, ebp
sub ecx, dword [edx + 0x2c]
test ecx, ecx
jle 0x428ef5
mov eax, dword [esi + 0x1680]
lea edi, [ecx + ecx*2]
shl edi, 3
lea edx, [edi + eax]
mov eax, dword [edi + eax + 8]
add eax, 0x24
mov ebx, dword [eax]
cmp ebx, dword [esi + 0x16e8]
jg 0x428ebb
mov ebx, dword [eax + 4]
cmp ebx, dword [esi + 0x16f0]
jg 0x428ebb
mov ebx, dword [eax + 8]
cmp ebx, dword [esi + 0x16e4]
jl 0x428ebb
mov eax, dword [eax + 0xc]
mov ebx, dword [esi + 0x16ec]
cmp eax, ebx
jl 0x428ebb
mov al, 1
jmp 0x428ebd
xor al, al
test al, al
sete al
test al, al
jne 0x428ef5
mov eax, dword [edx + 0x10]
mov ebx, 6
cmp eax, ebx
je 0x428ef5
mov edx, dword [esp + 0xe0]
push edx
push ecx
mov ecx, esi
call fcn.0042a590
mov eax, dword [esi + 0x1680]
cmp dword [edi + eax + 0x10], ebx
jne 0x428f41
mov ebp, dword [esp + 0xdc]
mov eax, dword [esi + 0x1680]
lea edx, [ebp + ebp*2]
mov edi, dword [eax + edx*8 + 8]
lea eax, [eax + edx*8]
mov edx, dword [esi + 0x16e8]
mov ecx, dword [edi + 0x24]
cmp ecx, edx
jg 0x428f66
mov edx, dword [edi + 0x28]
mov ecx, dword [esi + 0x16f0]
cmp edx, ecx
jg 0x428f66
mov ecx, dword [edi + 0x2c]
mov edx, dword [esi + 0x16e4]
cmp ecx, edx
jl 0x428f66
mov edx, dword [edi + 0x30]
mov ecx, dword [esi + 0x16ec]
cmp edx, ecx
jl 0x428f66
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x428f66
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
sub ecx, eax
sar ecx, 2
push ecx
push eax
lea ecx, [esp + 0x28]
call fcn.00414610
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc8
ret 0xc
push 0
push 0x20
push 0x20
lea ecx, [esp + 0x54]
mov dword [esp + 0x20], 0
call fcn.004d8f90
mov edx, eax
mov ecx, dword [edx]
mov eax, dword [edx + 4]
mov edx, dword [edx + 8]
push edx
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
push eax
mov eax, ecx
cdq
and edx, 0x1f
lea ecx, [esp + 0x5c]
add eax, edx
sar eax, 5
push eax
call fcn.004d8f90
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
lea eax, [ecx + eax*2]
mov dword [esp + 0x44], edx
mov edi, dword [edi + eax*4 + 4]
test edi, edi
je 0x428ff1
mov edx, dword [edi]
lea eax, [esp + 0x3c]
push 0
push eax
mov ecx, edi
call dword [edx + 0x94]
cmp dword [eax], 2
jg 0x428fed
mov edx, dword [edi]
lea eax, [esp + 0x3c]
push 0
push eax
mov ecx, edi
call dword [edx + 0x94]
cmp dword [eax + 4], 2
jle 0x428ff1
mov dword [esp + 0x14], edi
mov ebp, dword [esp + 0xdc]
mov eax, dword [esp + 0xe0]
cmp ebp, eax
jge 0x429b83
mov edx, dword [esi + 0x1680]
lea ecx, [ebp + ebp*2]
xor bl, bl
lea eax, [edx + ecx*8]
mov byte [esp + 0x34], bl
mov dword [esp + 0x24], eax
mov byte [esp + 0x28], bl
mov dword [eax + 0x10], 2
mov ecx, dword [esi + 0x16cc]
mov edx, dword [esp + 0xdc]
mov edi, dword [ecx + 0x2c]
mov eax, edx
sub eax, edi
test eax, eax
jle 0x429058
mov ecx, dword [esi + 0x1680]
lea eax, [eax + eax*2]
mov edi, dword [ecx + eax*8 + 0xc]
test edi, edi
je 0x429058
mov bl, 1
mov byte [esp + 0x34], bl
lea eax, [edx - 1]
test eax, eax
jle 0x429082
mov ecx, dword [esi + 0x1680]
lea eax, [eax + eax*2]
lea edx, [edx + edx*2]
mov edi, dword [ecx + eax*8]
lea eax, [ecx + eax*8]
cmp edi, dword [ecx + edx*8]
jne 0x429082
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x429082
mov byte [esp + 0x28], 1
mov al, byte [esi + 0x180c]
test al, al
je 0x4291b2
mov eax, dword [esi + 0x1804]
mov ecx, dword [esi + 0x1808]
lea edi, [esi + 0x1800]
cmp eax, ecx
je 0x4290b8
test eax, eax
je 0x4290b2
mov ecx, dword [0x5fcb3c]
mov dword [eax], ecx
add dword [edi + 4], 4
jmp 0x4290c7
push 1
push 0x5fcb3c
push eax
mov ecx, edi
call fcn.0043bda0
test bl, bl
je 0x4290f6
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4290e7
test eax, eax
je 0x4290e1
mov edx, dword [0x5fcb44]
mov dword [eax], edx
add dword [edi + 4], 4
jmp 0x4290f6
push 1
push 0x5fcb44
push eax
mov ecx, edi
call fcn.0043bda0
mov al, byte [esp + 0x28]
test al, al
je 0x429129
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x42911a
test eax, eax
je 0x429114
mov ecx, dword [0x5fcb48]
mov dword [eax], ecx
add dword [edi + 4], 4
jmp 0x429129
push 1
push 0x5fcb48
push eax
mov ecx, edi
call fcn.0043bda0
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x429146
test eax, eax
je 0x429140
mov edx, dword [esp + 0xdc]
mov dword [eax], edx
add dword [edi + 4], 4
jmp 0x429158
lea ecx, [esp + 0xdc]
push 1
push ecx
push eax
mov ecx, edi
call fcn.0043bda0
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x429174
test eax, eax
je 0x42916e
mov edx, dword [0x5fcb4c]
mov dword [eax], edx
add dword [edi + 4], 4
jmp 0x429183
push 1
push 0x5fcb4c
push eax
mov ecx, edi
call fcn.0043bda0
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4291a0
test eax, eax
je 0x42919a
mov ecx, dword [esp + 0xdc]
mov dword [eax], ecx
add dword [edi + 4], 4
jmp 0x4291b2
lea edx, [esp + 0xdc]
push 1
push edx
push eax
mov ecx, edi
call fcn.0043bda0
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
push eax
mov edx, dword [edi + 0xc]
mov eax, dword [esi + 0x16b0]
push ecx
mov ecx, dword [esi + 0x16ac]
push edx
mov edx, dword [esi + 0x16a8]
push 0
push eax
mov eax, dword [esi + 0x16c8]
push ecx
mov ecx, dword [edi + 8]
push edx
push eax
call fcn.0042a510
mov eax, dword [edi + 8]
test byte [eax + 0x83], 8
je 0x429222
mov ecx, dword [eax]
mov eax, dword [ecx]
cmp eax, ecx
je 0x429222
mov edx, dword [eax + 8]
mov ebx, dword [edx + 0xbc]
test ebx, ebx
jne 0x429213
mov eax, dword [eax]
cmp eax, ecx
jne 0x4291fe
jmp 0x429222
mov eax, dword [eax + 8]
push 1
push 0
push eax
mov ecx, esi
call fcn.00435840
mov eax, dword [esi + 0x16b4]
cmp eax, 0xffffffff
je 0x4292cf
mov ecx, dword [edi + 8]
cdq
sub eax, edx
sar eax, 1
mov eax, dword [ecx + eax*4 + 0x14]
test eax, eax
mov dword [esp + 0x10], eax
je 0x4292cf
mov ecx, dword [eax + 0x130]
test ecx, ecx
jne 0x4292cf
mov edx, dword [esi + 0x16d8]
mov ecx, dword [esi + 0x16d4]
push edx
push ecx
push eax
mov ecx, esi
call fcn.00428bc0
test al, al
je 0x429277
mov edx, dword [esp + 0x10]
mov dword [esi + 0x16d0], edx
lea eax, [esp + 0x10]
lea ecx, [esi + 0x1684]
push eax
call fcn.004fd7a0
mov ecx, dword [esp + 0x10]
mov al, byte [ecx + 0x144]
test al, al
je 0x42929d
mov eax, dword [ecx + 0x134]
jmp 0x42929f
xor eax, eax
push eax
mov eax, dword [esi + 0x16b0]
mov edx, dword [ecx]
push eax
mov eax, dword [esi + 0x16ac]
push eax
mov eax, dword [esi + 0x16a8]
push eax
mov eax, dword [esi + 0x16c8]
push eax
call dword [edx + 0x58]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x130], 1
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov edx, dword [edi + 8]
cmp ebp, eax
mov dword [esp + 0x38], edx
je 0x4292fd
test ebp, ebp
je 0x4292f4
mov eax, dword [esp + 0xdc]
mov dword [ebp], eax
mov ebp, dword [esp + 0x1c]
add ebp, 4
mov dword [esp + 0x1c], ebp
jmp 0x429315
lea ecx, [esp + 0xdc]
push 1
push ecx
push ebp
lea ecx, [esp + 0x24]
call fcn.0043bda0
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe0]
lea eax, [edi + 1]
cmp eax, ecx
mov dword [esp + 0x30], eax
jge 0x4296e0
jmp 0x42933b
mov edi, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe4]
lea edx, [eax + eax*2]
mov eax, dword [esi + 0x1680]
lea ebx, [eax + edx*8]
mov eax, dword [eax + edx*8 + 4]
cmp eax, ecx
jg 0x4296e0
mov eax, dword [ebx + 8]
mov cl, byte [esi + 0x16b4]
mov dword [esp + 0x10], eax
mov byte [esp + 0x34], 0
mov dl, byte [eax + 0x82]
mov eax, dword [esp + 0x24]
shr dl, cl
mov byte [esp + 0x28], 0
and dl, 3
cmp dl, 1
mov edx, dword [eax]
mov eax, dword [ebx]
setbe cl
cmp edx, eax
mov edx, dword [ebx + 0x10]
sete al
and cl, al
mov eax, dword [esi + 0x16b4]
test edx, edx
sete dl
and cl, dl
and cl, 1
cmp eax, 0xffffffff
jne 0x4293ad
xor eax, eax
jmp 0x4293ba
cdq
sub eax, edx
mov edx, dword [esp + 0x10]
sar eax, 1
mov eax, dword [edx + eax*4 + 0x14]
test eax, eax
sete al
and cl, al
mov eax, dword [esi + 0x16bc]
cmp eax, 0xffffffff
jne 0x4293d0
xor eax, eax
jmp 0x4293dd
cdq
sub eax, edx
mov edx, dword [esp + 0x38]
sar eax, 1
mov eax, dword [edx + eax*4 + 0x14]
test eax, eax
sete al
and cl, al
je 0x4296e0
push 0
push 0x20
push 0x20
lea ecx, [esp + 0x48]
call fcn.004d8f90
mov edx, eax
mov ecx, dword [edx]
mov eax, dword [edx + 4]
mov edx, dword [edx + 8]
push edx
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
push eax
mov eax, ecx
cdq
and edx, 0x1f
lea ecx, [esp + 0x5c]
add eax, edx
sar eax, 5
push eax
call fcn.004d8f90
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x50], edx
mov edi, dword [ecx + eax*4 + 4]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x42944e
cmp eax, edi
jne 0x429713
jmp 0x42948a
test edi, edi
je 0x42948a
mov edx, dword [edi]
lea eax, [esp + 0xc0]
push 0
push eax
mov ecx, edi
call dword [edx + 0x94]
cmp dword [eax], 2
jg 0x429713
mov edx, dword [edi]
lea eax, [esp + 0x78]
push 0
push eax
mov ecx, edi
call dword [edx + 0x94]
cmp dword [eax + 4], 2
jg 0x429713
mov ecx, dword [ebx + 8]
mov edx, dword [esi + 0x16e8]
cmp dword [ecx + 0x24], edx
jg 0x429720
mov ecx, dword [esi + 0x16cc]
mov edi, dword [esp + 0x30]
mov eax, edi
sub eax, dword [ecx + 0x2c]
test eax, eax
jle 0x429503
mov ecx, dword [esi + 0x1680]
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*8]
mov eax, dword [ecx + 0x10]
test eax, eax
jne 0x4294f7
mov eax, dword [ecx + 8]
add eax, 0x24
cmp dword [eax], edx
jg 0x4294f7
mov edx, dword [eax + 4]
mov ebp, dword [esi + 0x16f0]
cmp edx, ebp
jg 0x4294f7
mov edx, dword [eax + 8]
mov ebp, dword [esi + 0x16e4]
cmp edx, ebp
jl 0x4294f7
mov eax, dword [eax + 0xc]
mov edx, dword [esi + 0x16ec]
cmp eax, edx
jge 0x429713
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x429503
mov byte [esp + 0x34], 1
lea eax, [edi - 1]
test eax, eax
jle 0x42952e
mov ecx, dword [esi + 0x1680]
lea edx, [eax + eax*2]
lea eax, [ecx + edx*8]
lea edx, [edi + edi*2]
mov edi, dword [eax]
mov ebp, dword [ecx + edx*8]
cmp edi, ebp
jne 0x42952e
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x42952e
mov byte [esp + 0x28], 1
mov al, byte [esi + 0x180c]
test al, al
je 0x42960d
mov eax, dword [esi + 0x1804]
mov ecx, dword [esi + 0x1808]
lea edi, [esi + 0x1800]
cmp eax, ecx
je 0x42956d
test eax, eax
je 0x42955e
mov ecx, dword [0x5fcb3c]
mov dword [eax], ecx
mov eax, dword [edi + 4]
mov ebp, 4
add eax, ebp
mov dword [edi + 4], eax
jmp 0x429581
push 1
push 0x5fcb3c
push eax
mov ecx, edi
call fcn.0043bda0
mov ebp, 4
mov al, byte [esp + 0x34]
test al, al
je 0x4295b3
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4295a4
test eax, eax
je 0x42959f
mov edx, dword [0x5fcb44]
mov dword [eax], edx
add dword [edi + 4], ebp
jmp 0x4295b3
push 1
push 0x5fcb44
push eax
mov ecx, edi
call fcn.0043bda0
mov al, byte [esp + 0x28]
test al, al
je 0x4295e5
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4295d6
test eax, eax
je 0x4295d1
mov ecx, dword [0x5fcb48]
mov dword [eax], ecx
add dword [edi + 4], ebp
jmp 0x4295e5
push 1
push 0x5fcb48
push eax
mov ecx, edi
call fcn.0043bda0
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4295fe
test eax, eax
je 0x4295f9
mov edx, dword [esp + 0x30]
mov dword [eax], edx
add dword [edi + 4], ebp
jmp 0x42960d
lea ecx, [esp + 0x30]
push 1
push ecx
push eax
mov ecx, edi
call fcn.0043bda0
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ecx, dword [ebx + 0xc]
push edx
mov dword [ebx + 0x10], 2
mov edx, dword [esi + 0x16b0]
push eax
mov eax, dword [esi + 0x16ac]
push ecx
mov ecx, dword [esi + 0x16a8]
push 0
push edx
mov edx, dword [esi + 0x16c8]
push eax
push ecx
mov ecx, dword [ebx + 8]
push edx
call fcn.0042a510
mov eax, dword [ebx + 8]
test byte [eax + 0x83], 8
je 0x429680
mov ecx, dword [eax]
mov eax, dword [ecx]
cmp eax, ecx
je 0x429680
mov edx, dword [eax + 8]
mov edi, dword [edx + 0xbc]
test edi, edi
jne 0x429671
mov eax, dword [eax]
cmp eax, ecx
jne 0x42965c
jmp 0x429680
mov eax, dword [eax + 8]
push 1
push 0
push eax
mov ecx, esi
call fcn.00435840
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
cmp ebp, eax
je 0x4296a4
test ebp, ebp
je 0x42969b
mov ecx, dword [esp + 0x30]
mov dword [ebp], ecx
mov ebp, dword [esp + 0x1c]
add ebp, 4
mov dword [esp + 0x1c], ebp
jmp 0x4296b9
lea edx, [esp + 0x30]
push 1
push edx
push ebp
lea ecx, [esp + 0x24]
call fcn.0043bda0
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xe0]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
inc eax
cmp eax, ecx
mov dword [esp + 0x30], eax
jl 0x429334
mov edi, dword [esp + 0xdc]
cmp dword [esp + 0x18], ebp
je 0x42972b
mov eax, dword [ebp - 4]
mov edx, dword [esi + 0x1680]
lea ecx, [eax + eax*2]
lea eax, [edx + ecx*8 + 4]
mov ecx, dword [esp + 0xe4]
cmp ecx, dword [eax]
jge 0x429708
lea eax, [esp + 0xe4]
mov edx, dword [eax]
mov dword [esp + 0xe4], edx
jmp 0x42972b
mov edi, dword [esp + 0xdc]
mov ebp, dword [esp + 0x1c]
jmp 0x4296e0
mov edi, dword [esp + 0xdc]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0xe0]
mov edx, edi
cmp edi, eax
jge 0x429b87
mov ecx, dword [esi + 0x1680]
mov ebx, dword [esp + 0x24]
lea eax, [edi + edi*2]
mov ebp, dword [ecx + eax*8]
lea eax, [ecx + eax*8]
cmp ebp, dword [ebx]
jle 0x42975d
mov eax, dword [eax + 4]
mov ebp, dword [ebx + 4]
cmp eax, ebp
jge 0x429776
mov eax, dword [esp + 0xe0]
inc edi
cmp edi, eax
mov dword [esp + 0xdc], edi
jge 0x429b83
jmp 0x429746
cmp edi, dword [esp + 0xe0]
jge 0x429b83
lea eax, [edi + edi*2]
mov ebx, dword [ecx + eax*8 + 8]
test ebx, ebx
je 0x42979f
mov eax, dword [ebx + 0x28]
mov edi, dword [esi + 0x16f0]
cmp eax, edi
jg 0x429b83
lea edx, [edx + edx*2]
mov edi, dword [ecx + edx*8 + 8]
mov cl, byte [esi + 0x16c0]
mov al, byte [edi + 0x82]
shr al, cl
and al, 3
cmp al, 1
mov eax, dword [esi + 0x16c0]
setbe cl
and cl, 1
cmp eax, 0xffffffff
jne 0x4297cd
xor edi, edi
jmp 0x4297d6
cdq
sub eax, edx
sar eax, 1
mov edi, dword [edi + eax*4 + 0x14]
mov eax, dword [esi + 0x16b8]
test edi, edi
sete dl
and cl, dl
cmp eax, 0xffffffff
jne 0x4297ec
xor eax, eax
jmp 0x4297f5
cdq
sub eax, edx
sar eax, 1
mov eax, dword [ebx + eax*4 + 0x14]
test eax, eax
sete al
test cl, al
je 0x429b83
push 0
push 0x20
push 0x20
lea ecx, [esp + 0xb4]
call fcn.004d8f90
mov edx, eax
mov ecx, dword [edx]
mov eax, dword [edx + 4]
mov edx, dword [edx + 8]
push edx
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
push eax
mov eax, ecx
cdq
and edx, 0x1f
lea ecx, [esp + 0x98]
add eax, edx
sar eax, 5
push eax
call fcn.004d8f90
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
lea eax, [ecx + eax*2]
mov dword [esp + 0x50], edx
mov edi, dword [ebx + eax*4 + 4]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x429870
test edi, edi
je 0x429b83
cmp eax, edi
jne 0x429b83
jmp 0x4298a9
test edi, edi
je 0x4298a9
mov edx, dword [edi]
lea eax, [esp + 0x60]
push 0
push eax
mov ecx, edi
call dword [edx + 0x94]
cmp dword [eax], 2
jg 0x429b83
mov edx, dword [edi]
lea eax, [esp + 0x6c]
push 0
push eax
mov ecx, edi
call dword [edx + 0x94]
cmp dword [eax + 4], 2
jg 0x429b83
mov ebp, dword [esp + 0xdc]
mov eax, dword [esp + 0xe0]
lea ecx, [ebp - 1]
cmp ebp, eax
mov dword [esp + 0x10], ecx
jge 0x429b83
mov edx, dword [esi + 0x1680]
lea eax, [ebp + ebp*2]
mov ecx, dword [edx + eax*8 + 0x10]
lea eax, [edx + eax*8]
test ecx, ecx
jne 0x429b83
mov eax, dword [eax + 8]
mov ebx, dword [esi + 0x16e8]
add eax, 0x24
cmp dword [eax], ebx
jg 0x429b76
mov ecx, dword [esi + 0x16f0]
mov edi, dword [eax + 4]
cmp edi, ecx
jg 0x429b76
mov ecx, dword [esi + 0x16e4]
mov edi, dword [eax + 8]
cmp edi, ecx
jl 0x429b76
mov ecx, dword [esi + 0x16ec]
mov edi, dword [eax + 0xc]
cmp edi, ecx
jl 0x429b76
mov eax, dword [esi + 0x16cc]
mov ecx, ebp
sub ecx, dword [eax + 0x2c]
test ecx, ecx
jle 0x429998
lea edi, [ecx + ecx*2]
shl edi, 3
mov eax, dword [edx + edi + 8]
add eax, 0x24
cmp dword [eax], ebx
jg 0x429998
mov ebx, dword [esi + 0x16f0]
cmp dword [eax + 4], ebx
jg 0x429998
mov ebx, dword [esi + 0x16e4]
cmp dword [eax + 8], ebx
jl 0x429998
mov ebx, dword [esi + 0x16ec]
cmp dword [eax + 0xc], ebx
jl 0x429998
mov eax, dword [edx + edi + 0x10]
test eax, eax
jne 0x429998
mov edx, dword [esp + 0xe0]
push edx
push ecx
mov ecx, esi
call fcn.0042a590
mov edx, dword [esi + 0x1680]
mov eax, dword [edx + edi + 0x10]
test eax, eax
je 0x429b83
mov ebp, dword [esp + 0xdc]
mov eax, dword [esp + 0x10]
test eax, eax
jl 0x429b76
lea eax, [eax + eax*2]
lea ecx, [ebp + ebp*2]
shl eax, 3
mov edi, dword [edx + ecx*8]
mov dword [esp + 0x24], eax
mov eax, dword [edx + eax]
cmp eax, edi
jne 0x429b76
mov ecx, dword [esp + 0x24]
mov edi, dword [edx + ecx + 8]
mov ecx, dword [esi + 0x16e8]
mov eax, dword [edi + 0x24]
cmp eax, ecx
jg 0x429a00
mov ecx, dword [edi + 0x28]
mov eax, dword [esi + 0x16f0]
cmp ecx, eax
jg 0x429a00
mov eax, dword [edi + 0x2c]
mov ecx, dword [esi + 0x16e4]
cmp eax, ecx
jl 0x429a00
mov ecx, dword [edi + 0x30]
mov eax, dword [esi + 0x16ec]
cmp ecx, eax
jl 0x429a00
mov al, 1
jmp 0x429a02
xor al, al
test al, al
sete al
test al, al
jne 0x429b76
mov eax, dword [esp + 0x24]
cmp dword [edx + eax + 0x10], 6
je 0x429b76
push 0
push 0x20
push 0x20
lea ecx, [esp + 0x90]
mov bl, 1
call fcn.004d8f90
mov edx, eax
mov ecx, dword [edx]
mov eax, dword [edx + 4]
mov edx, dword [edx + 8]
push edx
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
push eax
mov eax, ecx
cdq
and edx, 0x1f
lea ecx, [esp + 0xa4]
add eax, edx
sar eax, 5
push eax
call fcn.004d8f90
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
lea eax, [ecx + eax*2]
mov dword [esp + 0x50], edx
mov edi, dword [edi + eax*4 + 4]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x429a86
test edi, edi
je 0x429abd
cmp eax, edi
je 0x429abf
jmp 0x429abd
test edi, edi
je 0x429abf
mov edx, dword [edi]
lea eax, [esp + 0xb4]
push 0
push eax
mov ecx, edi
call dword [edx + 0x94]
cmp dword [eax], 2
jg 0x429abd
mov edx, dword [edi]
lea eax, [esp + 0xcc]
push 0
push eax
mov ecx, edi
call dword [edx + 0x94]
cmp dword [eax + 4], 2
jle 0x429abf
xor bl, bl
mov ebp, dword [esp + 0xdc]
mov eax, dword [esi + 0x1680]
lea ecx, [ebp + ebp*2]
mov edi, dword [eax + ecx*8 + 8]
mov cl, byte [esi + 0x16b4]
mov dl, byte [edi + 0x82]
shr dl, cl
and dl, 3
cmp dl, 1
setbe al
and bl, al
mov eax, dword [esi + 0x16b4]
cmp eax, 0xffffffff
jne 0x429afc
xor edi, edi
jmp 0x429b05
cdq
sub eax, edx
sar eax, 1
mov edi, dword [edi + eax*4 + 0x14]
mov eax, dword [esi + 0x16bc]
test edi, edi
sete cl
and bl, cl
cmp eax, 0xffffffff
jne 0x429b1b
xor eax, eax
jmp 0x429b34
mov ecx, dword [esp + 0x24]
cdq
sub eax, edx
mov edx, eax
mov eax, dword [esi + 0x1680]
sar edx, 1
mov eax, dword [eax + ecx + 8]
mov eax, dword [eax + edx*4 + 0x14]
test eax, eax
sete cl
test bl, cl
je 0x429b4a
dec ebp
mov dword [esp + 0xdc], ebp
jmp 0x4298b0
mov edx, dword [esp + 0xe0]
mov edi, dword [esp + 0x10]
push edx
push edi
mov ecx, esi
call fcn.0042a590
mov ecx, dword [esi + 0x1680]
lea eax, [edi + edi*2]
mov edx, dword [ecx + eax*8 + 0x10]
test edx, edx
je 0x429b83
mov ebp, dword [esp + 0xdc]
cmp ebp, dword [esp + 0xe0]
jl 0x429007
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov al, byte [0x6234ec]
sub ebp, edx
sar ebp, 2
test al, 1
mov dword [esp + 0x24], ebp
jne 0x429bcd
or al, 1
lea edx, [esp + 0x2f]
mov byte [0x6234ec], al
xor eax, eax
push eax
push edx
mov ecx, 0x621cb8
mov dword [0x621cb0], eax
mov dword [0x621cb4], eax
call fcn.0046fe80
push 0x42a550
call fcn.005f08c4
add esp, 4
mov eax, dword [0x621cb0]
push eax
mov eax, dword [0x621cb4]
push eax
push eax
call fcn.004187d0
add esp, 0xc
xor ecx, ecx
test ebp, ebp
mov dword [0x621cb4], eax
mov dword [0x6234e8], ecx
jbe 0x42a1b1
mov edx, dword [esp + 0x18]
mov ebx, 1
mov eax, dword [edx + ecx*4]
mov edx, dword [esi + 0x1680]
mov dword [0x6234e4], ecx
lea eax, [eax + eax*2]
lea ebp, [edx + eax*8]
mov eax, dword [esp + 0x24]
cmp ecx, eax
jae 0x429db2
mov eax, dword [esp + 0x18]
mov edx, dword [0x6234e4]
mov eax, dword [eax + edx*4]
mov edx, dword [esi + 0x1680]
lea eax, [eax + eax*2]
lea edi, [edx + eax*8]
mov edx, dword [ebp]
mov eax, dword [edi]
cmp eax, edx
jne 0x429db2
mov eax, dword [esi + 0x16b8]
cmp eax, 0xffffffff
je 0x429d27
cdq
sub eax, edx
mov edx, dword [edi + 8]
sar eax, 1
mov eax, dword [edx + eax*4 + 0x14]
test eax, eax
mov dword [esp + 0x14], eax
je 0x429d27
mov edx, dword [eax + 0x130]
test edx, edx
jne 0x429d27
mov ecx, dword [esi + 0x16d8]
mov edx, dword [esi + 0x16d4]
push ecx
push edx
push eax
mov ecx, esi
call fcn.00428bc0
test al, al
je 0x429ca0
mov eax, dword [esp + 0x14]
mov dword [esi + 0x16d0], eax
mov eax, dword [esi + 0x1688]
mov ecx, dword [esi + 0x168c]
lea edi, [esi + 0x1684]
cmp eax, ecx
je 0x429ccf
lea ecx, [esp + 0x14]
push ecx
push eax
call fcn.00414a00
mov eax, dword [edi + 4]
add esp, 8
add eax, 4
mov dword [edi + 4], eax
jmp 0x429cdd
lea edx, [esp + 0x14]
push ebx
push edx
push eax
mov ecx, edi
call fcn.00485120
mov ecx, dword [esp + 0x14]
mov al, byte [ecx + 0x144]
test al, al
je 0x429cf3
mov eax, dword [ecx + 0x134]
jmp 0x429cf5
xor eax, eax
push eax
mov eax, dword [esi + 0x16b0]
mov edx, dword [ecx]
push eax
mov eax, dword [esi + 0x16ac]
push eax
mov eax, dword [esi + 0x16a8]
push eax
mov eax, dword [esi + 0x16c8]
push eax
call dword [edx + 0x58]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x130], ebx
mov ecx, dword [0x6234e8]
mov al, byte [esi + 0x180c]
test al, al
je 0x429d9b
mov eax, dword [esi + 0x1804]
mov ecx, dword [esi + 0x1808]
lea edi, [esi + 0x1800]
cmp eax, ecx
je 0x429d59
test eax, eax
je 0x429d53
mov edx, dword [0x5fcb50]
mov dword [eax], edx
add dword [edi + 4], 4
jmp 0x429d67
push ebx
push 0x5fcb50
push eax
mov ecx, edi
call fcn.0043bda0
mov eax, dword [0x6234e4]
mov ecx, dword [esp + 0x18]
mov edx, dword [edi + 8]
lea ecx, [ecx + eax*4]
mov eax, dword [edi + 4]
cmp eax, edx
je 0x429d8b
test eax, eax
je 0x429d85
mov edx, dword [ecx]
mov dword [eax], edx
add dword [edi + 4], 4
jmp 0x429d95
push ebx
push ecx
push eax
mov ecx, edi
call fcn.0043bda0
mov ecx, dword [0x6234e8]
mov eax, dword [0x6234e4]
mov edx, dword [esp + 0x24]
inc eax
cmp eax, edx
mov dword [0x6234e4], eax
jb 0x429c21
mov edx, dword [0x6234e4]
mov eax, ecx
cmp ecx, edx
mov dword [0x6234d4], eax
jae 0x42a1a7
mov ebp, 1
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esi + 0x1680]
lea edx, [eax + eax*2]
lea ebx, [ecx + edx*8]
mov edx, dword [esp + 0xe0]
push edx
push eax
mov ecx, esi
call fcn.004313e0
mov al, byte [esi + 0x180c]
test al, al
je 0x429e5c
mov eax, dword [esi + 0x1804]
mov ecx, dword [esi + 0x1808]
lea edi, [esi + 0x1800]
cmp eax, ecx
je 0x429e21
test eax, eax
je 0x429e1b
mov ecx, dword [0x5fcb40]
mov dword [eax], ecx
add dword [edi + 4], 4
jmp 0x429e2f
push ebp
push 0x5fcb40
push eax
mov ecx, edi
call fcn.0043bda0
mov edx, dword [0x6234d4]
mov eax, dword [esp + 0x18]
lea ecx, [eax + edx*4]
mov eax, dword [edi + 4]
cmp eax, dword [edi + 8]
je 0x429e52
test eax, eax
je 0x429e4c
mov ecx, dword [ecx]
mov dword [eax], ecx
add dword [edi + 4], 4
jmp 0x429e5c
push ebp
push ecx
push eax
mov ecx, edi
call fcn.0043bda0
mov eax, dword [0x6234d4]
mov ecx, dword [0x6234e4]
lea edx, [eax + 1]
cmp edx, ecx
jne 0x429eae
mov ecx, dword [esp + 0x18]
mov edx, dword [0x621cb8]
lea eax, [ecx + eax*4]
mov ecx, dword [0x621cb4]
cmp ecx, edx
je 0x429ea1
test ecx, ecx
je 0x429e93
mov edx, dword [eax]
mov dword [ecx], edx
mov ecx, dword [0x621cb4]
add ecx, 4
mov dword [0x621cb4], ecx
jmp 0x429ff6
push ebp
push eax
push ecx
mov ecx, 0x621cb0
jmp 0x429ff1
mov eax, dword [esi + 0x16bc]
cmp eax, 0xffffffff
je 0x429f88
mov ecx, dword [ebx + 8]
cdq
sub eax, edx
sar eax, 1
mov eax, dword [ecx + eax*4 + 0x14]
test eax, eax
mov dword [esp + 0x14], eax
je 0x429f88
mov ecx, dword [eax + 0x130]
test ecx, ecx
jne 0x429f88
mov edx, dword [esi + 0x16d8]
mov ecx, dword [esi + 0x16d4]
push edx
push ecx
push eax
mov ecx, esi
call fcn.00428bc0
test al, al
je 0x429f07
mov edx, dword [esp + 0x14]
mov dword [esi + 0x16d0], edx
mov eax, dword [esi + 0x1688]
mov ecx, dword [esi + 0x168c]
lea edi, [esi + 0x1684]
cmp eax, ecx
je 0x429f36
lea ecx, [esp + 0x14]
push ecx
push eax
call fcn.00414a00
mov eax, dword [edi + 4]
add esp, 8
add eax, 4
mov dword [edi + 4], eax
jmp 0x429f44
lea edx, [esp + 0x14]
push ebp
push edx
push eax
mov ecx, edi
call fcn.00485120
mov ecx, dword [esp + 0x14]
mov al, byte [ecx + 0x144]
test al, al
je 0x429f5a
mov eax, dword [ecx + 0x134]
jmp 0x429f5c
xor eax, eax
push eax
mov eax, dword [esi + 0x16b0]
mov edx, dword [ecx]
push eax
mov eax, dword [esi + 0x16ac]
push eax
mov eax, dword [esi + 0x16a8]
push eax
mov eax, dword [esi + 0x16c8]
push eax
call dword [edx + 0x58]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x130], ebp
mov al, byte [esi + 0x180c]
test al, al
je 0x429ff6
mov eax, dword [esi + 0x1804]
mov ecx, dword [esi + 0x1808]
lea edi, [esi + 0x1800]
cmp eax, ecx
je 0x429fba
test eax, eax
je 0x429fb4
mov edx, dword [0x5fcb54]
mov dword [eax], edx
add dword [edi + 4], 4
jmp 0x429fc8
push ebp
push 0x5fcb54
push eax
mov ecx, edi
call fcn.0043bda0
mov eax, dword [0x6234d4]
mov ecx, dword [esp + 0x18]
mov edx, dword [edi + 8]
lea ecx, [ecx + eax*4]
mov eax, dword [edi + 4]
cmp eax, edx
je 0x429fec
test eax, eax
je 0x429fe6
mov edx, dword [ecx]
mov dword [eax], edx
add dword [edi + 4], 4
jmp 0x429ff6
push ebp
push ecx
push eax
mov ecx, edi
call fcn.0043bda0
mov eax, dword [0x6234d4]
mov edx, dword [0x6234e4]
inc eax
cmp eax, edx
mov dword [0x6234d4], eax
jb 0x429dcc
mov ecx, dword [0x6234e8]
cmp ecx, edx
jae 0x42a1a7
mov ebx, 4
mov eax, dword [esp + 0x18]
mov edx, dword [esi + 0x1680]
mov eax, dword [eax + ecx*4]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x16c0]
cmp eax, 0xffffffff
lea ebp, [edx + ecx*8]
je 0x42a118
mov ecx, dword [ebp + 8]
cdq
sub eax, edx
sar eax, 1
mov ecx, dword [ecx + eax*4 + 0x14]
test ecx, ecx
mov dword [esp + 0x10], ecx
je 0x42a118
mov eax, dword [ecx + 0x130]
test eax, eax
jne 0x42a118
mov edx, dword [ecx + 0x128]
mov ebx, dword [esi + 0x16d8]
mov edi, dword [esi + 0x16d4]
mov eax, dword [edx + 0x70]
mov edx, dword [esi + 0x16dc]
add eax, edx
mov dl, byte [ecx + 0x13e]
test dl, dl
je 0x42a0bb
mov edx, dword [esi + 0x16cc]
push eax
add ecx, 0x74
mov edx, dword [edx + 0xc]
push edx
push ebx
cdq
sub eax, edx
sar eax, 1
sub edi, eax
push edi
call fcn.0042a3b0
test al, al
je 0x42a0bb
mov eax, dword [esp + 0x10]
mov dword [esi + 0x16d0], eax
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esi + 0x1684]
call fcn.004fd7a0
mov ecx, dword [esp + 0x10]
mov al, byte [ecx + 0x144]
test al, al
je 0x42a0e1
mov eax, dword [ecx + 0x134]
jmp 0x42a0e3
xor eax, eax
push eax
mov eax, dword [esi + 0x16b0]
mov edx, dword [ecx]
push eax
mov eax, dword [esi + 0x16ac]
push eax
mov eax, dword [esi + 0x16a8]
push eax
mov eax, dword [esi + 0x16c8]
push eax
call dword [edx + 0x58]
mov ecx, dword [esp + 0x10]
mov ebx, 4
mov dword [ecx + 0x130], 1
mov al, byte [esi + 0x180c]
test al, al
je 0x42a186
mov eax, dword [esi + 0x1804]
mov ecx, dword [esi + 0x1808]
lea edi, [esi + 0x1800]
cmp eax, ecx
je 0x42a149
test eax, eax
je 0x42a144
mov edx, dword [0x5fcb58]
mov dword [eax], edx
add dword [edi + 4], ebx
jmp 0x42a158
push 1
push 0x5fcb58
push eax
mov ecx, edi
call fcn.0043bda0
mov eax, dword [0x6234e8]
mov ecx, dword [esp + 0x18]
mov edx, dword [edi + 8]
lea ecx, [ecx + eax*4]
mov eax, dword [edi + 4]
cmp eax, edx
je 0x42a17b
test eax, eax
je 0x42a176
mov edx, dword [ecx]
mov dword [eax], edx
add dword [edi + 4], ebx
jmp 0x42a186
push 1
push ecx
push eax
mov ecx, edi
call fcn.0043bda0
mov dword [ebp + 0x10], 6
mov ecx, dword [0x6234e8]
mov eax, dword [0x6234e4]
inc ecx
cmp ecx, eax
mov dword [0x6234e8], ecx
jb 0x42a022
cmp ecx, dword [esp + 0x24]
jb 0x429bf7
mov eax, dword [0x621cb4]
mov edx, dword [0x621cb0]
sub eax, edx
xor ecx, ecx
sar eax, 2
mov dword [0x6234e8], ecx
je 0x42a354
mov ebp, 4
mov eax, dword [esi + 0x16bc]
cmp eax, 0xffffffff
je 0x42a2bf
mov ecx, dword [edx + ecx*4]
mov edi, dword [esi + 0x1680]
cdq
lea ecx, [ecx + ecx*2]
sub eax, edx
sar eax, 1
mov edx, dword [edi + ecx*8 + 8]
mov ecx, dword [edx + eax*4 + 0x14]
test ecx, ecx
mov dword [esp + 0x10], ecx
je 0x42a2bf
mov eax, dword [ecx + 0x130]
test eax, eax
jne 0x42a2bf
mov eax, dword [ecx + 0x128]
mov edx, dword [esi + 0x16dc]
mov ebx, dword [esi + 0x16d8]
mov edi, dword [esi + 0x16d4]
mov eax, dword [eax + 0x70]
add eax, edx
mov dl, byte [ecx + 0x13e]
test dl, dl
je 0x42a267
mov edx, dword [esi + 0x16cc]
push eax
add ecx, 0x74
mov edx, dword [edx + 0xc]
push edx
push ebx
cdq
sub eax, edx
sar eax, 1
sub edi, eax
push edi
call fcn.0042a3b0
test al, al
je 0x42a267
mov eax, dword [esp + 0x10]
mov dword [esi + 0x16d0], eax
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esi + 0x1684]
call fcn.004fd7a0
mov ecx, dword [esp + 0x10]
mov al, byte [ecx + 0x144]
test al, al
je 0x42a28d
mov eax, dword [ecx + 0x134]
jmp 0x42a28f
xor eax, eax
push eax
mov eax, dword [esi + 0x16b0]
mov edx, dword [ecx]
push eax
mov eax, dword [esi + 0x16ac]
push eax
mov eax, dword [esi + 0x16a8]
push eax
mov eax, dword [esi + 0x16c8]
push eax
call dword [edx + 0x58]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x130], 1
mov al, byte [esi + 0x180c]
test al, al
je 0x42a32f
mov eax, dword [esi + 0x1804]
mov ecx, dword [esi + 0x1808]
lea edi, [esi + 0x1800]
cmp eax, ecx
je 0x42a2f0
test eax, eax
je 0x42a2eb
mov edx, dword [0x5fcb54]
mov dword [eax], edx
add dword [edi + 4], ebp
jmp 0x42a2ff
push 1
push 0x5fcb54
push eax
mov ecx, edi
call fcn.0043bda0
mov eax, dword [0x621cb0]
mov ecx, dword [0x6234e8]
mov edx, dword [edi + 8]
lea ecx, [eax + ecx*4]
mov eax, dword [edi + 4]
cmp eax, edx
je 0x42a324
test eax, eax
je 0x42a31f
mov edx, dword [ecx]
mov dword [eax], edx
add dword [edi + 4], ebp
jmp 0x42a32f
push 1
push ecx
push eax
mov ecx, edi
call fcn.0043bda0
mov eax, dword [0x621cb4]
mov edx, dword [0x621cb0]
mov ecx, dword [0x6234e8]
sub eax, edx
inc ecx
sar eax, 2
cmp ecx, eax
mov dword [0x6234e8], ecx
jb 0x42a1d4
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x42a39b
mov eax, dword [esp + 0x20]
sub eax, ecx
sar eax, 2
shl eax, 2
cmp eax, 0x80
jbe 0x42a385
push ecx
call fcn.005f0905
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc8
ret 0xc
dec eax
shr eax, 3
mov edx, dword [eax*4 + 0x61f1a0]
lea eax, [eax*4 + 0x61f1a0]
mov dword [ecx], edx
mov dword [eax], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc8
ret 0xc