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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc4
mov eax, dword [0x4baad8]
xor eax, esp
mov dword [esp + 0xc0], eax
push ebx
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 0x1e04]
mov ecx, dword [edi + 0x1df4]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], 0
call fcn.00413360
mov ecx, dword [edi + 0x1df4]
call fcn.00412ea0
call dword [0x48b3bc]
cmp dword [edi + 0x5c], 0
je 0x436bc0
mov ecx, dword [edi + 0x58]
mov esi, dword [ecx]
mov ebx, dword [edi + 0x40]
mov dword [esp + 0x48], esi
mov dword [esp + 0x44], ebx
jmp 0x4362f0
mov edx, dword [edi + 0x58]
mov eax, dword [edi + 0x40]
mov dword [esp + 0x68], edx
test ebx, ebx
je 0x436302
cmp ebx, eax
je 0x436307
call fcn.0045b262
cmp esi, dword [esp + 0x68]
je 0x436aaa
test ebx, ebx
jne 0x4363c9
call fcn.0045b262
cmp esi, dword [ebx + 0x18]
jne 0x436328
call fcn.0045b262
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x20], ecx
mov ecx, dword [edi + 0xb8]
lea esi, [edi + 0xa0]
mov dword [esp + 0x28], eax
mov dword [esp + 0x50], ecx
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x98]
mov dword [esp + 0x28], edx
mov edx, dword [esi]
push ecx
mov ecx, esi
mov byte [esp + 0xb4], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x54], edx
call fcn.004132d0
mov ebx, eax
mov eax, dword [ebx]
test eax, eax
je 0x43638c
cmp eax, dword [esp + 0x4c]
je 0x436391
call fcn.0045b262
mov edx, dword [esp + 0x50]
cmp dword [ebx + 4], edx
je 0x43642d
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x90]
push ecx
mov ecx, esi
call fcn.004132d0
mov esi, eax
mov eax, dword [esi]
test eax, eax
jne 0x4363c5
call fcn.0045b262
mov eax, dword [esi]
test eax, eax
je 0x4363d0
mov eax, dword [eax]
jmp 0x4363d2
mov ebx, dword [ebx]
jmp 0x43631e
xor eax, eax
mov edx, dword [esi + 4]
cmp edx, dword [eax + 0x18]
jne 0x4363df
call fcn.0045b262
mov eax, dword [esi + 4]
mov edx, dword [eax + 0x10]
lea eax, [edx + 0x1c7c]
lea esi, [esp + 0xac]
mov dword [esp + 0x10], edx
sub esi, eax
mov cl, byte [eax]
mov byte [esi + eax], cl
inc eax
test cl, cl
jne 0x4363f8
mov ecx, dword [edx + 0x14]
mov eax, dword [edx + 0x10]
push 0
push ecx
mov ecx, dword [edx + 0xc]
push eax
mov eax, dword [edx + 8]
push ecx
mov ecx, dword [edx + 0x24]
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [edi + 0x1df4]
push edx
push eax
call fcn.00417d20
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x1c]
lea ecx, [esp + 0xac]
push ecx
mov ecx, dword [esp + 0x24]
push edx
push eax
push ecx
mov ecx, dword [edi + 0x1df4]
push ebx
call fcn.00417ba0
xor eax, eax
cmp dword [edi + 0x3c], eax
je 0x4365b7
lea edx, [esp + 0xc]
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], eax
push edx
lea eax, [esp + 0xa0]
lea ecx, [edi + 0x20]
push eax
call fcn.004132d0
mov esi, eax
mov eax, dword [esi]
test eax, eax
jne 0x43648f
call fcn.0045b262
mov eax, dword [esi]
test eax, eax
je 0x436493
mov eax, dword [eax]
jmp 0x436495
xor eax, eax
mov ecx, dword [esi + 4]
cmp ecx, dword [eax + 0x18]
jne 0x4364a2
call fcn.0045b262
mov ebx, dword [esi + 4]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0xa8]
push eax
lea ecx, [edi + 0x20]
add ebx, 0xc
call fcn.004132d0
mov esi, eax
mov eax, dword [esi]
test eax, eax
jne 0x4364d0
call fcn.0045b262
mov eax, dword [esi]
test eax, eax
je 0x4364d4
mov eax, dword [eax]
jmp 0x4364d6
xor eax, eax
mov ecx, dword [esi + 4]
cmp ecx, dword [eax + 0x18]
jne 0x4364e3
call fcn.0045b262
mov edx, dword [ebx + 4]
mov eax, dword [edx + 0x24]
mov ecx, dword [esi + 4]
mov edx, dword [ecx + 0x10]
mov ecx, dword [edi + 0x1df4]
push eax
mov eax, dword [edx + 0x20]
push eax
call fcn.00412d40
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0x80]
push edx
lea ecx, [edi + 0x20]
mov dword [esp + 0x14], 0
call fcn.004132d0
mov esi, eax
mov eax, dword [esi]
test eax, eax
jne 0x43652f
call fcn.0045b262
mov eax, dword [esi]
test eax, eax
je 0x436533
mov eax, dword [eax]
jmp 0x436535
xor eax, eax
mov ecx, dword [esi + 4]
cmp ecx, dword [eax + 0x18]
jne 0x436542
call fcn.0045b262
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x10]
mov ecx, dword [edi + 0x1df4]
push 0
add eax, 0x28
push eax
call fcn.00412d70
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0x88]
push edx
lea ecx, [edi + 0x20]
mov dword [esp + 0x14], 0
call fcn.004132d0
mov esi, eax
mov eax, dword [esi]
test eax, eax
jne 0x436589
call fcn.0045b262
mov eax, dword [esi]
test eax, eax
je 0x43658d
mov eax, dword [eax]
jmp 0x43658f
xor eax, eax
mov ecx, dword [esi + 4]
cmp ecx, dword [eax + 0x18]
jne 0x43659c
call fcn.0045b262
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x10]
mov ecx, dword [edi + 0x1df4]
push 1
add eax, 0x48
push eax
call fcn.00412d70
mov ebx, dword [esp + 0x1c]
mov ecx, dword [edi + 0x78]
mov edx, dword [ecx]
mov esi, dword [edi + 0x60]
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], esi
jmp 0x4365d0
mov eax, dword [edi + 0x78]
mov dword [esp + 0x78], eax
mov eax, dword [edi + 0x60]
test esi, esi
je 0x4365e2
cmp esi, eax
je 0x4365e7
call fcn.0045b262
mov ecx, dword [esp + 0x78]
cmp dword [esp + 0x38], ecx
je 0x436773
test esi, esi
jne 0x43673f
call fcn.0045b262
mov edx, dword [esp + 0x38]
cmp edx, dword [esi + 0x18]
jne 0x436610
call fcn.0045b262
mov eax, dword [esp + 0x38]
mov esi, dword [eax + 0x10]
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
push 0
push ecx
mov ecx, dword [esi + 0xc]
push edx
mov edx, dword [esi + 8]
push eax
mov eax, dword [esi + 0x24]
push ecx
mov ecx, dword [esi + 4]
add ecx, dword [esp + 0x34]
push edx
mov edx, dword [esi]
push eax
push ecx
mov ecx, dword [edi + 0x1df4]
add edx, ebx
push edx
call fcn.00419860
mov ecx, dword [0x4c08ec]
push 0xfe
push 0x63
call fcn.0040ccd0
mov ecx, dword [edi + 0x1e04]
add ecx, dword [esp + 0x18]
cmp eax, ecx
jne 0x43669f
cmp dword [esi + 0x20], 2
jne 0x43669f
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
push 0
push 0x63
push edx
mov edx, dword [esi + 8]
push eax
mov eax, dword [esi + 0x24]
push ecx
mov ecx, dword [esi + 4]
add ecx, dword [esp + 0x34]
push edx
mov edx, dword [esi]
push eax
push ecx
mov ecx, dword [edi + 0x1df4]
add edx, ebx
push edx
call fcn.00419860
mov esi, dword [esp + 0x10]
add esi, 0x40
mov dword [esp + 0xc], 3
mov edi, edi
cmp dword [esi + 0x10], 0
je 0x436753
mov ecx, dword [0x4c08ec]
push 0xfe
push 0x63
call fcn.0040ccd0
mov ecx, dword [edi + 0x1e04]
add ecx, dword [esp + 0x18]
mov edx, dword [esi + 0xc]
push 0
push edx
mov edx, dword [esi - 8]
cmp eax, ecx
mov eax, dword [esi]
mov ecx, dword [esi - 4]
push eax
mov eax, dword [esi - 0xc]
push ecx
mov ecx, dword [esi + 0x10]
push edx
mov edx, dword [esi - 0x10]
push eax
mov eax, dword [esi - 0x14]
push ecx
mov ecx, dword [edi + 0x1df4]
jne 0x436746
add edx, dword [esp + 0x3c]
add eax, ebx
push edx
push eax
call fcn.00419860
cmp dword [esi + 0xc], 2
jne 0x436753
mov ecx, dword [esi]
mov edx, dword [esi - 4]
mov eax, dword [esi - 8]
push 0
push 0x63
push ecx
mov ecx, dword [esi - 0xc]
push edx
mov edx, dword [esi + 0x10]
push eax
mov eax, dword [esi - 0x10]
add eax, dword [esp + 0x34]
push ecx
mov ecx, dword [esi - 0x14]
push edx
add ecx, ebx
push eax
push ecx
mov ecx, dword [edi + 0x1df4]
jmp 0x43674e
mov esi, dword [esi]
jmp 0x436602
add edx, dword [esp + 0x3c]
add eax, ebx
push edx
push eax
call fcn.00419860
add esi, 0x2c
sub dword [esp + 0xc], 1
jne 0x4366b0
lea ecx, [esp + 0x34]
call fcn.00409780
mov esi, dword [esp + 0x34]
jmp 0x4365d0
mov ecx, dword [edi + 0x98]
mov edx, dword [ecx]
mov esi, dword [edi + 0x80]
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], esi
lea esp, [esp]
mov eax, dword [edi + 0x98]
mov dword [esp + 0x70], eax
mov eax, dword [edi + 0x80]
test esi, esi
je 0x4367a8
cmp esi, eax
je 0x4367ad
call fcn.0045b262
mov ecx, dword [esp + 0x70]
cmp dword [esp + 0x40], ecx
je 0x43682c
test esi, esi
jne 0x436828
call fcn.0045b262
mov edx, dword [esp + 0x40]
cmp edx, dword [esi + 0x18]
jne 0x4367ce
call fcn.0045b262
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x40]
sub ecx, dword [edi + 0x1e04]
mov eax, dword [eax + 0x10]
cmp dword [eax + 0x28], ecx
jne 0x436816
mov edx, dword [eax + 0x20]
mov ecx, dword [eax + 0x14]
push 0
push edx
mov edx, dword [eax + 0x10]
push ecx
mov ecx, dword [eax + 0xc]
push edx
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 0x24]
push edx
mov edx, dword [eax + 4]
add edx, dword [esp + 0x38]
mov eax, dword [eax]
push ecx
mov ecx, dword [edi + 0x1df4]
push edx
add eax, ebx
push eax
call fcn.00419860
lea ecx, [esp + 0x3c]
call fcn.00409780
mov esi, dword [esp + 0x3c]
jmp 0x436790
mov esi, dword [esi]
jmp 0x4367c0
cmp dword [esp + 0x10], 0
je 0x436a87
mov ebx, dword [esp + 0x10]
mov edx, dword [ebx + 8]
cmp edx, dword [ebx + 0x10]
jge 0x436873
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x14]
cmp eax, ecx
jge 0x436873
mov esi, dword [ebx + 0x20]
push 0
push esi
push ecx
mov ecx, dword [ebx + 0x10]
push ecx
mov ecx, dword [ebx + 0x24]
push eax
mov eax, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x38]
push ecx
mov ecx, dword [edi + 0x1df4]
push edx
push eax
call fcn.00419860
mov eax, 0xffffff44
sub eax, ebx
mov dword [esp + 0x14], 0
lea esi, [ebx + 0xbc]
mov dword [esp + 0x30], eax
lea esp, [esp]
lea eax, [esi + 0x14]
test eax, eax
je 0x436a69
cmp word [esi + 0x320], 0
lea ecx, [esi + 0x320]
je 0x436991
cmp dword [esi], 0
jne 0x4368e6
cmp dword [esi + 4], 0
jne 0x4368e6
mov edx, dword [esi - 8]
push eax
mov eax, dword [esp + 0x24]
push ecx
mov ecx, dword [esi - 4]
push ecx
lea ecx, [eax + edx*2]
mov edx, dword [esi - 0xc]
mov eax, dword [esp + 0x28]
push ecx
lea ecx, [eax + edx*2]
push ecx
mov ecx, dword [edi + 0x1df4]
call fcn.00418210
jmp 0x436a69
xor ebx, ebx
mov dword [esp + 0xc], ebx
test ebx, ebx
jne 0x4368f8
mov dword [esp + 0xc], 0x63
mov edx, dword [esp + 0x14]
lea ecx, [edx + ebx]
mov edx, dword [esp + 0x10]
mov eax, dword [edx + ecx*4 + 0xb8]
test eax, eax
jle 0x436982
cmp dword [edx + ecx*4 + 0xc4], 0
mov ecx, dword [esp + 0xc]
push 0
push ecx
lea ecx, [esi + 0x14]
push ecx
mov ecx, dword [esp + 0x3c]
mov edx, ebx
jne 0x436958
imul edx, edx, 0x208
add ecx, esi
add edx, ecx
mov ecx, dword [esp + 0x1c]
lea edx, [edx + ecx + 0x3dc]
mov ecx, dword [esp + 0x2c]
push edx
push eax
mov eax, dword [esi - 8]
lea edx, [ecx + eax*2]
mov eax, dword [esi - 0xc]
mov ecx, dword [esp + 0x30]
push edx
lea edx, [ecx + eax*2]
push edx
jmp 0x436977
imul edx, edx, 0x208
add ecx, esi
add edx, ecx
mov ecx, dword [esp + 0x1c]
lea edx, [edx + ecx + 0x3dc]
mov ecx, dword [esi - 0xc]
push edx
push eax
mov eax, dword [esi - 8]
push eax
push ecx
mov ecx, dword [edi + 0x1df4]
call fcn.00419920
inc ebx
cmp ebx, 3
jl 0x4368e8
jmp 0x436a69
cmp dword [esi], 0
jne 0x4369c7
cmp dword [esi + 4], 0
jne 0x4369c7
mov edx, dword [esi - 4]
mov ecx, dword [esp + 0x20]
push eax
mov eax, dword [esi - 8]
push edx
lea edx, [ecx + eax*2]
mov eax, dword [esi - 0xc]
mov ecx, dword [esp + 0x24]
push edx
lea edx, [ecx + eax*2]
mov ecx, dword [edi + 0x1df4]
push edx
call fcn.004180a0
jmp 0x436a69
xor ebx, ebx
mov dword [esp + 0xc], ebx
test ebx, ebx
jne 0x4369d9
mov dword [esp + 0xc], 0x63
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
lea ecx, [eax + ebx]
mov eax, dword [edx + ecx*4 + 0xb8]
test eax, eax
jle 0x436a5f
cmp dword [edx + ecx*4 + 0xc4], 0
mov ecx, dword [esp + 0xc]
push 0
push ecx
mov ecx, dword [esp + 0x38]
mov edx, ebx
jne 0x436a35
imul edx, edx, 0x104
add ecx, esi
add edx, ecx
mov ecx, dword [esp + 0x18]
lea edx, [edx + ecx + 0xd0]
mov ecx, dword [esp + 0x28]
push edx
push eax
mov eax, dword [esi - 8]
lea edx, [ecx + eax*2]
mov eax, dword [esi - 0xc]
mov ecx, dword [esp + 0x2c]
push edx
lea edx, [ecx + eax*2]
push edx
jmp 0x436a54
imul edx, edx, 0x104
add ecx, esi
add edx, ecx
mov ecx, dword [esp + 0x18]
lea edx, [edx + ecx + 0xd0]
mov ecx, dword [esi - 0xc]
push edx
push eax
mov eax, dword [esi - 8]
push eax
push ecx
mov ecx, dword [edi + 0x1df4]
call fcn.004198f0
inc ebx
cmp ebx, 3
jl 0x4369c9
mov eax, dword [esp + 0x14]
add eax, 0x251
add esi, 0x944
cmp eax, 0x6f3
mov dword [esp + 0x14], eax
jl 0x436890
mov eax, 1
add dword [esp + 0x2c], eax
add dword [esp + 0x18], eax
lea ecx, [esp + 0x44]
call fcn.00409710
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x44]
jmp 0x4362f0
mov ecx, dword [edi + 0x1df4]
call fcn.00417c60
call dword [0x48b3bc]
mov edx, dword [edi + 0x1df8]
mov ecx, dword [edi + 0x1df4]
push 0
push edx
call fcn.00418f20
cmp dword [edi + 0x1e00], 0
je 0x436b8a
mov ecx, dword [edi + 0x1dfc]
mov ecx, dword [ecx]
lea eax, [esp + 0x54]
push eax
call fcn.00444360
mov eax, dword [edi + 0xe8]
mov edx, dword [edi + 0xf0]
mov dword [esp + 0x18], eax
sub edx, eax
mov eax, dword [edi + 0xbc]
sub eax, dword [edi + 0x5c]
mov dword [esp + 0xc], edx
fild dword [esp + 0xc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x60]
fidiv dword [esp + 0xc]
sub eax, dword [esp + 0x58]
mov esi, dword [edi + 0xe4]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0xc], eax
fimul dword [edi + 0x1e04]
fiadd dword [esp + 0x18]
fisub dword [esp + 0xc]
call fcn.0045b7b0
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
mov eax, dword [edi + 0xec]
sub eax, esi
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esp + 0x5c]
sub eax, dword [esp + 0x54]
sar ecx, 1
cdq
sub eax, edx
mov edx, dword [edi + 0x1dfc]
sar eax, 1
sub ecx, eax
sub esp, 8
add ecx, esi
mov dword [esp + 0x14], ecx
mov ecx, dword [edx]
fstp dword [esp + 4]
fild dword [esp + 0x14]
fstp dword [esp]
call fcn.00444260
mov ecx, dword [edi + 0x1df4]
call fcn.00412ee0
mov ecx, dword [0x4c08ec]
push eax
push 0xf5
push 0x63
call fcn.0040d2c0
mov ecx, dword [edi + 0x1df4]
push 1
call fcn.00414d50
mov ecx, dword [edi + 0x1df4]
call fcn.00412ea0
mov ecx, dword [esp + 0xcc]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0045ab2a
mov esp, ebp
pop ebp
ret