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

Disassembly:
push 0xffffffffffffffff
push 0x477d08
mov eax, dword fs:[0]
push eax
sub esp, 0x90
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4eec64]
xor eax, esp
push eax
lea eax, [esp + 0xa4]
mov dword fs:[0], eax
mov ebx, dword [esp + 0xb4]
mov ebp, dword [ebx + 4]
shr ebp, 1
je 0x436fb8
xor ecx, ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], ecx
cmp ebp, ecx
jbe 0x436775
mov edi, dword [ebx + 4]
mov esi, dword [ebx]
shr edi, 1
lea esp, [esp]
mov ecx, esi
lea eax, [esp + 0x68]
call fcn.00406430
add esi, 0x10
sub edi, 1
jne 0x436760
xor ecx, ecx
cmp ebp, 1
je 0x436f96
mov esi, dword [esp + 0x74]
sub esi, dword [esp + 0x6c]
mov ebp, dword [esp + 0x70]
sub ebp, dword [esp + 0x68]
mov eax, esi
imul eax, ebp
cmp eax, 0x1388
jl 0x436f96
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0xac], ecx
push pe_nt_image_headers32
mov ecx, 2
lea eax, [esp + 0x7c]
call fcn.0041e190
cmp dword [esp + 0x78], 0
jne 0x4367d1
mov eax, 4
jmp 0x436fba
add ebp, 0xf
lea eax, [esi + 0xf]
shr ebp, 4
shr eax, 4
test dword [ebx + 4], 0xfffffffe
mov dword [esp + 0x50], ebp
mov dword [esp + 0x4c], eax
mov dword [esp + 0x5c], 0
jbe 0x436a0b
mov dword [esp + 0x48], 0
mov ecx, dword [esp + 0xb4]
mov eax, dword [ecx]
add eax, dword [esp + 0x48]
mov ecx, dword [eax]
mov esi, dword [eax + 8]
cmp ecx, esi
mov ebx, dword [eax + 4]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x28], ecx
jge 0x4369e9
cmp ebx, eax
jge 0x4369e9
mov ecx, dword [esp + 0x68]
sub dword [esp + 0x28], ecx
mov edi, dword [esp + 0x4c]
sub esi, ecx
mov ecx, dword [esp + 0x6c]
sub eax, ecx
mov dword [esp + 0x34], eax
lea eax, [eax + edi - 1]
cdq
idiv edi
sub ebx, ecx
mov dword [esp + 0x30], esi
mov dword [esp + 0x2c], ebx
mov ecx, eax
lea eax, [esi + ebp - 1]
cdq
idiv ebp
mov dword [esp + 0x54], eax
mov eax, ebx
cdq
idiv edi
mov esi, eax
mov eax, dword [esp + 0x28]
cdq
idiv ebp
cmp esi, ecx
mov dword [esp + 0x80], eax
jge 0x4369e9
mov edi, eax
lea eax, [edi + 1]
imul eax, ebp
mov dword [esp + 0x64], eax
mov eax, edi
imul eax, ebp
mov dword [esp + 0x60], eax
mov eax, esi
imul eax, dword [esp + 0x4c]
mov edx, esi
shl edx, 8
add edx, dword [esp + 0x78]
sub ecx, esi
mov dword [esp + 0x44], eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x58], ecx
jmp 0x4368cb
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x4c]
add eax, edx
cmp edi, dword [esp + 0x54]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x38], eax
jge 0x4369ce
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x3c]
mov eax, edx
shl eax, 4
lea ecx, [eax + ecx + 8]
mov eax, dword [esp + 0x54]
sub eax, edx
mov dword [esp + 0x40], eax
lea ecx, [ecx]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
cmp esi, eax
mov ebx, dword [esp + 0x38]
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x9c], ebx
jge 0x436931
mov esi, eax
mov eax, dword [esp + 0x2c]
cmp edx, eax
jge 0x43693b
mov edx, eax
mov eax, dword [esp + 0x30]
cmp edi, eax
jle 0x436945
mov edi, eax
mov eax, dword [esp + 0x34]
cmp ebx, eax
jle 0x436956
mov ebx, eax
mov dword [esp + 0x9c], ebx
mov eax, dword [ecx - 8]
cmp eax, dword [ecx]
jge 0x436970
mov ebx, dword [ecx - 4]
cmp ebx, dword [ecx + 4]
jl 0x43697d
mov ebx, dword [esp + 0x9c]
mov ebp, dword [esp + 0x50]
mov dword [ecx - 8], esi
mov dword [ecx - 4], edx
mov dword [ecx], edi
mov dword [ecx + 4], ebx
jmp 0x4369b8
cmp esi, edi
jge 0x4369b4
mov ebp, dword [esp + 0x9c]
cmp edx, ebp
jge 0x4369b4
cmp eax, esi
jg 0x436992
mov esi, eax
cmp ebx, edx
mov dword [ecx - 8], esi
jg 0x43699b
mov edx, ebx
mov eax, dword [ecx]
cmp eax, edi
mov dword [ecx - 4], edx
jl 0x4369a6
mov edi, eax
mov eax, dword [ecx + 4]
cmp eax, ebp
mov dword [ecx], edi
jge 0x4369b1
mov eax, ebp
mov dword [ecx + 4], eax
mov ebp, dword [esp + 0x50]
add dword [esp + 0x18], ebp
add dword [esp + 0x20], ebp
add ecx, 0x10
sub dword [esp + 0x40], 1
jne 0x436910
add dword [esp + 0x3c], 0x100
sub dword [esp + 0x58], 1
mov edx, dword [esp + 0x38]
mov dword [esp + 0x44], edx
jne 0x4368c0
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0x5c]
mov edx, dword [ecx + 4]
add dword [esp + 0x48], 0x10
inc eax
shr edx, 1
mov dword [esp + 0x5c], eax
cmp eax, edx
jb 0x436802
mov edi, dword [esp + 0xb4]
mov eax, dword [edi + 4]
mov ecx, eax
mov esi, 1
and ecx, esi
test eax, 0xfffffffe
je 0x436a41
test ecx, ecx
je 0x436a2d
push 0
jmp 0x436a39
mov eax, edi
call fcn.00435ee0
cmp eax, esi
je 0x436a3e
push esi
call fcn.00415bd0
and dword [edi + 4], esi
mov dword [esp + 0x4c], 0
mov eax, dword [esp + 0x4c]
shl eax, 8
add eax, dword [esp + 0x78]
mov dword [esp + 0x38], 0
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x5c]
shl eax, 4
mov edx, dword [ecx + eax]
add ecx, eax
cmp edx, dword [ecx + 8]
jge 0x436f58
mov eax, dword [ecx + 4]
cmp eax, dword [ecx + 0xc]
jge 0x436f58
mov ebp, dword [esp + 0x38]
xor ebx, ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x54], ebp
mov dword [esp + 0x50], ebx
cmp ebp, 0x10
jae 0x436bda
add ecx, 8
nop
mov esi, dword [ecx - 8]
mov edi, dword [ecx]
cmp esi, edi
jge 0x436bda
mov eax, dword [ecx - 4]
mov edx, dword [ecx + 4]
cmp eax, edx
jge 0x436bda
sub edx, eax
mov eax, dword [esp + 0x50]
sub edi, esi
mov esi, dword [esp + 0x2c]
imul edx, edi
mov edi, dword [esp + 0x28]
add edx, eax
cmp edi, ebx
mov eax, dword [esp + 0x34]
mov dword [esp + 0x64], edx
mov edx, ebx
jge 0x436af8
mov ebx, esi
cmp ebx, eax
jl 0x436b05
mov ebx, dword [esp + 0x30]
mov edi, dword [ecx - 8]
mov esi, dword [ecx - 4]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
jmp 0x436b2e
mov ebp, dword [ecx - 8]
cmp dword [esp + 0x28], ebp
jle 0x436b10
mov edi, ebp
mov ebp, dword [ecx - 4]
cmp esi, ebp
jle 0x436b19
mov esi, ebp
mov ebp, dword [ecx]
cmp edx, ebp
jge 0x436b21
mov edx, ebp
mov ebp, dword [ecx + 4]
cmp eax, ebp
mov ebx, dword [esp + 0x30]
jge 0x436b2e
mov eax, ebp
sub eax, esi
mov esi, dword [esp + 0x64]
sub edx, edi
imul eax, edx
cdq
idiv esi
cmp eax, 1
jg 0x436bd1
mov edx, dword [esp + 0x28]
cmp edx, ebx
mov dword [esp + 0x50], esi
jge 0x436b5d
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x34]
cmp esi, edi
jl 0x436b7a
mov edx, dword [ecx - 8]
mov eax, dword [ecx - 4]
mov ebx, dword [ecx]
mov dword [esp + 0x28], edx
mov edx, dword [ecx + 4]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], edx
jmp 0x436ba7
mov eax, dword [ecx - 8]
cmp edx, eax
jle 0x436b85
mov dword [esp + 0x28], eax
mov eax, dword [ecx - 4]
cmp esi, eax
jle 0x436b90
mov dword [esp + 0x2c], eax
mov eax, dword [ecx]
cmp ebx, eax
jge 0x436b9c
mov ebx, eax
mov dword [esp + 0x30], ebx
mov eax, dword [ecx + 4]
cmp edi, eax
jge 0x436ba7
mov dword [esp + 0x34], eax
mov ebp, dword [esp + 0x38]
xor eax, eax
mov dword [ecx - 8], eax
xor edx, edx
xor esi, esi
mov dword [ecx - 4], edx
xor edi, edi
mov dword [ecx], esi
inc ebp
mov dword [ecx + 4], edi
add ecx, 0x10
mov dword [esp + 0x38], ebp
cmp ebp, 0x10
jb 0x436ab0
jmp 0x436bda
mov ebp, dword [esp + 0x38]
dec ebp
mov dword [esp + 0x38], ebp
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x5c]
add eax, ebp
add ecx, 0x100
cdq
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x4c]
sub eax, edx
sar eax, 1
inc ecx
mov dword [esp + 0x58], ebp
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x60], ecx
cmp ecx, 0x10
jae 0x436ee4
xor ecx, ecx
cmp eax, ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x48], ecx
mov ebp, eax
jl 0x436ccd
mov ecx, dword [esp + 0x3c]
mov edx, eax
shl edx, 4
lea edx, [edx + ecx + 4]
mov esi, dword [edx - 4]
mov ecx, dword [edx + 4]
cmp esi, ecx
jge 0x436ccd
mov edi, dword [edx]
mov esi, dword [edx + 8]
cmp edi, esi
jge 0x436ccd
mov edi, dword [esp + 0x20]
cmp dword [esp + 0x18], edi
jge 0x436c69
mov edi, dword [esp + 0x24]
cmp dword [esp + 0x1c], edi
jl 0x436c84
mov edi, dword [edx - 4]
mov dword [esp + 0x18], edi
mov edi, dword [edx]
mov dword [esp + 0x1c], edi
mov edi, ecx
mov dword [esp + 0x20], edi
mov edi, esi
mov dword [esp + 0x24], edi
jmp 0x436cb1
mov edi, dword [edx - 4]
cmp dword [esp + 0x18], edi
jle 0x436c91
mov dword [esp + 0x18], edi
mov edi, dword [edx]
cmp dword [esp + 0x1c], edi
jle 0x436c9d
mov dword [esp + 0x1c], edi
cmp dword [esp + 0x20], ecx
jge 0x436ca7
mov dword [esp + 0x20], ecx
cmp dword [esp + 0x24], esi
jge 0x436cb1
mov dword [esp + 0x24], esi
sub ecx, dword [edx - 4]
sub esi, dword [edx]
mov dword [esp + 0x40], ebp
imul ecx, esi
add dword [esp + 0x48], ecx
dec ebp
sub edx, 0x10
test ebp, ebp
jge 0x436c3e
lea esi, [eax + 1]
cmp esi, 0x10
jge 0x436d74
mov eax, dword [esp + 0x3c]
mov edx, esi
shl edx, 4
lea ecx, [edx + eax + 4]
mov edx, dword [ecx - 4]
mov eax, dword [ecx + 4]
cmp edx, eax
jge 0x436d74
mov edi, dword [ecx]
mov edx, dword [ecx + 8]
cmp edi, edx
jge 0x436d74
mov ebx, dword [esp + 0x20]
cmp dword [esp + 0x18], ebx
jge 0x436d11
mov ebx, dword [esp + 0x24]
cmp dword [esp + 0x1c], ebx
jl 0x436d2c
mov ebx, dword [ecx - 4]
mov dword [esp + 0x18], ebx
mov ebx, edi
mov dword [esp + 0x1c], ebx
mov ebx, eax
mov dword [esp + 0x20], ebx
mov ebx, edx
mov dword [esp + 0x24], ebx
jmp 0x436d57
mov ebp, dword [ecx - 4]
cmp dword [esp + 0x18], ebp
jle 0x436d39
mov dword [esp + 0x18], ebp
cmp dword [esp + 0x1c], edi
jle 0x436d43
mov dword [esp + 0x1c], edi
cmp dword [esp + 0x20], eax
jge 0x436d4d
mov dword [esp + 0x20], eax
cmp dword [esp + 0x24], edx
jge 0x436d57
mov dword [esp + 0x24], edx
sub eax, dword [ecx - 4]
sub edx, edi
imul eax, edx
add dword [esp + 0x48], eax
mov dword [esp + 0x44], esi
inc esi
add ecx, 0x10
cmp esi, 0x10
jl 0x436ce6
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
cmp edi, ebp
jge 0x436ee4
mov ebx, dword [esp + 0x1c]
cmp ebx, dword [esp + 0x24]
jge 0x436ee4
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
cmp esi, ecx
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
jge 0x436daa
cmp edx, eax
jl 0x436db6
mov eax, dword [esp + 0x24]
mov esi, edi
mov edx, ebx
mov ecx, ebp
jmp 0x436dd2
cmp esi, edi
jle 0x436dbc
mov esi, edi
cmp edx, ebx
jle 0x436dc2
mov edx, ebx
cmp ecx, ebp
jge 0x436dc8
mov ecx, ebp
mov edi, dword [esp + 0x24]
cmp eax, edi
jge 0x436dd2
mov eax, edi
mov edi, dword [esp + 0x50]
mov ebx, dword [esp + 0x48]
sub eax, edx
sub ecx, esi
imul eax, ecx
add ebx, edi
cdq
idiv ebx
cmp eax, 1
jg 0x436ee4
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
cmp ecx, esi
jge 0x436e07
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x34]
cmp edx, edi
jl 0x436e29
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
jmp 0x436e59
mov eax, dword [esp + 0x18]
cmp ecx, eax
jle 0x436e35
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x1c]
cmp edx, eax
jle 0x436e41
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
cmp esi, eax
jge 0x436e4d
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x24]
cmp edi, eax
jge 0x436e59
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
cmp eax, edx
jg 0x436e9b
mov ecx, dword [esp + 0x44]
sub ecx, dword [esp + 0x40]
shl eax, 4
add eax, dword [esp + 0x3c]
xor edx, edx
xor esi, esi
xor ebp, ebp
xor edi, edi
inc ecx
lea ecx, [ecx]
mov dword [eax], edx
mov dword [eax + 4], esi
mov dword [eax + 8], ebp
mov dword [eax + 0xc], edi
add eax, 0x10
sub ecx, 1
jne 0x436e80
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x54]
cmp ecx, eax
mov dword [esp + 0x50], ebx
jle 0x436ead
mov ecx, eax
mov dword [esp + 0x54], ecx
mov eax, dword [esp + 0x58]
cmp eax, edx
jle 0x436ebb
mov eax, edx
mov dword [esp + 0x58], eax
add dword [esp + 0x3c], 0x100
add eax, ecx
mov ecx, dword [esp + 0x60]
cdq
sub eax, edx
sar eax, 1
inc ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x60], ecx
cmp ecx, 0x10
jb 0x436c11
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0xb4]
add esi, eax
add ebx, eax
mov eax, dword [esp + 0x6c]
add dword [esp + 0x34], eax
add ebp, eax
mov eax, dword [edi + 4]
test al, 1
jne 0x436f58
shr eax, 1
lea edx, [eax - 1]
test eax, edx
jne 0x436f2c
add eax, eax
jne 0x436f22
mov eax, 1
push eax
call fcn.00415bd0
test eax, eax
je 0x436f58
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x34]
shr eax, 1
shl eax, 4
add eax, dword [edi]
mov dword [eax], esi
mov dword [eax + 4], ebp
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ecx
mov eax, dword [edi + 4]
mov edx, eax
and edx, 0xfffffffe
add edx, 2
and eax, 1
xor edx, eax
mov dword [edi + 4], edx
mov eax, dword [esp + 0x38]
inc eax
mov dword [esp + 0x38], eax
cmp eax, 0x10
jb 0x436a60
mov eax, dword [esp + 0x4c]
inc eax
mov dword [esp + 0x4c], eax
cmp eax, 0x10
jb 0x436a49
mov dword [esp + 0xac], 0xffffffff
mov eax, dword [esp + 0x78]
push eax
call fcn.0045c158
add esp, 4
jmp 0x436fb8
mov eax, dword [ebx]
cmp eax, ecx
je 0x436fa7
push eax
call fcn.0045c158
add esp, 4
xor ecx, ecx
and dword [ebx + 4], 1
lea esi, [esp + 0x68]
mov eax, ebx
mov dword [ebx], ecx
call fcn.004158f0
xor eax, eax
mov ecx, dword [esp + 0xa4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x9c
ret