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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov ebp, dword [esp + 0x74]
call fcn.004bf8e0
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x20], eax
mov ebx, eax
mov eax, dword [esp + 0x70]
mov esi, dword [eax + 0xac]
and ebx, 8
je 0x434ef8
mov ebx, esi
not ebx
call fcn.004abc2d
mov eax, dword [esp + 0x70]
test byte [eax + 0xc], 8
jne 0x4352f8
mov ecx, dword [ebp + 0x38]
mov eax, dword [ebp + 0x40]
add eax, ecx
sub eax, 1
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], ecx
mov dword [esp], 0
call fcn.004abe87
sub esp, 0x10
mov eax, dword [ebp + 0x30]
cmp eax, 3
je 0x435328
cmp eax, 0xffffffff
je 0x435440
test eax, eax
je 0x4355a8
cmp eax, 1
je 0x4356e2
cmp eax, 2
je 0x435800
mov dword [esp], 0x51
call fcn.004abc16
sub esp, 4
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 0xac]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x40]
add eax, esi
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x3c]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x38]
add eax, ebx
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x34]
mov dword [esp], eax
call fcn.004ac05c
sub esp, 0x18
mov dword [esp], 0x15
call fcn.004abc16
sub esp, 4
mov eax, dword [esp + 0x70]
mov edi, dword [ebp + 0x18]
test edi, edi
jne 0x4358e0
mov eax, dword [eax + 0xac]
mov ecx, dword [0x5ac6d0]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
add esi, dword [ebp + 0x40]
mov dword [esp + 0xc], esi
mov eax, dword [ebp + 0x3c]
mov dword [esp + 8], eax
add ebx, dword [ebp + 0x38]
mov dword [esp + 4], ebx
mov eax, dword [ebp + 0x34]
mov dword [esp], eax
call fcn.004ac11e
sub esp, 0x1c
mov dword [esp], 0x11
call fcn.004abc16
sub esp, 4
mov edi, dword [ebp + 0x44]
lea eax, [edi + edi]
mov esi, dword [ebp + 0x3c]
sub esi, eax
add edi, dword [ebp + 0x34]
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x70]
test byte [eax + 0xc], 1
je 0x43503c
sub esi, dword [0x5ac6e4]
sub esi, dword [0x5ac6e8]
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x4350d6
mov ecx, dword [ebp + 0x18]
test ecx, ecx
mov dword [esp], eax
jne 0x435910
call fcn.004b578b
sub esp, 4
mov ebx, eax
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
call fcn.004b57c7
sub esp, 4
mov ecx, eax
mov dword [esp + 0xc], 0xff
mov edx, dword [ebp + 0x40]
sub edx, ebx
mov eax, edx
shr eax, 0x1f
add eax, edx
sar eax, 1
add eax, dword [ebp + 0x38]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x44]
add eax, dword [ebp + 0x34]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.004ac2f1
sub esp, 0x10
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
call fcn.004b57a9
sub esp, 4
mov edx, dword [esp + 0x28]
add edx, eax
mov eax, dword [0x5ac6e4]
add eax, edx
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
call fcn.004b57a9
sub esp, 4
sub esi, eax
sub esi, dword [0x5ac6e4]
mov eax, dword [ebp + 4]
mov dword [esp], eax
call fcn.004abb86
sub esp, 4
fild dword [ebp + 0x40]
fsubrp st(1)
fmul dword [0x55b2c8]
fild dword [ebp + 0x38]
faddp st(1)
fstp qword [esp + 0x40]
fld qword [esp + 0x40]
fistp qword [esp + 0x48]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x2c], eax
call fcn.004bfa70
mov eax, dword [ebp + 4]
mov dword [esp], eax
call fcn.004bfbb0
sub esp, 4
call fcn.004bf9a0
mov dword [esp + 4], eax
lea ebx, [esp + 0x3c]
mov dword [esp], ebx
call fcn.004bfa90
sub esp, 8
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.004bd170
sub esp, 4
mov edi, eax
cmp eax, 3
jle 0x4351c4
mov dword [esp + 0x20], esi
fild dword [esp + 0x20]
fstp qword [esp + 0x20]
lea esi, [esi]
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.004ab97f
sub esp, 4
fld qword [esp + 0x20]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x4351c4
sub edi, 1
call fcn.004bfa70
call fcn.004bfa70
call fcn.004bf9a0
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.004bcf90
sub esp, 0xc
mov dword [esp], 0x591db4
call fcn.004bfbb0
sub esp, 4
call fcn.004bf9a0
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.004bfa90
sub esp, 8
cmp edi, 3
jne 0x435158
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x3c]
fild dword [esp + 0x2c]
fild dword [esp + 0x28]
mov edx, dword [ebp + 0x18]
test edx, edx
je 0x4351f0
fxch st(1)
and eax, 0xffffff
or eax, 0x40000000
jmp 0x4351f2
fxch st(1)
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ecx
fstp qword [esp + 8]
fstp qword [esp]
call fcn.004ac349
fstp st(0)
sub esp, 0x18
mov eax, dword [esp + 0x70]
test byte [eax + 0xc], 1
je 0x4352d9
add eax, 0x18
cmp eax, ebp
je 0x4352d9
mov edi, dword [0x5ac6e8]
mov eax, dword [ebp + 0x40]
sub eax, edi
mov esi, eax
shr esi, 0x1f
add esi, eax
sar esi, 1
add esi, dword [ebp + 0x38]
mov ebx, dword [ebp + 0x3c]
add ebx, dword [ebp + 0x34]
sub ebx, edi
sub ebx, dword [ebp + 0x44]
mov eax, dword [esp + 0x70]
cmp dword [eax + 0x68], ebp
jne 0x4352ab
mov eax, dword [eax + 0x6c]
test eax, eax
je 0x4352ab
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x70]
mov ecx, dword [edx + 0x7c]
test ecx, ecx
je 0x43526d
cmp dword [edx + 0x78], ebp
je 0x435937
mov dword [esp + 0x20], eax
call fcn.004bf8e0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], edi
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.00428e20
sub esp, 0x1c
mov edi, dword [0x5ac6e8]
mov eax, dword [ebp + 8]
add ebx, 3
add esi, 3
sub edi, 6
mov edx, dword [ebp + 0x18]
test edx, edx
jne 0x435960
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.00414820
sub esp, 0x10
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.004bfb00
sub esp, 4
xor eax, eax
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret 8
mov eax, dword [ebp + 0x38]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
add eax, dword [ebp + 0x40]
sub eax, 1
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.004abe87
sub esp, 0x10
jmp 0x434f35
mov eax, dword [0x5ac6cc]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.00401000
sub esp, 8
mov edi, eax
movzx edx, al
mov ecx, eax
or cl, 0xff
lea eax, [eax + 0x10]
mov dword [esp + 0x20], edx
cmp edx, 0xef
cmovge eax, ecx
mov ecx, eax
and ecx, 0xff00
mov edx, eax
or dh, 0xff
add eax, 0x1000
cmp ecx, 0xef00
cmovge eax, edx
mov ecx, eax
and ecx, 0xff0000
mov edx, eax
or edx, 0xff0000
add eax, 0x100000
cmp ecx, 0xef0000
cmovge eax, edx
and eax, 0xffffff
or eax, 0xc0000000
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.004ac1de
sub esp, 8
mov eax, edi
and eax, 0xffffff
or eax, 0xc0000000
mov dword [esp + 4], eax
mov dword [esp], 0x3f000000
call fcn.004ac1de
sub esp, 8
mov ecx, edi
xor cl, cl
lea eax, [edi - 0x10]
cmp dword [esp + 0x20], 0x10
cmovle eax, ecx
mov edi, eax
and edi, 0xff00
mov ecx, eax
xor ch, ah
sub eax, 0x1000
cmp edi, 0x1000
cmovle eax, ecx
mov edi, eax
and edi, 0xff0000
mov ecx, eax
and ecx, 0xff00ffff
sub eax, 0x100000
cmp edi, 0x100000
cmovle eax, ecx
and eax, 0xffffff
or eax, 0xc0000000
mov dword [esp + 4], eax
mov dword [esp], 0x3f800000
call fcn.004ac1de
sub esp, 8
jmp 0x434f64
mov eax, dword [ebp + 0xc]
movzx edi, al
mov ecx, eax
or cl, 0xff
add eax, 0x20
cmp edi, 0xdf
cmovge eax, ecx
mov edi, eax
and edi, 0xff00
mov ecx, eax
or ch, 0xff
add eax, 0x2000
cmp edi, 0xdf00
cmovge eax, ecx
mov edi, eax
and edi, 0xff0000
mov ecx, eax
or ecx, 0xff0000
add eax, 0x200000
cmp edi, 0xdf0000
cmovge eax, ecx
and eax, 0xffffff
or eax, 0x80000000
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.004ac1de
sub esp, 8
mov eax, dword [ebp + 0xc]
and eax, 0xffffff
or eax, 0x80000000
mov dword [esp + 4], eax
mov dword [esp], 0x3f000000
call fcn.004ac1de
sub esp, 8
mov eax, dword [ebp + 0xc]
movzx edi, al
mov ecx, eax
xor cl, cl
sub eax, 0x10
cmp edi, 0x10
cmovle eax, ecx
mov edi, eax
and edi, 0xff00
mov ecx, eax
xor ch, ah
sub eax, 0x1000
cmp edi, 0x1000
cmovle eax, ecx
mov edi, eax
and edi, 0xff0000
mov ecx, eax
and ecx, 0xff00ffff
sub eax, 0x100000
cmp edi, 0x100000
cmovle eax, ecx
and eax, 0xffffff
or eax, 0x80000000
mov dword [esp + 4], eax
mov dword [esp], 0x3f19999a
call fcn.004ac1de
sub esp, 8
mov eax, dword [ebp + 0xc]
movzx edi, al
mov ecx, eax
xor cl, cl
sub eax, 0x30
cmp edi, 0x30
cmovle eax, ecx
mov edi, eax
and edi, 0xff00
mov ecx, eax
xor ch, ah
sub eax, 0x3000
cmp edi, 0x3000
cmovle eax, ecx
mov edi, eax
and edi, 0xff0000
mov ecx, eax
and ecx, 0xff00ffff
sub eax, 0x300000
cmp edi, 0x300000
cmovle eax, ecx
and eax, 0xffffff
or eax, 0x80000000
mov dword [esp + 4], eax
mov dword [esp], 0x3f800000
call fcn.004ac1de
sub esp, 8
jmp 0x434f64
mov eax, dword [ebp + 0xc]
movzx edi, al
mov ecx, eax
or cl, 0xff
add eax, 0x20
cmp edi, 0xdf
cmovge eax, ecx
mov edi, eax
and edi, 0xff00
mov ecx, eax
or ch, 0xff
add eax, 0x2000
cmp edi, 0xdf00
cmovge eax, ecx
mov edi, eax
and edi, 0xff0000
mov ecx, eax
or ecx, 0xff0000
add eax, 0x200000
cmp edi, 0xdf0000
cmovge eax, ecx
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.004ac1de
sub esp, 8
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov dword [esp], 0x3f000000
call fcn.004ac1de
sub esp, 8
mov eax, dword [ebp + 0xc]
movzx edi, al
mov ecx, eax
xor cl, cl
sub eax, 0x10
cmp edi, 0x10
cmovle eax, ecx
mov edi, eax
and edi, 0xff00
mov ecx, eax
xor ch, ah
sub eax, 0x1000
cmp edi, 0x1000
cmovle eax, ecx
mov edi, eax
and edi, 0xff0000
mov ecx, eax
and ecx, 0xff00ffff
sub eax, 0x100000
cmp edi, 0x100000
cmovle eax, ecx
mov dword [esp + 4], eax
mov dword [esp], 0x3f19999a
call fcn.004ac1de
sub esp, 8
mov eax, dword [ebp + 0xc]
movzx edi, al
mov ecx, eax
xor cl, cl
sub eax, 0x30
cmp edi, 0x30
cmovle eax, ecx
mov edi, eax
and edi, 0xff00
mov ecx, eax
xor ch, ah
sub eax, 0x3000
cmp edi, 0x3000
cmovle eax, ecx
mov edi, eax
and edi, 0xff0000
mov ecx, eax
and ecx, 0xff00ffff
sub eax, 0x300000
cmp edi, 0x300000
cmovle eax, ecx
mov dword [esp + 4], eax
mov dword [esp], 0x3f800000
call fcn.004ac1de
sub esp, 8
jmp 0x434f64
mov eax, dword [0x5ac6c8]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.00401000
sub esp, 8
mov edx, eax
movzx edi, al
mov ecx, eax
or cl, 0xff
lea eax, [eax + 0x20]
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], edi
cmp edi, 0xdf
cmovge eax, ecx
mov edx, eax
and edx, 0xff00
mov ecx, eax
or ch, 0xff
add eax, 0x2000
cmp edx, 0xdf00
cmovge eax, ecx
mov edx, eax
and edx, 0xff0000
mov ecx, eax
or ecx, 0xff0000
add eax, 0x200000
cmp edx, 0xdf0000
cmovge eax, ecx
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.004ac1de
sub esp, 8
mov edx, dword [esp + 0x28]
mov dword [esp + 4], edx
mov dword [esp], 0x3f000000
call fcn.004ac1de
sub esp, 8
mov edx, dword [esp + 0x28]
mov ecx, edx
xor cl, cl
lea eax, [edx - 0x10]
mov dword [esp + 0x2c], edx
cmp dword [esp + 0x20], 0x10
mov dword [esp + 0x28], ecx
cmovle eax, ecx
mov edx, eax
and edx, 0xff00
mov edi, edx
mov edx, eax
xor dh, ah
sub eax, 0x1000
cmp edi, 0x1000
cmovle eax, edx
mov edx, eax
and edx, 0xff0000
mov edi, edx
mov edx, eax
and edx, 0xff00ffff
sub eax, 0x100000
cmp edi, 0x100000
cmovle eax, edx
mov dword [esp + 4], eax
mov dword [esp], 0x3f19999a
call fcn.004ac1de
sub esp, 8
mov edx, dword [esp + 0x2c]
lea eax, [edx - 0x30]
cmp dword [esp + 0x20], 0x30
cmovle eax, dword [esp + 0x28]
jmp 0x435692
mov eax, dword [0x5ac6cc]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.00401000
sub esp, 8
mov edi, eax
movzx edx, al
mov ecx, eax
or cl, 0xff
lea eax, [eax + 0x10]
mov dword [esp + 0x20], edx
cmp edx, 0xef
cmovge eax, ecx
mov ecx, eax
and ecx, 0xff00
mov edx, eax
or dh, 0xff
add eax, 0x1000
cmp ecx, 0xef00
cmovge eax, edx
mov ecx, eax
and ecx, 0xff0000
mov edx, eax
or edx, 0xff0000
add eax, 0x100000
cmp ecx, 0xef0000
cmovge eax, edx
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.004ac1de
sub esp, 8
mov dword [esp + 4], edi
mov dword [esp], 0x3f000000
call fcn.004ac1de
sub esp, 8
mov ecx, edi
xor cl, cl
lea eax, [edi - 0x10]
cmp dword [esp + 0x20], 0x10
cmovle eax, ecx
mov edi, eax
and edi, 0xff00
mov ecx, eax
xor ch, ah
sub eax, 0x1000
cmp edi, 0x1000
cmovle eax, ecx
mov edi, eax
and edi, 0xff0000
mov ecx, eax
and ecx, 0xff00ffff
sub eax, 0x100000
cmp edi, 0x100000
jmp 0x4356c7
mov ecx, dword [eax + 0xac]
mov eax, dword [0x5ac6d0]
and eax, 0xffffff
or eax, 0x80000000
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], ecx
jmp 0x434fe2
call fcn.004b578b
sub esp, 4
mov ebx, eax
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
call fcn.004b57c7
sub esp, 4
mov ecx, eax
mov dword [esp + 0xc], 0x40
jmp 0x435077
mov dword [esp + 0x20], eax
call fcn.004bf8e0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0xffffffff
jmp 0x43528e
and eax, 0xffffff
or eax, 0x40000000
jmp 0x4352c2