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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x130
mov ecx, dword [ebp + 0x28]
mov edx, dword [ebp + 0x24]
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
xorps xmm0, xmm0
movaps xmmword [esp + 0x110], xmm0
movaps xmmword [esp + 0x100], xmm0
movaps xmmword [esp + 0xf0], xmm0
movaps xmmword [esp + 0xe0], xmm0
movaps xmmword [esp + 0xd0], xmm0
movaps xmmword [esp + 0xc0], xmm0
movaps xmmword [esp + 0xb0], xmm0
movaps xmmword [esp + 0xa0], xmm0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], esi
movups xmmword [esp + 0x90], xmm0
mov dword [esp + 0x98], 1
test al, 2
jne 0x4361db
mov dword [ecx + 4], 0
mov dword [ecx], 0
test edx, edx
je 0x4361e5
mov dword [edx], 0
test esi, esi
je 0x4362e2
mov edi, dword [ebp + 0x20]
xor eax, eax
mov edx, 0xfffffffe
cmp edx, dword [ebp + 0x1c]
sbb eax, edi
jae 0x436208
mov edi, 0x7f2bb752
jmp 0x436be0
mov dword [esp + 4], edi
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x14]
mov dword [esp + 0xc], ecx
shr ecx, 2
mov eax, dword [esi + 0x20]
test eax, 0x80000
jne 0x436267
mov dword [esp], eax
mov eax, ecx
mul ecx
mov dword [esp + 8], esi
mov esi, eax
mov edi, edx
mov ebx, edx
imul ebx, ecx
mul ecx
add edx, ebx
mov ebx, dword [ebp + 0xc]
add esi, ecx
adc edi, 0
add esi, eax
adc edi, edx
add esi, 0xc
adc edi, 0
cmp dword [ebp + 0x1c], esi
mov esi, dword [esp + 8]
mov eax, dword [ebp + 0x20]
sbb eax, edi
mov eax, dword [esp]
mov edi, 0x7f2bb752
jae 0x436be0
mov edi, 0x7f2bb7a6
test eax, 0x10000000
jne 0x436be0
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x10], 0
test edx, edx
je 0x436331
mov dword [esp + 0xc], edx
test eax, 0x80000
jne 0x436306
xor eax, eax
mov edx, 0xb
mov ebx, dword [ebp + 0x1c]
cmp edx, ebx
mov edi, dword [ebp + 0x20]
sbb eax, edi
jb 0x436374
mov eax, dword [ebp + 0x18]
test al, 2
mov edx, dword [ebp + 0x28]
jne 0x436533
mov eax, dword [ebp + 0x1c]
mov edi, dword [esi + eax*4 + 0x28]
mov dword [edx], edi
mov dword [edx + 4], 0
or dword [esp + 4], eax
mov ebx, dword [ebp + 0xc]
je 0x43661c
xor edx, edx
mov eax, dword [esi + eax*4 + 0x24]
jmp 0x436636
lea esi, [esp + 0xa0]
push esi
push ebx
mov eax, dword [ebp + 8]
push eax
call fcn.0041afb0
add esp, 0xc
mov edi, eax
test eax, eax
jne 0x436be0
jmp 0x4361ed
lea eax, [esp + 0x2c]
push eax
push esi
push ebx
push dword [ebp + 8]
call fcn.00415040
add esp, 0x10
test eax, eax
je 0x4363db
mov edi, eax
mov dword [esp], 0
mov edx, dword [ebp + 8]
jmp 0x436b6c
mov edi, 0x7f2bb746
mov edx, dword [esp + 0xc]
test edx, edx
js 0x436be0
add edx, edx
push edx
mov dword [esp + 0x10], ecx
mov dword [esp + 4], eax
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
mov edi, 0x7f2bb746
add esp, 4
mov edx, eax
mov dword [esp + 0x10], eax
test eax, eax
mov eax, dword [esp]
mov ecx, dword [esp + 0xc]
jne 0x43628a
jmp 0x436be0
add ebx, 0xfffffff4
adc edi, 0xffffffff
mov edx, dword [ebp + 0x28]
mov eax, dword [edx]
mov dword [esp + 0x28], eax
cmp ebx, ecx
mov eax, edi
sbb eax, 0
jae 0x436551
mov dword [esp], ebx
mov eax, dword [esi + 0x58]
test eax, eax
mov ebx, dword [ebp + 0xc]
je 0x4366a4
lea edi, [esp + 0x28]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0x18]
push edi
push dword [esp + 4]
lea edi, [esp + 0x1c]
push edi
push dword [esp + 0x18]
push eax
call fcn.00436c30
add esp, 0x14
test eax, eax
je 0x4366ca
mov dword [esp], 0
mov edi, eax
mov edx, dword [ebp + 8]
jmp 0x436b6c
mov eax, dword [ebp + 0x18]
mov edx, eax
shr edx, 2
and edx, 1
mov ecx, dword [esp + 0x2c]
xorps xmm0, xmm0
movaps xmmword [esp + 0x70], xmm0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
movaps xmmword [esp + 0x50], xmm0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
test al, 2
jne 0x4365af
mov dword [esp + 0x6c], edx
push dword [ebp + 0x20]
mov edi, dword [ebp + 0x1c]
push edi
mov dword [esp + 8], ecx
push ecx
call fcn.00415a40
add esp, 0xc
test eax, eax
je 0x4366db
mov dword [esp + 4], eax
cmp eax, 0x7f2bb784
jne 0x436b11
mov dword [esp + 0x58], edi
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x5c], eax
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 0x28]
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne 0x436b09
mov eax, dword [ebp + 0x18]
and eax, 1
je 0x436b09
mov dword [esp + 8], esi
mov eax, dword [edx + 0x10]
test byte [eax + 0x65], 2
je 0x4364af
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x64]
mov eax, 0xffffffff
shl eax, cl
cmp ecx, 0x1f
jne 0x4369e4
mov edi, dword [ebp + 0x1c]
add edi, 0xffffffff
mov esi, dword [ebp + 0x20]
adc esi, 0xffffffff
xorps xmm0, xmm0
movaps xmmword [esp + 0x30], xmm0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
push esi
push edi
push dword [esp + 8]
call fcn.00415a40
add esp, 0xc
cmp eax, 0x7f2bb784
je 0x436909
test eax, eax
mov ebx, dword [ebp + 0xc]
jne 0x43650e
lea eax, [esp + 0x30]
push eax
push 0
push dword [esp + 8]
call fcn.00415320
add esp, 0xc
test eax, eax
je 0x436bea
mov edi, dword [ebp + 8]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
mov esi, dword [esp + 0x10]
push esi
push ebx
push edi
call fcn.00410160
add esp, 0x14
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
jmp 0x436917
mov eax, dword [edx]
mov ecx, dword [ebp + 0x1c]
mov dword [esi + ecx*4 + 0x28], eax
mov al, 1
mov dword [esp], eax
mov dword [esp + 4], 0
mov ebx, dword [ebp + 0xc]
jmp 0x436b1b
mov dword [esp + 8], esi
mov esi, dword [ebp + 0xc]
sub ebx, ecx
sbb edi, 0
imul ecx, ecx
mov dword [esp], ebx
sub ebx, ecx
sbb edi, 0
jae 0x4365d0
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x5c]
test eax, eax
mov ebx, esi
je 0x43674d
lea esi, [esp + 0x28]
lea edi, [esp + 0x14]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0x18]
push esi
push dword [esp + 4]
push edi
push dword [esp + 0x18]
push eax
call fcn.00436d00
add esp, 0x14
test eax, eax
je 0x436819
mov dword [esp], 0
mov edi, eax
jmp 0x436610
push edx
mov eax, dword [ebp + 0x28]
push dword [eax + 4]
push dword [eax]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push ecx
call fcn.00416760
add esp, 0x18
mov dword [esp + 4], eax
jmp 0x436b11
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x60]
test eax, eax
je 0x436770
lea edi, [esp + 0x28]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0x18]
push edi
push ebx
lea edi, [esp + 0x1c]
push edi
push dword [esp + 0x18]
push eax
call fcn.00436d70
add esp, 0x14
test eax, eax
je 0x43683a
mov dword [esp], 0
mov edi, eax
mov ebx, esi
mov esi, dword [esp + 8]
mov edx, dword [ebp + 8]
jmp 0x436b6c
push 0
push 0
push esi
push ebx
push dword [ebp + 8]
mov edi, edx
call fcn.00410160
add esp, 0x14
mov ecx, edi
mov edi, dword [edi]
mov edx, dword [ecx + 4]
mov dword [esp + 4], 0
or edi, edx
jne 0x436b11
mov ecx, dword [ebp + 0x18]
mov dword [esp], 0
and ecx, 1
mov edx, dword [ebp + 0x28]
je 0x436b1b
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
lea ecx, [esp + 0x88]
lea edx, [esp + 0x18]
push ecx
push edx
push dword [esp + 0x14]
push 0
push eax
push dword [ebp + 8]
call fcn.0040fde0
add esp, 0x18
test eax, eax
mov ecx, dword [esp + 0x10]
je 0x43679c
mov dword [esp], 0
mov edi, eax
mov edx, dword [ebp + 8]
jmp 0x436b70
mov eax, dword [ebp + 0x18]
test al, 1
jne 0x4367cf
shl eax, 0x1e
sar eax, 0x1f
and eax, 0x7f2bb75f
mov dword [esp + 4], eax
mov dword [esp], 0
jmp 0x436b1b
mov dword [esp + 4], 0
mov eax, dword [esp + 0x28]
jmp 0x4367b7
lea eax, [esp + 0x50]
push eax
push 0
push dword [esp + 8]
call fcn.00415320
add esp, 0xc
mov dword [esp + 4], eax
test eax, eax
jne 0x436b11
mov eax, edi
sub eax, dword [esp + 0x58]
mov ecx, dword [ebp + 0x20]
sbb ecx, dword [esp + 0x5c]
mov edx, dword [ebp + 8]
jb 0x436472
cmp dword [esp + 0x60], eax
jb 0x436472
mov ecx, dword [esp + 0x54]
add eax, dword [esp + 0x50]
adc ecx, 0
mov edi, dword [ebp + 0x28]
mov dword [edi], eax
mov dword [edi + 4], ecx
cmp dword [ebp + 0x24], 0
je 0x436472
test byte [esp + 0x64], 2
je 0x436472
mov eax, dword [ebp + 0x24]
or byte [eax], 1
jmp 0x436472
mov eax, dword [ebp + 0x18]
test al, 1
jne 0x436864
shl eax, 0x1e
sar eax, 0x1f
and eax, 0x7f2bb75f
mov dword [esp + 4], eax
mov dword [esp], 0
jmp 0x436793
mov eax, dword [ebp + 0x18]
test al, 1
jne 0x4368b2
shl eax, 0x1e
sar eax, 0x1f
and eax, 0x7f2bb75f
mov dword [esp + 4], eax
mov dword [esp], 0
mov ebx, esi
mov esi, dword [esp + 8]
jmp 0x436b18
mov dword [esp + 4], 0
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 0x1c]
mov dword [esi + ecx*4 + 0x28], eax
mov dword [esp + 0x14], 1
mov edx, dword [ebp + 0x28]
mov dword [edx], eax
mov dword [edx + 4], 0
mov dword [esp], 0
jmp 0x436b1b
mov eax, dword [esi + 0x54]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
lea ecx, [esp + 0x88]
lea edx, [esp + 0x18]
push ecx
push edx
push dword [esp + 0x14]
push 0
push eax
push dword [ebp + 8]
call fcn.0040fde0
add esp, 0x18
test eax, eax
jne 0x436320
mov eax, dword [esp + 0x18]
mov dword [esi + 0x58], eax
mov dword [esp + 0x14], 1
jmp 0x4363a1
mov dword [esp + 4], 0
mov eax, dword [esp + 0x28]
mov edx, dword [ebp + 0x28]
mov dword [edx], eax
mov dword [edx + 4], 0
mov dword [esp], 0
jmp 0x43685b
mov dword [esp + 4], 0
mov eax, dword [esp + 0x28]
mov edx, dword [ebp + 0x28]
mov dword [edx], eax
mov dword [edx + 4], 0
mov dword [esp], 0
mov ebx, esi
mov esi, dword [esp + 8]
jmp 0x436b1b
mov esi, dword [esp + 8]
mov eax, dword [esi + 0x58]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
lea ecx, [esp + 0x88]
lea edx, [esp + 0x18]
push ecx
push edx
push dword [esp + 0x14]
push 0
push eax
push dword [ebp + 8]
call fcn.0040fde0
add esp, 0x18
test eax, eax
jne 0x436320
mov eax, dword [esp + 0x18]
mov dword [esi + 0x5c], eax
mov dword [esp + 0x14], 1
jmp 0x43657b
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x5c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
lea ecx, [esp + 0x88]
lea edx, [esp + 0x18]
push ecx
push edx
push dword [esp + 0x14]
push 0
push eax
push dword [ebp + 8]
call fcn.0040fde0
add esp, 0x18
test eax, eax
je 0x436ac8
mov ecx, eax
mov dword [esp], 0
mov ebx, esi
mov esi, edi
mov edx, dword [ebp + 8]
mov eax, dword [esp + 0x10]
mov edi, ecx
mov ecx, eax
jmp 0x436b70
xor eax, eax
xor edx, edx
mov ebx, dword [ebp + 0xc]
mov esi, dword [esp + 8]
mov edi, dword [ebp + 8]
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], esi
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x7c], esi
mov dword [esp + 0x78], ecx
mov dword [esp + 0x80], 1
lea ecx, [esp + 0x70]
lea esi, [esp + 0x20]
push ecx
push esi
mov esi, dword [esp + 0x10]
push dword [esp + 0x14]
push edx
push eax
push edi
call fcn.0040fde0
add esp, 0x18
mov dword [esp + 4], eax
test eax, eax
mov edi, dword [ebp + 0x1c]
jne 0x436b11
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x64]
mov eax, 0xffffffff
shl eax, cl
mov edx, eax
sar edx, 0x1f
and edx, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
and esi, eax
not eax
mov ecx, eax
sar ecx, 0x1f
and ecx, dword [ebp + 0x20]
and eax, edi
add eax, esi
adc ecx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
mov edi, 1
push dword [esp + 0x6c]
push ecx
push eax
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [esp + 0x14]
call fcn.00416760
add esp, 0x18
mov dword [esp + 4], eax
test eax, eax
je 0x436adc
push 0xffffffffffffffff
push dword [esp + 0x28]
push dword [esp + 0x28]
push dword [ebp + 8]
call fcn.00410820
add esp, 0x10
mov ebx, dword [ebp + 0xc]
mov esi, dword [esp + 8]
jmp 0x436b11
mov edx, eax
sar edx, 0x1f
and eax, dword [ebp + 0x1c]
mov dword [esp + 4], eax
and edx, dword [ebp + 0x20]
mov dword [esp + 0x4c], edx
xor ebx, ebx
jmp 0x436a13
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x64]
add ebx, 1
mov eax, 1
shl eax, cl
cmp ebx, eax
jge 0x4364af
mov edi, dword [esp + 4]
add edi, ebx
mov esi, dword [esp + 0x4c]
adc esi, 0
mov eax, edi
xor eax, dword [ebp + 0x1c]
mov edx, esi
xor edx, dword [ebp + 0x20]
or edx, eax
je 0x436a01
xorps xmm0, xmm0
movaps xmmword [esp + 0x30], xmm0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
push esi
push edi
push dword [esp + 8]
call fcn.00415a40
add esp, 0xc
test eax, eax
jne 0x4369fb
lea eax, [esp + 0x30]
push eax
push 0
push dword [esp + 8]
call fcn.00415320
add esp, 0xc
test eax, eax
jne 0x4369fb
sub edi, dword [esp + 0x38]
sbb esi, dword [esp + 0x3c]
jb 0x4369fb
cmp dword [esp + 0x40], edi
jb 0x4369fb
add edi, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
adc edx, 0
mov eax, edi
or eax, edx
je 0x4369fb
sub edi, ebx
sbb edx, 0
mov eax, dword [ebp + 0x1c]
sub eax, dword [esp + 4]
mov ecx, dword [ebp + 0x20]
sbb ecx, dword [esp + 0x4c]
add eax, edi
adc ecx, edx
xor edi, edi
mov edx, eax
or edx, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
jne 0x43699f
jmp 0x4364af
mov eax, dword [esp + 0x18]
mov dword [edi + 0x60], eax
mov dword [esp + 0x14], 1
jmp 0x4365df
mov esi, dword [esp + 8]
push esi
mov ebx, dword [ebp + 0xc]
push ebx
push dword [ebp + 8]
call fcn.0041afb0
add esp, 0xc
mov dword [esp + 4], eax
test eax, eax
jne 0x436b11
mov dword [esp + 0x14], edi
movsd xmm0, qword [esp + 0x20]
mov eax, dword [ebp + 0x28]
movsd qword [eax], xmm0
mov dword [esp + 4], 0
mov dword [esp], 0
mov edx, dword [ebp + 0x28]
mov edi, dword [edx]
mov ecx, dword [edx + 4]
mov edx, edi
or edx, ecx
je 0x436b40
mov eax, dword [esp + 4]
test eax, eax
mov edx, dword [ebp + 8]
jne 0x436b4d
mov eax, dword [ebp + 0x18]
test al, 8
jne 0x436b55
mov ecx, dword [esp + 0x10]
xor edi, edi
jmp 0x436b70
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 4]
jmp 0x436b70
mov ecx, dword [esp + 0x10]
mov edi, eax
jmp 0x436b70
push 0
push 0
push 1
push ecx
push edi
push edx
mov edi, edx
call fcn.0041d3f0
mov edx, edi
add esp, 0x18
mov edi, eax
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x436b88
push ecx
mov ebx, edi
mov edi, edx
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
mov edx, edi
mov edi, ebx
mov ebx, dword [ebp + 0xc]
add esp, 4
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x436ba4
push eax
mov ebx, edi
mov edi, edx
call fcn.00414fa0
mov edx, edi
mov edi, ebx
mov ebx, dword [ebp + 0xc]
add esp, 4
test edi, edi
jne 0x436be0
mov eax, dword [esp + 0x14]
test eax, eax
sete byte [esp + 0xc]
mov ecx, dword [esp]
not cl
xor edi, edi
test byte [esp + 0xc], cl
jne 0x436be0
mov ecx, eax
sar ecx, 0x1f
push ecx
push eax
push esi
push edx
mov edi, edx
call fcn.00418bc0
add esp, 0x10
push esi
push ebx
push edi
call fcn.0041b2f0
add esp, 0xc
mov edi, eax
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
sub edi, dword [esp + 0x38]
sbb esi, dword [esp + 0x3c]
jb 0x436c23
mov edx, 0
cmp dword [esp + 0x40], edi
mov esi, dword [esp + 8]
jb 0x436914
mov edx, dword [esp + 0x34]
add edi, dword [esp + 0x30]
adc edx, 0
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edx
mov eax, edi
jmp 0x436914
xor edx, edx
jmp 0x436910