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

Disassembly:
sub esp, 0x6c
push ebx
mov ebx, dword [0x100b31d4]
push ebp
push esi
mov esi, ebx
mov byte [esp + 0x13], dl
push edi
mov ebp, ecx
mov dword [esp + 0x1c], ebp
mov eax, dword [esi + 0x3f8c]
mov byte [eax + 0xb0], 1
mov edi, dword [esi + 0x3f8c]
cmp byte [edi + 0xb3], 0
jne 0x10046f08
mov ecx, dword [edi + 0xec]
xor edx, edx
mov eax, dword [edi + 0xf4]
push dword [eax + ecx*4 - 4]
mov ecx, ebp
call fcn.10013da0
mov ecx, dword [edi]
mov ebp, eax
add esp, 4
cmp dword [ecx + 0x3fc4], ebp
jne 0x1004687b
push ecx
push dword [esp + 0x20]
mov edx, 0xb
mov ecx, ebp
call fcn.10029fa0
mov ebx, dword [0x100b31d4]
add esp, 8
mov eax, dword [esp + 0x1c]
mov ecx, eax
cmp eax, 0xffffffff
jae 0x1004689c
mov dl, byte [ecx]
test dl, dl
je 0x1004689c
cmp dl, 0x23
jne 0x10046896
cmp byte [ecx + 1], dl
je 0x1004689c
inc ecx
cmp ecx, 0xffffffff
jb 0x10046886
movss xmm1, dword [ebx + 0x3cf4]
xorps xmm0, xmm0
cmp eax, ecx
jne 0x100468b0
xorps xmm2, xmm2
jmp 0x100468f9
movss xmm3, dword [0x100a5f9c]
movaps xmm2, xmm1
push 0
push ecx
push eax
push ecx
mov ecx, dword [ebx + 0x3cf0]
lea eax, [esp + 0x58]
mov dword [esp], 0xbf800000
push eax
call fcn.10039950
movss xmm0, dword [esp + 0x48]
addss xmm0, dword [0x100a5e50]
movss xmm1, dword [esp + 0x4c]
cvttss2si eax, xmm0
xorps xmm0, xmm0
movd xmm2, eax
cvtdq2ps xmm2, xmm2
mov ecx, dword [esp + 0x84]
movss dword [esp + 0x54], xmm1
movss dword [esp + 0x50], xmm2
movss xmm3, dword [ecx + 4]
ucomiss xmm3, xmm0
movss dword [esp + 0x44], xmm3
lahf
test ah, 0x44
jp 0x10046929
movaps xmm3, xmm1
movss dword [esp + 0x44], xmm1
movss xmm1, dword [ecx]
ucomiss xmm1, xmm0
movss dword [esp + 0x30], xmm1
lahf
test ah, 0x44
jp 0x10046945
movaps xmm1, xmm2
movss dword [esp + 0x30], xmm1
movss dword [esp + 0x20], xmm1
lea ecx, [esp + 0x20]
movss xmm1, dword [edi + 0xf8]
movss dword [esp + 0x28], xmm1
movss xmm1, dword [edi + 0xfc]
movss dword [esp + 0x5c], xmm1
addss xmm1, dword [edi + 0x130]
movss dword [esp + 0x24], xmm3
movss dword [esp + 0x48], xmm1
xorps xmm1, xmm1
call fcn.10022f20
mov ebx, dword [esp + 0x80]
mov ecx, ebx
movss xmm2, dword [esp + 0x28]
shr ecx, 1
and cl, 1
mov dword [esp + 0x20], ecx
je 0x100469b3
movss xmm6, dword [edi + 0x20c]
movss xmm1, dword [edi + 0x214]
jmp 0x100469be
movss xmm1, dword [edi + 0x204]
movaps xmm6, xmm2
mov eax, dword [esp + 0x84]
xorps xmm4, xmm4
movss xmm0, dword [eax]
ucomiss xmm0, xmm4
lahf
test ah, 0x44
jnp 0x100469dd
test ebx, 0x1000000
je 0x100469ed
movss xmm5, dword [esp + 0x50]
subss xmm1, xmm6
maxss xmm5, xmm1
jmp 0x100469f3
movss xmm5, dword [esp + 0x30]
movss xmm7, dword [esp + 0x48]
addss xmm5, xmm6
movss dword [esp + 0x60], xmm2
movaps xmm0, xmm7
movss dword [esp + 0x64], xmm7
movss dword [esp + 0x68], xmm6
movss dword [esp + 0x6c], xmm7
movss dword [esp + 0x58], xmm5
movss dword [esp + 0x70], xmm5
addss xmm0, dword [esp + 0x44]
movss dword [esp + 0x48], xmm0
movss dword [esp + 0x5c], xmm0
movss dword [esp + 0x74], xmm0
test ebx, 0x4000000
jne 0x10046ab6
test cl, cl
jne 0x10046a50
movss xmm4, dword [esi + 0x38f4]
movss xmm3, dword [esi + 0x38f8]
movaps xmm0, xmm4
mulss xmm0, dword [0x100a5e1c]
cvttss2si eax, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [0x100a5e1c]
movd xmm2, eax
cvttss2si eax, xmm0
cvtdq2ps xmm2, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm4, xmm2
subss xmm3, xmm0
subss xmm6, xmm2
subss xmm7, xmm0
addss xmm4, xmm5
addss xmm3, dword [esp + 0x48]
movss dword [esp + 0x68], xmm6
movss dword [esp + 0x6c], xmm7
movss dword [esp + 0x70], xmm4
movss dword [esp + 0x74], xmm3
movss xmm0, dword [edi + 0x21c]
movss dword [esp + 0x48], xmm0
movss xmm0, dword [edi + 0x224]
movss dword [esp + 0x30], xmm0
test cl, cl
je 0x10046aee
mov eax, dword [edi + 0x20c]
mov dword [edi + 0x21c], eax
mov eax, dword [edi + 0x214]
mov dword [edi + 0x224], eax
mov eax, ebx
lea ecx, [esp + 0x68]
shr eax, 3
mov edx, ebp
and eax, 0xffffff01
mov dword [esp + 0x44], eax
movzx eax, al
shl eax, 2
push eax
push 0
call fcn.10022c60
add esp, 8
cmp byte [esp + 0x20], 0
je 0x10046b36
movss xmm0, dword [esp + 0x48]
movss dword [edi + 0x21c], xmm0
movss xmm0, dword [esp + 0x30]
movss dword [edi + 0x224], xmm0
test al, al
je 0x10046f08
mov eax, dword [esi + 0x48dc]
shr eax, 2
and eax, 0xffffff01
cmp byte [esp + 0x44], 0
mov dword [esp + 0x48], eax
je 0x10046b60
test al, al
jne 0x10046b60
call fcn.1001fe10
cmp byte [esp + 0x20], 0
je 0x10046b9d
cmp dword [esi + 0x4ce0], 0
je 0x10046b77
call fcn.1003b040
jmp 0x10046b85
cmp dword [edi + 0x198], 0
je 0x10046b85
call fcn.1003bda0
or dword [esi + 0x4910], 0x200
movups xmm0, xmmword [edi + 0x21c]
movups xmmword [esi + 0x4944], xmm0
mov ecx, ebx
shr ecx, 3
and ecx, 0x20000
mov edx, ecx
or edx, 0x100000
test ebx, 0x8000000
cmove edx, ecx
mov ecx, edx
or ecx, 0x10
test ebx, 0x400000
cmove ecx, edx
mov edx, ecx
or edx, 0x80
test ebx, 0x800000
cmove edx, ecx
mov ecx, edx
or ecx, 0x120
test bl, 4
cmove ecx, edx
test bl, 0x10
jne 0x10046bf7
test dword [esi + 0x490c], 0x200
je 0x10046bfd
or ecx, 0x1000
mov al, byte [esp + 0x17]
mov edx, ebp
mov byte [esp + 0x1a], al
lea eax, [esp + 0x1b]
push ecx
push eax
lea eax, [esp + 0x21]
push eax
lea ecx, [esp + 0x74]
call fcn.1003cb40
mov dl, byte [esp + 0x25]
add esp, 0xc
mov byte [esp + 0x18], al
test ebx, 0x200000
je 0x10046c59
cmp dword [esi + 0x4a68], 0
je 0x10046c59
mov ecx, dword [esi + 0x4a6c]
cmp ecx, dword [esi + 0x48d8]
jne 0x10046c59
cmp dword [esi + 0x4a68], ebp
jne 0x10046c59
mov al, 1
mov byte [esp + 0x18], al
mov byte [esp + 0x17], al
jmp 0x10046c71
test al, al
jne 0x10046c71
test dl, dl
je 0x10046d32
test ebx, 0x2000000
je 0x10046d2e
cmp byte [esi + 0x4a93], 0
jne 0x10046d0e
cmp dword [esi + 0x4a38], edi
jne 0x10046d0e
mov ecx, dword [edi + 0x150]
cmp dword [esi + 0x4a80], ecx
jne 0x10046d0e
movss xmm1, dword [edi + 0x108]
lea eax, [esp + 0x30]
movss xmm0, dword [esp + 0x68]
mov edx, ecx
movss xmm2, dword [edi + 0x10c]
subss xmm0, xmm1
push eax
push dword [esi + 0x48d8]
mov ecx, ebp
movss dword [esp + 0x38], xmm0
movss xmm0, dword [esp + 0x74]
subss xmm0, xmm2
movss dword [esp + 0x3c], xmm0
movss xmm0, dword [esp + 0x78]
subss xmm0, xmm1
movss dword [esp + 0x40], xmm0
movss xmm0, dword [esp + 0x7c]
subss xmm0, xmm2
movss dword [esp + 0x44], xmm0
call fcn.10024b60
mov dl, byte [esp + 0x21]
add esp, 8
mov al, byte [esp + 0x18]
mov byte [esi + 0x4a92], 1
test al, al
je 0x10046d1d
mov ecx, ebp
call fcn.10017090
mov dl, byte [esp + 0x19]
mov al, byte [esp + 0x17]
cmp al, byte [esp + 0x1a]
je 0x10046d2e
or dword [esi + 0x4910], 8
test dl, dl
jne 0x10046d39
cmp byte [esp + 0x17], 0
je 0x10046db6
cmp byte [esp + 0x1b], 0
je 0x10046d4b
test dl, dl
je 0x10046d4b
mov ebx, 0x1a
jmp 0x10046d55
xor ebx, ebx
test dl, dl
setne bl
add ebx, 0x18
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x6c]
movss xmm1, dword [0x100a5e58]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x28], eax
mov eax, dword [0x100b31d4]
push 0
push ecx
mov dword [esp + 0x3c], ecx
mov ecx, ebx
mov dword [esp + 0x34], edx
mov edx, dword [eax + 0x3f8c]
mov dword [esp], 0
call fcn.10014b90
mov ecx, dword [edx + 0x270]
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x38]
push eax
call fcn.10035c20
mov ebx, dword [esp + 0x80]
cmp dword [esi + 0x4a3c], ebp
jne 0x10046dce
push 0xa
mov edx, ebp
lea ecx, [esp + 0x6c]
call fcn.10015a90
add esp, 4
cmp byte [esp + 0x20], 0
je 0x10046df3
cmp dword [esi + 0x4ce0], 0
je 0x10046de5
call fcn.1003b100
jmp 0x10046df3
cmp dword [edi + 0x198], 0
je 0x10046df3
call fcn.1003be50
lea eax, [esp + 0x68]
push eax
lea eax, [esi + 0x3950]
push eax
lea eax, [esp + 0x58]
push eax
push 0
push dword [esp + 0x2c]
lea edx, [esp + 0x6c]
lea ecx, [esp + 0x74]
call fcn.10015240
add esp, 0x14
cmp byte [esp + 0x18], 0
je 0x10046ee9
test dword [edi + 0xc], 0x4000000
je 0x10046ee9
test bl, 1
jne 0x10046ee9
test byte [esi + 0x490c], 0x20
jne 0x10046ee9
mov edi, dword [0x100b31d4]
mov ebx, dword [edi + 0x4a14]
sub ebx, 1
mov esi, ebx
js 0x10046ee9
cmp esi, dword [edi + 0x4a08]
jge 0x10046ee9
mov eax, dword [edi + 0x4a1c]
lea ecx, [esi + esi*4]
mov edx, dword [edi + 0x4a10]
shl ecx, 3
mov eax, dword [ecx + eax]
cmp eax, dword [edx + ecx]
jne 0x10046ee9
test esi, esi
jle 0x10046eb7
lea eax, [edx - 0x24]
add eax, ecx
nop
mov edx, dword [eax + 0x28]
mov ecx, dword [eax]
test edx, edx
je 0x10046eb7
test dword [edx + 0xc], 0x10000000
je 0x10046eb7
test ecx, ecx
je 0x10046eb7
test dword [ecx + 0xc], 0x400
jne 0x10046eb7
dec esi
sub eax, 0x28
test esi, esi
jg 0x10046e90
test byte [edi + 0x5e58], 4
je 0x10046ecf
push esi
push ebx
push str._popup__CloseCurrentPopup__d_____d_n
call fcn.10029a40
add esp, 0xc
mov dl, 1
mov ecx, esi
call fcn.100241d0
mov eax, dword [edi + 0x4a38]
test eax, eax
je 0x10046ee9
mov byte [eax + 0x159], 1
cmp byte [esp + 0x44], 0
je 0x10046efc
cmp byte [esp + 0x48], 0
jne 0x10046efc
call fcn.1001fe70
mov al, byte [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x6c
ret