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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59caf8
mov eax, dword fs:[0]
push eax
sub esp, 0x3e0
push ebx
mov eax, dword [0x60ef40]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
call fcn.004261b0
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x80]
movzx ecx, byte [eax + 0x87]
test ecx, ecx
je 0x4718d6
xor al, al
jmp 0x474f91
cmp dword [ebp + 0x10], 0
je 0x4718e2
cmp dword [ebp + 0x14], 0
jge 0x4718f9
push 0xeb8
push 0x5c6900
push str.buf___0__buf_size___0
call fcn.0055a450
add esp, 0xc
mov eax, dword [ebp + 0x1c]
and eax, 0x80
je 0x471925
mov ecx, dword [ebp + 0x1c]
and ecx, 0x100000
je 0x471925
push 0xeb9
push 0x5c6990
push str.___flags__ImGuiInputTextFlags_CallbackHistory____flags__ImGuiInputTextFlags_Multiline__
call fcn.0055a450
add esp, 0xc
mov eax, dword [ebp + 0x1c]
and eax, 0x40
je 0x47194f
mov ecx, dword [ebp + 0x1c]
and ecx, 0x400
je 0x47194f
push 0xeba
push 0x5c6aa8
push str.___flags__ImGuiInputTextFlags_CallbackCompletion____flags__ImGuiInputTextFlags_AllowTabInput__
call fcn.0055a450
add esp, 0xc
mov eax, dword [0x6110a4]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
add ecx, 8
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x18]
add edx, 0x1518
mov dword [ebp - 0x38], edx
mov byte [ebp - 0x11b], 0
mov eax, dword [ebp + 0x1c]
and eax, 0x100000
je 0x471983
mov byte [ebp - 0x72], 1
jmp 0x471987
mov byte [ebp - 0x72], 0
mov cl, byte [ebp - 0x72]
mov byte [ebp - 0x11], cl
mov edx, dword [ebp + 0x1c]
and edx, 0x4000
je 0x47199e
mov byte [ebp - 0x73], 1
jmp 0x4719a2
mov byte [ebp - 0x73], 0
mov al, byte [ebp - 0x73]
mov byte [ebp - 0x19], al
mov ecx, dword [ebp + 0x1c]
and ecx, 0x8000
je 0x4719b9
mov byte [ebp - 0x74], 1
jmp 0x4719bd
mov byte [ebp - 0x74], 0
mov dl, byte [ebp - 0x74]
mov byte [ebp - 0x2c], dl
mov eax, dword [ebp + 0x1c]
and eax, 0x10000
jne 0x4719d3
mov byte [ebp - 0x75], 1
jmp 0x4719d7
mov byte [ebp - 0x75], 0
mov cl, byte [ebp - 0x75]
mov byte [ebp - 0x6c], cl
mov edx, dword [ebp + 0x1c]
and edx, 0x40000
je 0x4719ee
mov byte [ebp - 0x76], 1
jmp 0x4719f2
mov byte [ebp - 0x76], 0
mov al, byte [ebp - 0x76]
mov byte [ebp - 0x3f], al
movzx ecx, byte [ebp - 0x3f]
test ecx, ecx
je 0x471a1d
cmp dword [ebp + 0x20], 0
jne 0x471a1d
push 0xec7
push 0x5c6bd0
push 0x5c6c2c
call fcn.0055a450
add esp, 0xc
movzx eax, byte [ebp - 0x11]
test eax, eax
je 0x471a2a
call fcn.00408c50
push 0
mov ecx, dword [ebp + 8]
push ecx
mov ecx, dword [ebp - 0x80]
call fcn.00411b60
mov dword [ebp - 0x28], eax
push ecx
movss xmm0, dword [0x5aefd4]
movss dword [esp], xmm0
push 1
push 0
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 0x24c]
push eax
call fcn.0040bf30
add esp, 0x14
movzx ecx, byte [ebp - 0x11]
test ecx, ecx
je 0x471a85
mov edx, dword [ebp - 0x18]
movss xmm0, dword [edx + 0x18d8]
mulss xmm0, dword [0x5aef78]
movss dword [ebp - 0x210], xmm0
jmp 0x471a95
movss xmm0, dword [ebp - 0x248]
movss dword [ebp - 0x210], xmm0
mov eax, dword [ebp - 0x38]
movss xmm0, dword [eax + 0x3c]
mulss xmm0, dword [0x5aef50]
addss xmm0, dword [ebp - 0x210]
push ecx
movss dword [esp], xmm0
call fcn.00408830
push ecx
fstp dword [esp]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ecx + 4]
push edx
mov eax, dword [ecx]
push eax
lea ecx, [ebp - 0x234]
push ecx
call fcn.00414a40
add esp, 0x14
movss xmm0, dword [ebp - 0x24c]
comiss xmm0, dword [0x5aeed0]
jbe 0x471b00
mov edx, dword [ebp - 0x38]
movss xmm0, dword [edx + 0x50]
addss xmm0, dword [ebp - 0x24c]
movss dword [ebp - 0x214], xmm0
jmp 0x471b0b
xorps xmm0, xmm0
movss dword [ebp - 0x214], xmm0
push ecx
movss xmm0, dword [ebp - 0x230]
movss dword [esp], xmm0
movss xmm0, dword [ebp - 0x234]
addss xmm0, dword [ebp - 0x214]
push ecx
movss dword [esp], xmm0
lea ecx, [ebp - 0x2ec]
call fcn.00424ee0
lea eax, [ebp - 0x234]
push eax
mov ecx, dword [ebp - 0x80]
add ecx, 0xd0
push ecx
lea edx, [ebp - 0x374]
push edx
call fcn.00469200
add esp, 0xc
push eax
mov eax, dword [ebp - 0x80]
add eax, 0xd0
push eax
lea ecx, [ebp - 0x100]
call fcn.00424d60
lea ecx, [ebp - 0x2ec]
push ecx
lea edx, [ebp - 0x100]
push edx
lea eax, [ebp - 0x3ec]
push eax
call fcn.00469200
add esp, 0xc
push eax
lea ecx, [ebp - 0x100]
push ecx
lea ecx, [ebp - 0x2e0]
call fcn.00424d60
mov edx, dword [ebp - 0x80]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x234]
mov ecx, dword [ebp - 0x230]
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xb0], ecx
movzx edx, byte [ebp - 0x11]
test edx, edx
je 0x471d19
lea eax, [ebp - 0x100]
push eax
mov ecx, dword [ebp - 0x28]
push ecx
lea edx, [ebp - 0x2e0]
push edx
call fcn.00414510
add esp, 0xc
movzx eax, al
test eax, eax
jne 0x471c13
mov ecx, dword [ebp - 0x38]
push ecx
movss xmm0, dword [ecx + 0x3c]
movss dword [esp], xmm0
lea edx, [ebp - 0x2e0]
push edx
call fcn.004144e0
add esp, 8
call fcn.00408de0
xor al, al
jmp 0x474f91
mov eax, 0x10
imul ecx, eax, 7
mov edx, dword [ebp - 0x38]
lea eax, [edx + ecx + 0xbc]
push eax
push 3
call fcn.00408210
add esp, 8
mov ecx, dword [ebp - 0x38]
push ecx
movss xmm0, dword [ecx + 0x40]
movss dword [esp], xmm0
push 6
call fcn.00408310
add esp, 8
mov edx, dword [ebp - 0x38]
push ecx
movss xmm0, dword [edx + 0x44]
movss dword [esp], xmm0
push 7
call fcn.00408310
add esp, 8
mov eax, dword [ebp - 0x38]
add eax, 0x38
push eax
push 1
call fcn.004083b0
add esp, 8
push 0x10004
push 1
lea ecx, [ebp - 0x384]
push ecx
lea ecx, [ebp - 0x100]
call fcn.004262d0
push eax
mov edx, dword [ebp - 0x28]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00414fc0
add esp, 0x14
mov byte [ebp - 0x95], al
push 3
call fcn.00408450
add esp, 4
push 1
call fcn.004082a0
add esp, 4
movzx ecx, byte [ebp - 0x95]
test ecx, ecx
jne 0x471cd1
call fcn.004070b0
call fcn.00408de0
xor al, al
jmp 0x474f91
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x1a10]
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x30]
mov edx, 1
mov ecx, dword [ecx + 0x13c]
shl edx, cl
mov eax, dword [ebp - 0x30]
or edx, dword [eax + 0x144]
mov ecx, dword [ebp - 0x30]
mov dword [ecx + 0x144], edx
mov edx, dword [ebp - 0x30]
movss xmm0, dword [ebp - 0xb4]
subss xmm0, dword [edx + 0x78]
movss dword [ebp - 0xb4], xmm0
jmp 0x471d5e
mov eax, dword [ebp - 0x38]
push ecx
movss xmm0, dword [eax + 0x3c]
movss dword [esp], xmm0
lea ecx, [ebp - 0x2e0]
push ecx
call fcn.004144e0
add esp, 8
lea edx, [ebp - 0x100]
push edx
mov eax, dword [ebp - 0x28]
push eax
lea ecx, [ebp - 0x2e0]
push ecx
call fcn.00414510
add esp, 0xc
movzx edx, al
test edx, edx
jne 0x471d5e
xor al, al
jmp 0x474f91
mov eax, dword [ebp - 0x28]
push eax
lea ecx, [ebp - 0x100]
push ecx
call fcn.00414680
add esp, 8
mov byte [ebp - 0x2b], al
movzx edx, byte [ebp - 0x2b]
test edx, edx
je 0x471d89
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x1e04], 1
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.00488dc0
add esp, 4
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x28]
push edx
mov eax, dword [ebp - 0x80]
push eax
call fcn.004148b0
add esp, 8
mov byte [ebp - 0x39], al
movzx ecx, byte [ebp - 0x39]
test ecx, ecx
je 0x471ddb
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x1c68]
cmp eax, dword [ebp - 0x80]
jne 0x471ddb
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x80]
mov eax, dword [ecx + 0x1c70]
cmp eax, dword [edx + 0x1a0]
jne 0x471ddb
mov byte [ebp - 0x77], 1
jmp 0x471ddf
mov byte [ebp - 0x77], 0
mov cl, byte [ebp - 0x77]
mov byte [ebp - 0x59], cl
movzx edx, byte [ebp - 0x39]
test edx, edx
je 0x471dfb
movzx eax, byte [ebp - 0x59]
test eax, eax
jne 0x471dfb
mov byte [ebp - 0x78], 1
jmp 0x471dff
mov byte [ebp - 0x78], 0
mov cl, byte [ebp - 0x78]
mov byte [ebp - 0x98], cl
movzx edx, byte [ebp - 0x2b]
test edx, edx
je 0x471e2d
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp - 0x20]
movzx eax, byte [edx + ecx + 0x3d0]
test eax, eax
je 0x471e2d
mov byte [ebp - 0x79], 1
jmp 0x471e31
mov byte [ebp - 0x79], 0
mov cl, byte [ebp - 0x79]
mov byte [ebp - 0x5a], cl
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x1a48]
cmp eax, dword [ebp - 0x28]
je 0x471e73
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 0x1b60]
cmp edx, dword [ebp - 0x28]
je 0x471e6d
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x1b54]
cmp ecx, dword [ebp - 0x28]
jne 0x471e73
mov edx, dword [ebp - 0x18]
cmp dword [edx + 0x1b78], 3
jne 0x471e73
mov byte [ebp - 0x7a], 1
jmp 0x471e77
mov byte [ebp - 0x7a], 0
mov al, byte [ebp - 0x7a]
mov byte [ebp - 0x3d], al
movzx ecx, byte [ebp - 0x11]
test ecx, ecx
je 0x471eb6
cmp dword [ebp - 0x10], 0
je 0x471eb6
mov edx, dword [ebp - 0x18]
cmp dword [edx + 0x1a48], 0
jne 0x471eb6
push 1
mov eax, dword [ebp - 0x30]
push eax
call fcn.0046e1c0
add esp, 8
mov ecx, dword [ebp - 0x18]
cmp dword [ecx + 0x1a84], eax
jne 0x471eb6
mov byte [ebp - 0x7b], 1
jmp 0x471eba
mov byte [ebp - 0x7b], 0
mov dl, byte [ebp - 0x7b]
mov byte [ebp - 0x96], dl
movzx eax, byte [ebp - 0x11]
test eax, eax
je 0x471ef0
cmp dword [ebp - 0x10], 0
je 0x471ef0
push 1
mov ecx, dword [ebp - 0x30]
push ecx
call fcn.0046e1c0
add esp, 8
mov edx, dword [ebp - 0x18]
cmp dword [edx + 0x1a48], eax
jne 0x471ef0
mov byte [ebp - 0x55], 1
jmp 0x471ef4
mov byte [ebp - 0x55], 0
mov al, byte [ebp - 0x55]
mov byte [ebp - 0x5c], al
mov byte [ebp - 0x2a], 0
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 0x1a48]
cmp edx, dword [ebp - 0x28]
je 0x471f30
mov eax, dword [ebp + 0x1c]
and eax, 0x10
jne 0x471f1c
movzx ecx, byte [ebp - 0x3d]
test ecx, ecx
je 0x471f30
movzx edx, byte [ebp - 0x11]
test edx, edx
jne 0x471f30
mov dword [ebp - 0x218], 1
jmp 0x471f3a
mov dword [ebp - 0x218], 0
mov al, byte [ebp - 0x218]
mov byte [ebp - 0x3b], al
movzx ecx, byte [ebp - 0x11]
test ecx, ecx
je 0x471f5d
mov edx, dword [ebp - 0x30]
movss xmm0, dword [edx + 0x54]
movss dword [ebp - 0x21c], xmm0
jmp 0x471f6d
movss xmm0, dword [0x5aefc8]
movss dword [ebp - 0x21c], xmm0
movss xmm0, dword [ebp - 0x21c]
movss dword [ebp - 0x54], xmm0
movzx eax, byte [ebp - 0x39]
test eax, eax
jne 0x471fa3
movzx ecx, byte [ebp - 0x5a]
test ecx, ecx
jne 0x471fa3
movzx edx, byte [ebp - 0x96]
test edx, edx
jne 0x471fa3
movzx eax, byte [ebp - 0x3d]
test eax, eax
jne 0x471fa3
mov byte [ebp - 0x56], 0
jmp 0x471fa7
mov byte [ebp - 0x56], 1
mov cl, byte [ebp - 0x56]
mov byte [ebp - 0x3a], cl
movzx edx, byte [ebp - 0x3a]
test edx, edx
jne 0x471fc3
movzx eax, byte [ebp - 0x5c]
test eax, eax
jne 0x471fc3
mov byte [ebp - 0x57], 0
jmp 0x471fc7
mov byte [ebp - 0x57], 1
mov cl, byte [ebp - 0x57]
mov byte [ebp - 0x5b], cl
movzx edx, byte [ebp - 0x5b]
test edx, edx
je 0x472174
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x1a48]
cmp ecx, dword [ebp - 0x28]
je 0x472174
mov edx, dword [ebp - 0x18]
add edx, 0x1ed8
mov dword [ebp - 0x10], edx
mov ecx, dword [ebp - 0x10]
call fcn.00488c30
mov eax, dword [ebp + 0x10]
push eax
call fcn.005583e0
add esp, 4
mov dword [ebp - 0x220], eax
mov ecx, dword [ebp - 0x220]
add ecx, 1
push ecx
mov ecx, dword [ebp - 0x10]
add ecx, 0x24
call fcn.00427a40
mov edx, dword [ebp - 0x220]
add edx, 1
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0x2c]
push edx
call fcn.00536b10
add esp, 0xc
mov dword [ebp - 0x224], 0
mov eax, dword [ebp + 0x14]
add eax, 1
push eax
mov ecx, dword [ebp - 0x10]
add ecx, 0xc
call fcn.00427a80
push 0
mov ecx, dword [ebp - 0x10]
add ecx, 0x18
call fcn.00427a40
mov ecx, dword [ebp - 0x10]
mov byte [ecx + 0x30], 0
lea edx, [ebp - 0x224]
push edx
push 0
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0x14]
push eax
call fcn.00410020
add esp, 0x14
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 4], eax
mov edx, dword [ebp - 0x224]
sub edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x10]
mov dword [eax + 8], edx
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx]
cmp edx, dword [ebp - 0x28]
jne 0x4720b8
mov byte [ebp - 0x58], 1
jmp 0x4720bc
mov byte [ebp - 0x58], 0
mov al, byte [ebp - 0x58]
mov byte [ebp - 0x97], al
movzx ecx, byte [ebp - 0x97]
test ecx, ecx
je 0x4720da
mov ecx, dword [ebp - 0x10]
call fcn.00488c50
jmp 0x472135
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x28]
mov dword [edx], eax
mov ecx, dword [ebp - 0x10]
xorps xmm0, xmm0
movss dword [ecx + 0x38], xmm0
movzx edx, byte [ebp - 0x11]
test edx, edx
jne 0x472101
mov dword [ebp - 0x228], 1
jmp 0x47210b
mov dword [ebp - 0x228], 0
mov eax, dword [ebp - 0x228]
push eax
mov ecx, dword [ebp - 0x10]
add ecx, 0x3c
push ecx
call fcn.0047a420
add esp, 8
movzx edx, byte [ebp - 0x11]
test edx, edx
jne 0x472135
movzx eax, byte [ebp - 0x59]
test eax, eax
je 0x472135
mov byte [ebp - 0x3b], 1
mov ecx, dword [ebp + 0x1c]
and ecx, 0x2000
je 0x472147
mov edx, dword [ebp - 0x10]
mov byte [edx + 0x48], 1
movzx eax, byte [ebp - 0x11]
test eax, eax
jne 0x472174
movzx ecx, byte [ebp - 0x98]
test ecx, ecx
jne 0x472170
movzx edx, byte [ebp - 0x5a]
test edx, edx
je 0x472174
mov eax, dword [ebp - 0x20]
movzx ecx, byte [eax + 0xf4]
test ecx, ecx
je 0x472174
mov byte [ebp - 0x3b], 1
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x1a48]
cmp eax, dword [ebp - 0x28]
je 0x4722af
movzx ecx, byte [ebp - 0x3a]
test ecx, ecx
je 0x4722af
cmp dword [ebp - 0x10], 0
je 0x4721a2
mov edx, dword [ebp - 0x10]
mov eax, dword [edx]
cmp eax, dword [ebp - 0x28]
je 0x4721b9
push 0xf3a
push 0x5c6c48
push str.state__state__ID__id
call fcn.0055a450
add esp, 0xc
mov edx, dword [ebp - 0x80]
push edx
mov eax, dword [ebp - 0x28]
push eax
call fcn.00413df0
add esp, 8
mov ecx, dword [ebp - 0x80]
push ecx
mov edx, dword [ebp - 0x28]
push edx
call fcn.00413f50
add esp, 8
mov eax, dword [ebp - 0x80]
push eax
call fcn.00412410
add esp, 4
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 0x1a5c]
or edx, 3
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x1a5c], edx
movzx ecx, byte [ebp - 0x11]
test ecx, ecx
jne 0x47220d
mov edx, dword [ebp + 0x1c]
and edx, 0x80
je 0x472222
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x1a5c]
or ecx, 0xc
mov edx, dword [ebp - 0x18]
mov dword [edx + 0x1a5c], ecx
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x1a60]
or ecx, 2
mov edx, dword [ebp - 0x18]
mov dword [edx + 0x1a60], ecx
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x1a68]
or ecx, 0x180
mov edx, dword [eax + 0x1a6c]
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x1a68], ecx
mov dword [eax + 0x1a6c], edx
movzx ecx, byte [ebp - 0x11]
test ecx, ecx
je 0x472284
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x1a68]
or eax, 0x60
mov ecx, dword [edx + 0x1a6c]
mov edx, dword [ebp - 0x18]
mov dword [edx + 0x1a68], eax
mov dword [edx + 0x1a6c], ecx
mov eax, dword [ebp + 0x1c]
and eax, 0x440
je 0x4722af
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 0x1a68]
or edx, 1
mov eax, dword [ecx + 0x1a6c]
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x1a68], edx
mov dword [ecx + 0x1a6c], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x1a48]
cmp eax, dword [ebp - 0x28]
jne 0x4722c8
cmp dword [ebp - 0x10], 0
jne 0x4722c8
call fcn.00414090
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 0x1a48]
cmp edx, dword [ebp - 0x28]
jne 0x472301
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp - 0x20]
movzx eax, byte [edx + ecx + 0x3d0]
test eax, eax
je 0x472301
movzx ecx, byte [ebp - 0x5b]
test ecx, ecx
jne 0x472301
movzx edx, byte [ebp - 0x3a]
test edx, edx
jne 0x472301
mov byte [ebp - 0x2a], 1
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x1a48]
cmp ecx, dword [ebp - 0x28]
je 0x472323
cmp dword [ebp - 0x10], 0
je 0x47231d
movzx edx, byte [ebp - 0x5c]
test edx, edx
jne 0x472323
mov byte [ebp - 0x5d], 0
jmp 0x472327
mov byte [ebp - 0x5d], 1
mov al, byte [ebp - 0x5d]
mov byte [ebp - 0x22], al
cmp dword [ebp - 0x10], 0
je 0x47235a
mov ecx, dword [ebp - 0x10]
call fcn.00488ed0
movzx ecx, al
test ecx, ecx
je 0x47235a
xor edx, edx
jne 0x47234e
movzx eax, byte [ebp - 0x22]
test eax, eax
je 0x47235a
mov dword [ebp - 0x22c], 1
jmp 0x472364
mov dword [ebp - 0x22c], 0
mov cl, byte [ebp - 0x22c]
mov byte [ebp - 0x21], cl
mov byte [ebp - 0x41], 0
mov byte [ebp - 0x40], 0
movzx edx, byte [ebp - 0x19]
test edx, edx
je 0x47240b
cmp dword [ebp - 0x10], 0
je 0x47240b
movzx eax, byte [ebp - 0x22]
test eax, eax
jne 0x47239b
movzx ecx, byte [ebp - 0x21]
test ecx, ecx
je 0x47240b
mov dword [ebp - 0x238], 0
mov edx, dword [ebp + 0x14]
add edx, 1
push edx
mov ecx, dword [ebp - 0x10]
add ecx, 0xc
call fcn.00427a80
lea eax, [ebp - 0x238]
push eax
push 0
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0xc]
push eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0x14]
push edx
call fcn.00410020
add esp, 0x14
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 4], eax
mov edx, dword [ebp - 0x238]
sub edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x10]
mov dword [eax + 8], edx
mov ecx, dword [ebp - 0x10]
call fcn.00488c50
movzx ebx, byte [ebp - 0x21]
mov ecx, dword [ebp - 0x10]
call fcn.00488ed0
movzx ecx, al
and ebx, ecx
mov byte [ebp - 0x21], bl
movzx edx, byte [ebp - 0x22]
test edx, edx
jne 0x472429
movzx eax, byte [ebp - 0x21]
test eax, eax
jne 0x472429
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 0x1a48]
cmp edx, dword [ebp - 0x28]
jne 0x472448
movzx eax, byte [ebp - 0x19]
test eax, eax
jne 0x472448
cmp dword [ebp - 0x10], 0
je 0x472448
mov ecx, dword [ebp - 0x10]
movzx edx, byte [ecx + 0x30]
test edx, edx
je 0x472448
mov byte [ebp - 0x5e], 1
jmp 0x47244c
mov byte [ebp - 0x5e], 0
mov al, byte [ebp - 0x5e]
mov byte [ebp - 0x71], al
cmp dword [ebp + 0xc], 0
je 0x472493
movzx ecx, byte [ebp - 0x71]
test ecx, ecx
je 0x47246e
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0x20]
mov dword [ebp - 0x23c], eax
jmp 0x472477
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x23c], ecx
mov edx, 1
imul eax, edx, 0
mov ecx, dword [ebp - 0x23c]
movsx edx, byte [ecx + eax]
test edx, edx
jne 0x472493
mov byte [ebp - 0x5f], 1
jmp 0x472497
mov byte [ebp - 0x5f], 0
mov al, byte [ebp - 0x5f]
mov byte [ebp - 0x23], al
movzx ecx, byte [ebp - 0x2c]
test ecx, ecx
je 0x4725c6
movzx edx, byte [ebp - 0x23]
test edx, edx
jne 0x4725c6
push 0x2a
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x18d4]
call fcn.00447c00
mov dword [ebp - 0x16c], eax
mov ecx, dword [ebp - 0x18]
add ecx, 0x2d54
mov dword [ebp - 0x84], ecx
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x18d4]
mov ecx, dword [ebp - 0x84]
mov edx, dword [eax + 0x10]
mov dword [ecx + 0x10], edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x18d4]
mov edx, dword [ebp - 0x84]
mov eax, dword [ecx + 0x40]
mov dword [edx + 0x40], eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 0x18d4]
mov eax, dword [ebp - 0x84]
mov ecx, dword [edx + 0x44]
mov dword [eax + 0x44], ecx
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x18d4]
mov ecx, dword [ebp - 0x84]
mov edx, dword [eax + 0x48]
mov dword [ecx + 0x48], edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x18d4]
mov edx, dword [ebp - 0x84]
mov eax, dword [ecx + 0x30]
mov dword [edx + 0x30], eax
mov ecx, dword [ebp - 0x84]
mov edx, dword [ebp - 0x16c]
mov dword [ecx + 0x2c], edx
mov eax, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x16c]
mov edx, dword [ecx + 4]
mov dword [eax + 0xc], edx
mov ecx, dword [ebp - 0x84]
add ecx, 0x20
call fcn.00426e30
movzx eax, al
test eax, eax
je 0x4725a0
mov ecx, dword [ebp - 0x84]
call fcn.00426e30
movzx ecx, al
test ecx, ecx
je 0x4725a0
mov ecx, dword [ebp - 0x84]
add ecx, 0x14
call fcn.00426e30
movzx edx, al
test edx, edx
jne 0x4725b7
push 0xf76
push 0x5c6cd8
push str.password_font__Glyphs.empty____password_font__IndexAdvanceX.empty____password_font__IndexLookup.empty__
call fcn.0055a450
add esp, 0xc
mov ecx, dword [ebp - 0x84]
push ecx
call fcn.004080a0
add esp, 4
mov dword [ebp - 0x118], 0
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x1a48]
cmp eax, dword [ebp - 0x28]
jne 0x472a9d
cmp dword [ebp - 0x10], 0
jne 0x4725ff
push 0xf7e
push 0x5c6e10
push 0x5c6e6c
call fcn.0055a450
add esp, 0xc
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 8]
mov dword [ebp - 0x118], eax
mov ecx, dword [ebp - 0x10]
mov byte [ecx + 0xe6e], 0
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 0x14]
mov dword [edx + 0x34], eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp + 0x1c]
mov dword [ecx + 0xe70], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + 0x20]
mov dword [eax + 0xe74], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 0x24]
mov dword [edx + 0xe78], eax
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [ebp - 0x20]
movzx ecx, byte [eax + edx + 0xe4]
test ecx, ecx
jne 0x472665
mov dword [ebp - 0x170], 1
jmp 0x47266f
mov dword [ebp - 0x170], 0
mov edx, dword [ebp - 0x18]
mov al, byte [ebp - 0x170]
mov byte [edx + 0x1a55], al
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x3070], 1
mov edx, dword [ebp - 0x20]
movss xmm0, dword [edx + 0xdc]
subss xmm0, dword [ebp - 0x100]
mov eax, dword [ebp - 0x38]
subss xmm0, dword [eax + 0x38]
mov ecx, dword [ebp - 0x10]
addss xmm0, dword [ecx + 0x38]
movss dword [ebp - 0x17c], xmm0
movzx edx, byte [ebp - 0x11]
test edx, edx
je 0x4726e6
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x30]
movss xmm0, dword [eax + 0xe0]
subss xmm0, dword [ecx + 0xd4]
mov edx, dword [ebp - 0x38]
subss xmm0, dword [edx + 0x3c]
movss dword [ebp - 0x174], xmm0
jmp 0x472701
mov eax, dword [ebp - 0x18]
movss xmm0, dword [eax + 0x18d8]
mulss xmm0, dword [0x5aef14]
movss dword [ebp - 0x174], xmm0
movss xmm0, dword [ebp - 0x174]
movss dword [ebp - 0x178], xmm0
mov ecx, dword [ebp - 0x20]
mov dl, byte [ecx + 0xa9]
mov byte [ebp - 0x3c], dl
movzx eax, byte [ebp - 0x3b]
test eax, eax
jne 0x47274c
movzx ecx, byte [ebp - 0x2b]
test ecx, ecx
je 0x472763
movzx edx, byte [ebp - 0x3c]
test edx, edx
jne 0x472763
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp - 0x20]
movzx eax, byte [edx + ecx + 0x3d5]
test eax, eax
je 0x472763
mov ecx, dword [ebp - 0x10]
call fcn.00488fd0
mov ecx, dword [ebp - 0x10]
mov byte [ecx + 0xe6d], 1
jmp 0x4728a8
movzx edx, byte [ebp - 0x2b]
test edx, edx
je 0x4727a9
movzx eax, byte [ebp - 0x3c]
test eax, eax
je 0x4727a9
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [ebp - 0x20]
movzx ecx, byte [eax + edx + 0x3d5]
test ecx, ecx
je 0x4727a9
push 0x20000c
mov ecx, dword [ebp - 0x10]
call fcn.00469b80
push 0x60000d
mov ecx, dword [ebp - 0x10]
call fcn.00469b80
jmp 0x4728a8
mov edx, 1
imul eax, edx, 0
mov ecx, dword [ebp - 0x20]
movzx edx, byte [ecx + eax + 0x3d0]
test edx, edx
je 0x472812
mov eax, dword [ebp - 0x10]
movzx ecx, byte [eax + 0xe6d]
test ecx, ecx
jne 0x472812
movzx edx, byte [ebp - 0x2b]
test edx, edx
je 0x47280d
push ecx
movss xmm0, dword [ebp - 0x178]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [ebp - 0x17c]
movss dword [esp], xmm0
mov eax, dword [ebp - 0x10]
add eax, 0x3c
push eax
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.004785d0
add esp, 0x10
mov ecx, dword [ebp - 0x10]
call fcn.00488c30
jmp 0x4728a8
mov edx, 1
imul eax, edx, 0
mov ecx, dword [ebp - 0x20]
movzx edx, byte [ecx + eax + 0xe4]
test edx, edx
je 0x4728a8
mov eax, dword [ebp - 0x10]
movzx ecx, byte [eax + 0xe6d]
test ecx, ecx
jne 0x4728a8
mov edx, dword [ebp - 0x20]
movss xmm0, dword [edx + 0x36c]
ucomiss xmm0, dword [0x5aeed0]
lahf
test ah, 0x44
jp 0x472867
mov eax, dword [ebp - 0x20]
movss xmm0, dword [eax + 0x370]
ucomiss xmm0, dword [0x5aeed0]
lahf
test ah, 0x44
jnp 0x4728a8
push ecx
movss xmm0, dword [ebp - 0x178]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [ebp - 0x17c]
movss dword [esp], xmm0
mov ecx, dword [ebp - 0x10]
add ecx, 0x3c
push ecx
mov edx, dword [ebp - 0x10]
push edx
call fcn.00478660
add esp, 0x10
mov ecx, dword [ebp - 0x10]
call fcn.00488c30
mov eax, dword [ebp - 0x10]
mov byte [eax + 0xe6c], 1
mov ecx, dword [ebp - 0x10]
movzx edx, byte [ecx + 0xe6d]
test edx, edx
je 0x4728d7
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp - 0x20]
movzx eax, byte [edx + ecx + 0xe4]
test eax, eax
jne 0x4728d7
mov ecx, dword [ebp - 0x10]
mov byte [ecx + 0xe6d], 0
mov edx, dword [ebp - 0x20]
movzx eax, byte [edx + 0xf4]
test eax, eax
je 0x4728f3
mov ecx, dword [ebp - 0x20]
movzx edx, byte [ecx + 0xf6]
test edx, edx
je 0x47290f
movzx eax, byte [ebp - 0x3c]
test eax, eax
je 0x472909
mov ecx, dword [ebp - 0x20]
movzx edx, byte [ecx + 0xf7]
test edx, edx
jne 0x47290f
mov byte [ebp - 0x60], 0
jmp 0x472913
mov byte [ebp - 0x60], 1
mov al, byte [ebp - 0x60]
mov byte [ebp - 0x61], al
mov ecx, dword [ebp + 0x1c]
and ecx, 0x400
je 0x4729c0
push 1
push 0
call fcn.004265e0
add esp, 8
movzx edx, al
test edx, edx
je 0x4729c0
movzx eax, byte [ebp - 0x61]
test eax, eax
jne 0x4729c0
mov ecx, dword [ebp - 0x20]
movzx edx, byte [ecx + 0xf5]
test edx, edx
jne 0x4729c0
movzx eax, byte [ebp - 0x19]
test eax, eax
jne 0x4729c0
mov ecx, 9
mov word [ebp - 0x11a], cx
lea edx, [ebp - 0x11a]
push edx
mov ecx, dword [ebp - 0x20]
add ecx, 0x1500
call fcn.004898f0
movzx eax, al
test eax, eax
jne 0x4729c0
mov dword [ebp - 0x180], 9
mov ecx, dword [ebp + 0x24]
push ecx
mov edx, dword [ebp + 0x20]
push edx
mov eax, dword [ebp + 0x1c]
push eax
lea ecx, [ebp - 0x180]
push ecx
call fcn.004768e0
add esp, 0x10
movzx edx, al
test edx, edx
je 0x4729c0
mov eax, dword [ebp - 0x180]
push eax
mov ecx, dword [ebp - 0x10]
call fcn.00469b80
mov ecx, dword [ebp - 0x20]
cmp dword [ecx + 0x1500], 0
jle 0x472a9d
movzx edx, byte [ebp - 0x61]
test edx, edx
jne 0x472a8d
movzx eax, byte [ebp - 0x19]
test eax, eax
jne 0x472a8d
movzx ecx, byte [ebp - 0x3d]
test ecx, ecx
jne 0x472a8d
mov dword [ebp - 0xd4], 0
jmp 0x472a0f
mov edx, dword [ebp - 0xd4]
add edx, 1
mov dword [ebp - 0xd4], edx
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0xd4]
cmp ecx, dword [eax + 0x1500]
jge 0x472a8d
mov edx, dword [ebp - 0xd4]
push edx
mov ecx, dword [ebp - 0x20]
add ecx, 0x1500
call fcn.004255b0
movzx eax, word [eax]
mov dword [ebp - 0x104], eax
cmp dword [ebp - 0x104], 9
jne 0x472a57
mov ecx, dword [ebp - 0x20]
movzx edx, byte [ecx + 0xf5]
test edx, edx
je 0x472a57
jmp 0x472a00
mov eax, dword [ebp + 0x24]
push eax
mov ecx, dword [ebp + 0x20]
push ecx
mov edx, dword [ebp + 0x1c]
push edx
lea eax, [ebp - 0x104]
push eax
call fcn.004768e0
add esp, 0x10
movzx ecx, al
test ecx, ecx
je 0x472a88
mov edx, dword [ebp - 0x104]
push edx
mov ecx, dword [ebp - 0x10]
call fcn.00469b80
jmp 0x472a00
push 0
mov ecx, dword [ebp - 0x20]
add ecx, 0x1500
call fcn.00427a80
mov byte [ebp - 0x33], 0
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x1a48]
cmp ecx, dword [ebp - 0x28]
jne 0x473744
mov edx, dword [ebp - 0x18]
movzx eax, byte [edx + 0x1a54]
test eax, eax
jne 0x473744
movzx ecx, byte [ebp - 0x2a]
test ecx, ecx
jne 0x473744
cmp dword [ebp - 0x10], 0
jne 0x472aee
push 0xfcf
push 0x5c6e88
push 0x5c6ee4
call fcn.0055a450
add esp, 0xc
call fcn.00416ec0
mov ecx, dword [ebp - 0x20]
cmp dword [ecx + 0x374], eax
jne 0x472b07
mov edx, str.Mismatching_io.KeyCtrl_io.KeyShift_io.KeyAlt_io.KeySuper_vs_io.KeyMods
test edx, edx
jne 0x472b1e
push 0xfd0
push 0x5c6f48
push str.io.KeyMods__GetMergedKeyModFlags_____Mismatching_io.KeyCtrl_io.KeyShift_io.KeyAlt_io.KeySuper_vs_io.KeyMods_
call fcn.0055a450
add esp, 0xc
push 1
mov ecx, dword [ebp - 0x38]
movss xmm0, dword [ebp - 0xb0]
subss xmm0, dword [ecx + 0x3c]
mov edx, dword [ebp - 0x18]
divss xmm0, dword [edx + 0x18d8]
cvttss2si eax, xmm0
push eax
call fcn.00477d50
add esp, 8
mov dword [ebp - 0x108], eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x108]
mov dword [ecx + 0x4c], edx
mov eax, dword [ebp - 0x20]
movzx ecx, byte [eax + 0xf5]
test ecx, ecx
je 0x472b74
mov dword [ebp - 0x184], 0x400000
jmp 0x472b7e
mov dword [ebp - 0x184], 0
mov edx, dword [ebp - 0x184]
mov dword [ebp - 0x48], edx
mov eax, dword [ebp - 0x20]
mov cl, byte [eax + 0xa9]
mov byte [ebp - 0x32], cl
movzx edx, byte [ebp - 0x32]
test edx, edx
je 0x472bad
mov eax, dword [ebp - 0x20]
cmp dword [eax + 0x374], 0xa
jne 0x472bad
mov byte [ebp - 0x62], 1
jmp 0x472bb1
mov byte [ebp - 0x62], 0
mov cl, byte [ebp - 0x62]
mov byte [ebp - 0x9a], cl
movzx edx, byte [ebp - 0x32]
test edx, edx
je 0x472bd0
mov eax, dword [ebp - 0x20]
mov cl, byte [eax + 0xf6]
mov byte [ebp - 0x63], cl
jmp 0x472bdc
mov edx, dword [ebp - 0x20]
mov al, byte [edx + 0xf4]
mov byte [ebp - 0x63], al
mov cl, byte [ebp - 0x63]
mov byte [ebp - 0x3e], cl
movzx edx, byte [ebp - 0x32]
test edx, edx
je 0x472c1a
mov eax, dword [ebp - 0x20]
movzx ecx, byte [eax + 0xf7]
test ecx, ecx
je 0x472c1a
mov edx, dword [ebp - 0x20]
movzx eax, byte [edx + 0xf4]
test eax, eax
jne 0x472c1a
mov ecx, dword [ebp - 0x20]
movzx edx, byte [ecx + 0xf6]
test edx, edx
jne 0x472c1a
mov byte [ebp - 0x64], 1
jmp 0x472c1e
mov byte [ebp - 0x64], 0
mov al, byte [ebp - 0x64]
mov byte [ebp - 0x31], al
mov ecx, dword [ebp - 0x20]
cmp dword [ecx + 0x374], 1
jne 0x472c36
mov byte [ebp - 0x65], 1
jmp 0x472c3a
mov byte [ebp - 0x65], 0
mov dl, byte [ebp - 0x65]
mov byte [ebp - 0x99], dl
mov eax, dword [ebp - 0x20]
cmp dword [eax + 0x374], 2
jne 0x472c55
mov byte [ebp - 0x66], 1
jmp 0x472c59
mov byte [ebp - 0x66], 0
mov cl, byte [ebp - 0x66]
mov byte [ebp - 0x69], cl
mov edx, dword [ebp - 0x18]
movzx eax, byte [edx + 0xb1]
test eax, eax
je 0x472c9d
mov ecx, dword [ebp - 0x20]
cmp dword [ecx + 0x374], 8
jne 0x472c85
mov dword [ebp - 0x188], 1
jmp 0x472c8f
mov dword [ebp - 0x188], 0
mov edx, dword [ebp - 0x188]
mov dword [ebp - 0x190], edx
jmp 0x472ccb
mov eax, dword [ebp - 0x20]
cmp dword [eax + 0x374], 1
jne 0x472cb5
mov dword [ebp - 0x18c], 1
jmp 0x472cbf
mov dword [ebp - 0x18c], 0
mov ecx, dword [ebp - 0x18c]
mov dword [ebp - 0x190], ecx
mov dl, byte [ebp - 0x190]
mov byte [ebp - 0x29], dl
movzx eax, byte [ebp - 0x29]
test eax, eax
je 0x472cef
push 1
push 0x13
call fcn.004265e0
add esp, 8
movzx ecx, al
test ecx, ecx
jne 0x472d0a
movzx edx, byte [ebp - 0x69]
test edx, edx
je 0x472d37
push 1
push 0xa
call fcn.004265e0
add esp, 8
movzx eax, al
test eax, eax
je 0x472d37
movzx ecx, byte [ebp - 0x19]
test ecx, ecx
jne 0x472d37
movzx edx, byte [ebp - 0x2c]
test edx, edx
jne 0x472d37
movzx eax, byte [ebp - 0x11]
test eax, eax
je 0x472d31
mov ecx, dword [ebp - 0x10]
call fcn.00488ed0
movzx ecx, al
test ecx, ecx
je 0x472d37
mov byte [ebp - 0x67], 1
jmp 0x472d3b
mov byte [ebp - 0x67], 0
mov dl, byte [ebp - 0x67]
mov byte [ebp - 0x70], dl
movzx eax, byte [ebp - 0x29]
test eax, eax
je 0x472d5c
push 1
push 0x11
call fcn.004265e0
add esp, 8
movzx ecx, al
test ecx, ecx
jne 0x472d7a
movzx edx, byte [ebp - 0x99]
test edx, edx
je 0x472d9f
push 1
push 9
call fcn.004265e0
add esp, 8
movzx eax, al
test eax, eax
je 0x472d9f
movzx ecx, byte [ebp - 0x2c]
test ecx, ecx
jne 0x472d9f
movzx edx, byte [ebp - 0x11]
test edx, edx
je 0x472d99
mov ecx, dword [ebp - 0x10]
call fcn.00488ed0
movzx eax, al
test eax, eax
je 0x472d9f
mov byte [ebp - 0x68], 1
jmp 0x472da3
mov byte [ebp - 0x68], 0
mov cl, byte [ebp - 0x68]
mov byte [ebp - 0x9c], cl
movzx edx, byte [ebp - 0x29]
test edx, edx
je 0x472dc7
push 1
push 0x12
call fcn.004265e0
add esp, 8
movzx eax, al
test eax, eax
jne 0x472de2
movzx ecx, byte [ebp - 0x69]
test ecx, ecx
je 0x472df0
push 1
push 9
call fcn.004265e0
add esp, 8
movzx edx, al
test edx, edx
je 0x472df0
movzx eax, byte [ebp - 0x19]
test eax, eax
jne 0x472df0
mov byte [ebp - 0x6a], 1
jmp 0x472df4
mov byte [ebp - 0x6a], 0
mov cl, byte [ebp - 0x6a]
mov byte [ebp - 0x9d], cl
movzx edx, byte [ebp - 0x29]
test edx, edx
je 0x472e2e
push 1
push 0x15
call fcn.004265e0
add esp, 8
movzx eax, al
test eax, eax
je 0x472e2e
movzx ecx, byte [ebp - 0x19]
test ecx, ecx
jne 0x472e2e
movzx edx, byte [ebp - 0x6c]
test edx, edx
je 0x472e2e
mov byte [ebp - 0x6b], 1
jmp 0x472e32
mov byte [ebp - 0x6b], 0
mov al, byte [ebp - 0x6b]
mov byte [ebp - 0x6f], al
movzx ecx, byte [ebp - 0x29]
test ecx, ecx
je 0x472e53
push 1
push 0x14
call fcn.004265e0
add esp, 8
movzx edx, al
test edx, edx
jne 0x472e71
movzx eax, byte [ebp - 0x9a]
test eax, eax
je 0x472e87
push 1
push 0x15
call fcn.004265e0
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x472e87
movzx edx, byte [ebp - 0x19]
test edx, edx
jne 0x472e87
movzx eax, byte [ebp - 0x6c]
test eax, eax
je 0x472e87
mov byte [ebp - 0x6d], 1
jmp 0x472e8b
mov byte [ebp - 0x6d], 0
mov cl, byte [ebp - 0x6d]
mov byte [ebp - 0x9b], cl
push 1
push 1
call fcn.004265e0
add esp, 8
movzx edx, al
test edx, edx
je 0x472efc
movzx eax, byte [ebp - 0x31]
test eax, eax
je 0x472ebb
mov dword [ebp - 0x198], 0x200004
jmp 0x472ee5
movzx ecx, byte [ebp - 0x3e]
test ecx, ecx
je 0x472ecf
mov dword [ebp - 0x194], 0x20000c
jmp 0x472ed9
mov dword [ebp - 0x194], 0x200000
mov edx, dword [ebp - 0x194]
mov dword [ebp - 0x198], edx
mov eax, dword [ebp - 0x198]
or eax, dword [ebp - 0x48]
push eax
mov ecx, dword [ebp - 0x10]
call fcn.00469b80
jmp 0x473706
push 1
push 2
call fcn.004265e0
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x472f64
movzx edx, byte [ebp - 0x31]
test edx, edx
je 0x472f23
mov dword [ebp - 0x1a0], 0x200005
jmp 0x472f4d
movzx eax, byte [ebp - 0x3e]
test eax, eax
je 0x472f37
mov dword [ebp - 0x19c], 0x20000d
jmp 0x472f41
mov dword [ebp - 0x19c], 0x200001
mov ecx, dword [ebp - 0x19c]
mov dword [ebp - 0x1a0], ecx
mov edx, dword [ebp - 0x1a0]
or edx, dword [ebp - 0x48]
push edx
mov ecx, dword [ebp - 0x10]
call fcn.00469b80
jmp 0x473706
push 1
push 3
call fcn.004265e0
add esp, 8
movzx eax, al
test eax, eax
je 0x473001
movzx ecx, byte [ebp - 0x11]
test ecx, ecx
je 0x473001
mov edx, dword [ebp - 0x20]
movzx eax, byte [edx + 0xf4]
test eax, eax
je 0x472fcc
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x18]
movss xmm0, dword [ecx + 0x54]
subss xmm0, dword [edx + 0x18d8]
push ecx
movss dword [esp], xmm0
call fcn.00469850
add esp, 4
fstp dword [esp]
mov eax, dword [ebp - 0x30]
push eax
call fcn.00413a00
add esp, 8
jmp 0x472ffc
movzx ecx, byte [ebp - 0x31]
test ecx, ecx
je 0x472fe0
mov dword [ebp - 0x1a4], 0x200006
jmp 0x472fea
mov dword [ebp - 0x1a4], 0x200002
mov edx, dword [ebp - 0x1a4]
or edx, dword [ebp - 0x48]
push edx
mov ecx, dword [ebp - 0x10]
call fcn.00469b80
jmp 0x473706
push 1
push 4
call fcn.004265e0
add esp, 8
movzx eax, al
test eax, eax
je 0x47309e
movzx ecx, byte [ebp - 0x11]
test ecx, ecx
je 0x47309e
mov edx, dword [ebp - 0x20]
movzx eax, byte [edx + 0xf4]
test eax, eax
je 0x473069
call fcn.00407e00
push ecx
fstp dword [esp]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x18]
movss xmm0, dword [ecx + 0x54]
addss xmm0, dword [edx + 0x18d8]
push ecx
movss dword [esp], xmm0
call fcn.00469820
add esp, 4
fstp dword [esp]
mov eax, dword [ebp - 0x30]
push eax
call fcn.00413a00
add esp, 8
jmp 0x473099
movzx ecx, byte [ebp - 0x31]
test ecx, ecx
je 0x47307d
mov dword [ebp - 0x1a8], 0x200007
jmp 0x473087
mov dword [ebp - 0x1a8], 0x200003
mov edx, dword [ebp - 0x1a8]
or edx, dword [ebp - 0x48]
push edx
mov ecx, dword [ebp - 0x10]
call fcn.00469b80
jmp 0x473706
push 1
push 5
call fcn.004265e0
add esp, 8
movzx eax, al
test eax, eax
je 0x4730f1
movzx ecx, byte [ebp - 0x11]
test ecx, ecx
je 0x4730f1
mov edx, dword [ebp - 0x48]
or edx, 0x20000e
push edx
mov ecx, dword [ebp - 0x10]
call fcn.00469b80
cvtsi2ss xmm0, dword [ebp - 0x108]
mov eax, dword [ebp - 0x18]
mulss xmm0, dword [eax + 0x18d8]
movss xmm1, dword [ebp - 0x54]
subss xmm1, xmm0
movss dword [ebp - 0x54], xmm1
jmp 0x473706
push 1
push 6
call fcn.004265e0
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x47313f
movzx edx, byte [ebp - 0x11]
test edx, edx
je 0x47313f
mov eax, dword [ebp - 0x48]
or eax, 0x20000f
push eax
mov ecx, dword [ebp - 0x10]
call fcn.00469b80
cvtsi2ss xmm0, dword [ebp - 0x108]
mov ecx, dword [ebp - 0x18]
mulss xmm0, dword [ecx + 0x18d8]
addss xmm0, dword [ebp - 0x54]
movss dword [ebp - 0x54], xmm0
jmp 0x473706
push 1
push 7
call fcn.004265e0
add esp, 8
movzx edx, al
test edx, edx
je 0x473193
mov eax, dword [ebp - 0x20]
movzx ecx, byte [eax + 0xf4]
test ecx, ecx
je 0x473171
mov edx, dword [ebp - 0x48]
or edx, 0x200006
mov dword [ebp - 0x1ac], edx
jmp 0x47317f
mov eax, dword [ebp - 0x48]
or eax, 0x200004
mov dword [ebp - 0x1ac], eax
mov ecx, dword [ebp - 0x1ac]
push ecx
mov ecx, dword [ebp - 0x10]
call fcn.00469b80
jmp 0x473706
push 1
push 8
call fcn.004265e0
add esp, 8
movzx edx, al
test edx, edx
je 0x4731e7
mov eax, dword [ebp - 0x20]
movzx ecx, byte [eax + 0xf4]
test ecx, ecx
je 0x4731c5
mov edx, dword [ebp - 0x48]
or edx, 0x200007
mov dword [ebp - 0x1b0], edx
jmp 0x4731d3
mov eax, dword [ebp - 0x48]
or eax, 0x200005
mov dword [ebp - 0x1b0], eax
mov ecx, dword [ebp - 0x1b0]
push ecx
mov ecx, dword [ebp - 0x10]
call fcn.00469b80
jmp 0x473706
push 1
push 0xa
call fcn.004265e0
add esp, 8
movzx edx, al
test edx, edx
je 0x473219
movzx eax, byte [ebp - 0x19]
test eax, eax
jne 0x473219
mov ecx, dword [ebp - 0x48]
or ecx, 0x200008
push ecx
mov ecx, dword [ebp - 0x10]
call fcn.00469b80
jmp 0x473706
push 1
push 0xb
call fcn.004265e0
add esp, 8
movzx edx, al
test edx, edx
je 0x4732b4
movzx eax, byte [ebp - 0x19]
test eax, eax
jne 0x4732b4
mov ecx, dword [ebp - 0x10]
call fcn.00488ed0
movzx ecx, al
test ecx, ecx
jne 0x47329d
movzx edx, byte [ebp - 0x3e]
test edx, edx
je 0x47325e
push 0x60000c
mov ecx, dword [ebp - 0x10]
call fcn.00469b80
jmp 0x47329d
movzx eax, byte [ebp - 0x32]
test eax, eax
je 0x47329d
mov ecx, dword [ebp - 0x20]
movzx edx, byte [ecx + 0xf7]
test edx, edx
je 0x47329d
mov eax, dword [ebp - 0x20]
movzx ecx, byte [eax + 0xf6]
test ecx, ecx
jne 0x47329d
mov edx, dword [ebp - 0x20]
movzx eax, byte [edx + 0xf4]
test eax, eax
jne 0x47329d
push 0x600004
mov ecx, dword [ebp - 0x10]
call fcn.00469b80
mov ecx, dword [ebp - 0x48]
or ecx, 0x200009
push ecx
mov ecx, dword [ebp - 0x10]
call fcn.00469b80
jmp 0x473706
push 1
push 0xd
call fcn.004265e0
add esp, 8
movzx edx, al
test edx, edx
jne 0x4732de
push 1
push 0xf
call fcn.004265e0
add esp, 8
movzx eax, al
test eax, eax
je 0x473390
mov ecx, dword [ebp + 0x1c]
and ecx, 0x800
je 0x4732f5
mov dword [ebp - 0x1b4], 1
jmp 0x4732ff
mov dword [ebp - 0x1b4], 0
mov dl, byte [ebp - 0x1b4]
mov byte [ebp - 0x6e], dl
movzx eax, byte [ebp - 0x11]
test eax, eax
je 0x47333c
movzx ecx, byte [ebp - 0x6e]
test ecx, ecx
je 0x473326
mov edx, dword [ebp - 0x20]
movzx eax, byte [edx + 0xf4]
test eax, eax
je 0x47333c
movzx ecx, byte [ebp - 0x6e]
test ecx, ecx
jne 0x473348
mov edx, dword [ebp - 0x20]
movzx eax, byte [edx + 0xf4]
test eax, eax
je 0x473348
mov byte [ebp - 0x2a], 1
mov cl, byte [ebp - 0x2a]
mov byte [ebp - 0x40], cl
jmp 0x47338b
movzx edx, byte [ebp - 0x19]
test edx, edx
jne 0x47338b
mov dword [ebp - 0x1b8], 0xa
mov eax, dword [ebp + 0x24]
push eax
mov ecx, dword [ebp + 0x20]
push ecx
mov edx, dword [ebp + 0x1c]
push edx
lea eax, [ebp - 0x1b8]
push eax
call fcn.004768e0
add esp, 0x10
movzx ecx, al
test ecx, ecx
je 0x47338b
mov edx, dword [ebp - 0x1b8]
push edx
mov ecx, dword [ebp - 0x10]
call fcn.00469b80
jmp 0x473706
push 1
push 0xe
call fcn.004265e0
add esp, 8
movzx eax, al
test eax, eax
je 0x4733b2
mov byte [ebp - 0x33], 1
mov cl, byte [ebp - 0x33]
mov byte [ebp - 0x2a], cl
jmp 0x473706
movzx edx, byte [ebp - 0x6f]
test edx, edx
jne 0x4733c5
movzx eax, byte [ebp - 0x9b]
test eax, eax
je 0x4733ff
movzx ecx, byte [ebp - 0x6f]
test ecx, ecx
je 0x4733d9
mov dword [ebp - 0x1bc], 0x20000a
jmp 0x4733e3
mov dword [ebp - 0x1bc], 0x20000b
mov edx, dword [ebp - 0x1bc]
push edx
mov ecx, dword [ebp - 0x10]
call fcn.00469b80
mov ecx, dword [ebp - 0x10]
call fcn.00488bb0
jmp 0x473706
movzx eax, byte [ebp - 0x29]
test eax, eax
je 0x473431
push 1
push 0x10
call fcn.004265e0
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x473431
mov ecx, dword [ebp - 0x10]
call fcn.00488fd0
mov edx, dword [ebp - 0x10]
mov byte [edx + 0xe6c], 1
jmp 0x473706
movzx eax, byte [ebp - 0x70]
test eax, eax
jne 0x473448
movzx ecx, byte [ebp - 0x9c]
test ecx, ecx
je 0x4735bb
mov edx, dword [ebp - 0x20]
cmp dword [edx + 0xcc], 0
je 0x47357a
mov ecx, dword [ebp - 0x10]
call fcn.00488ed0
movzx eax, al
test eax, eax
je 0x473485
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0x44]
push edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x40]
push ecx
call fcn.00469bc0
add esp, 8
mov dword [ebp - 0x1c0], eax
jmp 0x47348f
mov dword [ebp - 0x1c0], 0
mov edx, dword [ebp - 0x1c0]
mov dword [ebp - 0x1cc], edx
mov ecx, dword [ebp - 0x10]
call fcn.00488ed0
movzx eax, al
test eax, eax
je 0x4734c8
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0x44]
push edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x40]
push ecx
call fcn.00477d50
add esp, 8
mov dword [ebp - 0x1c4], eax
jmp 0x4734d4
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 4]
mov dword [ebp - 0x1c4], eax
mov ecx, dword [ebp - 0x1c4]
mov dword [ebp - 0x1c8], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0x14]
mov ecx, dword [ebp - 0x1c8]
lea edx, [eax + ecx*2]
push edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x14]
mov edx, dword [ebp - 0x1cc]
lea eax, [ecx + edx*2]
push eax
call fcn.00410150
add esp, 8
add eax, 1
mov dword [ebp - 0x1d0], eax
mov ecx, dword [ebp - 0x1d0]
push ecx
call fcn.0040d550
add esp, 4
mov dword [ebp - 0x10c], eax
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0x14]
mov ecx, dword [ebp - 0x1c8]
lea edx, [eax + ecx*2]
push edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x14]
mov edx, dword [ebp - 0x1cc]
lea eax, [ecx + edx*2]
push eax
mov ecx, dword [ebp - 0x1d0]
push ecx
mov edx, dword [ebp - 0x10c]
push edx
call fcn.0040fb80
add esp, 0x10
mov eax, dword [ebp - 0x10c]
push eax
call fcn.0040ce30
add esp, 4
mov ecx, dword [ebp - 0x10c]
push ecx
call fcn.0040d590
add esp, 4
movzx edx, byte [ebp - 0x70]
test edx, edx
je 0x4735b6
mov ecx, dword [ebp - 0x10]
call fcn.00488ed0
movzx eax, al
test eax, eax
jne 0x473599
mov ecx, dword [ebp - 0x10]
call fcn.00488fd0
mov ecx, dword [ebp - 0x10]
mov byte [ecx + 0xe6c], 1
mov edx, dword [ebp - 0x10]
add edx, 0x3c
push edx
mov eax, dword [ebp - 0x10]
push eax
call fcn.00479060
add esp, 8
jmp 0x473706
movzx ecx, byte [ebp - 0x9d]
test ecx, ecx
je 0x473706
call fcn.0040cde0
mov dword [ebp - 0x110], eax
cmp dword [ebp - 0x110], 0
je 0x473706
mov edx, dword [ebp - 0x110]
push edx
call fcn.005583e0
add esp, 4
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
lea ecx, [eax + eax + 2]
push ecx
call fcn.0040d550
add esp, 4
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xc0], 0
mov edx, dword [ebp - 0x110]
mov dword [ebp - 0xd8], edx
mov eax, dword [ebp - 0xd8]
movsx ecx, byte [eax]
test ecx, ecx
je 0x4736b1
push 0
mov edx, dword [ebp - 0xd8]
push edx
lea eax, [ebp - 0x114]
push eax
call fcn.0040fc20
add esp, 0xc
add eax, dword [ebp - 0xd8]
mov dword [ebp - 0xd8], eax
cmp dword [ebp - 0x114], 0
jne 0x473662
jmp 0x4736b1
mov ecx, dword [ebp + 0x24]
push ecx
mov edx, dword [ebp + 0x20]
push edx
mov eax, dword [ebp + 0x1c]
push eax
lea ecx, [ebp - 0x114]
push ecx
call fcn.004768e0
add esp, 0x10
movzx edx, al
test edx, edx
jne 0x473686
jmp 0x473626
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xdc]
mov dx, word [ebp - 0x114]
mov word [ecx + eax*2], dx
mov eax, dword [ebp - 0xc0]
add eax, 1
mov dword [ebp - 0xc0], eax
jmp 0x473626
xor ecx, ecx
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xdc]
mov word [eax + edx*2], cx
cmp dword [ebp - 0xc0], 0
jle 0x4736f7
mov ecx, dword [ebp - 0xc0]
push ecx
mov edx, dword [ebp - 0xdc]
push edx
mov eax, dword [ebp - 0x10]
add eax, 0x3c
push eax
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.0047a440
add esp, 0x10
mov edx, dword [ebp - 0x10]
mov byte [edx + 0xe6c], 1
mov eax, dword [ebp - 0xdc]
push eax
call fcn.0040d590
add esp, 4
mov ecx, dword [ebp - 0x10]
call fcn.00488ed0
movzx ecx, al
test ecx, ecx
je 0x47372d
xor edx, edx
jne 0x473721
movzx eax, byte [ebp - 0x22]
test eax, eax
je 0x47372d
mov dword [ebp - 0x1d4], 1
jmp 0x473737
mov dword [ebp - 0x1d4], 0
movzx ecx, byte [ebp - 0x21]
or ecx, dword [ebp - 0x1d4]
mov byte [ebp - 0x21], cl
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x1a48]
cmp eax, dword [ebp - 0x28]
jne 0x473e74
cmp dword [ebp - 0x10], 0
jne 0x473773
push 0x104c
push 0x5c7090
push 0x5c70ec
call fcn.0055a450
add esp, 0xc
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x4c], 0
movzx edx, byte [ebp - 0x33]
test edx, edx
je 0x47388c
movzx eax, byte [ebp - 0x19]
test eax, eax
jne 0x47388c
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0x2c]
push edx
mov eax, dword [ebp + 0x10]
push eax
call fcn.00558250
add esp, 8
test eax, eax
je 0x47388c
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0x2c]
mov dword [ebp - 0x94], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x24]
sub ecx, 1
mov dword [ebp - 0x4c], ecx
lea ecx, [ebp - 0x258]
call fcn.004237f0
mov dword [ebp - 4], 0
cmp dword [ebp - 0x4c], 0
jle 0x473838
mov edx, dword [ebp - 0x94]
add edx, dword [ebp - 0x4c]
push edx
mov eax, dword [ebp - 0x94]
push eax
call fcn.004100c0
add esp, 8
add eax, 1
push eax
lea ecx, [ebp - 0x258]
call fcn.00427a80
push 0
mov ecx, dword [ebp - 0x94]
add ecx, dword [ebp - 0x4c]
push ecx
mov edx, dword [ebp - 0x94]
push edx
mov eax, dword [ebp - 0x258]
push eax
mov ecx, dword [ebp - 0x250]
push ecx
call fcn.00410020
add esp, 0x14
cmp dword [ebp - 0x4c], 0
jle 0x47384f
mov edx, dword [ebp - 0x258]
sub edx, 1
mov dword [ebp - 0x1d8], edx
jmp 0x473859
mov dword [ebp - 0x1d8], 0
mov eax, dword [ebp - 0x1d8]
push eax
mov ecx, dword [ebp - 0x250]
push ecx
mov edx, dword [ebp - 0x10]
add edx, 0x3c
push edx
mov eax, dword [ebp - 0x10]
push eax
call fcn.0047a460
add esp, 0x10
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x258]
call fcn.004250d0
movzx ecx, byte [ebp - 0x33]
test ecx, ecx
je 0x4738b0
movzx edx, byte [ebp - 0x40]
test edx, edx
je 0x4738a4
mov eax, dword [ebp + 0x1c]
and eax, 0x20
jne 0x4738b0
mov dword [ebp - 0x1dc], 0
jmp 0x4738ba
mov dword [ebp - 0x1dc], 1
mov cl, byte [ebp - 0x1dc]
mov byte [ebp - 0x9e], cl
movzx edx, byte [ebp - 0x9e]
test edx, edx
je 0x473d43
movzx eax, byte [ebp - 0x19]
test eax, eax
jne 0x47391c
mov ecx, dword [ebp - 0x10]
mov byte [ecx + 0x30], 1
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0xc]
lea ecx, [eax*4 + 1]
push ecx
mov ecx, dword [ebp - 0x10]
add ecx, 0x18
call fcn.00427a40
push 0
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0x14]
push eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0x18]
push edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x20]
push ecx
call fcn.0040fb80
add esp, 0x10
mov edx, dword [ebp + 0x1c]
and edx, 0x801c0
je 0x473d0f
cmp dword [ebp + 0x20], 0
jne 0x473948
push 0x1075
push 0x5c7108
push str.callback___0
call fcn.0055a450
add esp, 0xc
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0xe0], 0x16
mov ecx, dword [ebp + 0x1c]
and ecx, 0x40
je 0x473990
push 1
push 0
call fcn.004265e0
add esp, 8
movzx edx, al
test edx, edx
je 0x473990
mov dword [ebp - 0xa4], 0x40
mov dword [ebp - 0xe0], 0
jmp 0x473a31
mov eax, dword [ebp + 0x1c]
and eax, 0x80
je 0x4739c3
push 1
push 3
call fcn.004265e0
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x4739c3
mov dword [ebp - 0xa4], 0x80
mov dword [ebp - 0xe0], 3
jmp 0x473a31
mov edx, dword [ebp + 0x1c]
and edx, 0x80
je 0x4739f7
push 1
push 4
call fcn.004265e0
add esp, 8
movzx eax, al
test eax, eax
je 0x4739f7
mov dword [ebp - 0xa4], 0x80
mov dword [ebp - 0xe0], 4
jmp 0x473a31
mov ecx, dword [ebp + 0x1c]
and ecx, 0x80000
je 0x473a1c
mov edx, dword [ebp - 0x10]
movzx eax, byte [edx + 0xe6e]
test eax, eax
je 0x473a1c
mov dword [ebp - 0xa4], 0x80000
jmp 0x473a31
mov ecx, dword [ebp + 0x1c]
and ecx, 0x100
je 0x473a31
mov dword [ebp - 0xa4], 0x100
cmp dword [ebp - 0xa4], 0
je 0x473d0f
lea ecx, [ebp - 0x168]
call fcn.004688e0
push 0x30
push 0
lea edx, [ebp - 0x168]
push edx
call fcn.00537090
add esp, 0xc
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x168], eax
mov ecx, dword [ebp + 0x1c]
mov dword [ebp - 0x164], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x160], edx
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0x158], eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0x20]
mov dword [ebp - 0x154], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x150], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0x34]
mov dword [ebp - 0x14c], eax
mov byte [ebp - 0x148], 0
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0x14]
mov dword [ebp - 0xc4], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x3c]
mov edx, dword [ebp - 0xc4]
lea eax, [edx + ecx*2]
push eax
mov ecx, dword [ebp - 0xc4]
push ecx
call fcn.00410150
add esp, 8
mov dword [ebp - 0x144], eax
mov edx, dword [ebp - 0x144]
mov dword [ebp - 0x274], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x40]
mov edx, dword [ebp - 0xc4]
lea eax, [edx + ecx*2]
push eax
mov ecx, dword [ebp - 0xc4]
push ecx
call fcn.00410150
add esp, 8
mov dword [ebp - 0x140], eax
mov edx, dword [ebp - 0x140]
mov dword [ebp - 0x278], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x44]
mov edx, dword [ebp - 0xc4]
lea eax, [edx + ecx*2]
push eax
mov ecx, dword [ebp - 0xc4]
push ecx
call fcn.00410150
add esp, 8
mov dword [ebp - 0x13c], eax
mov edx, dword [ebp - 0x13c]
mov dword [ebp - 0x27c], edx
lea eax, [ebp - 0x168]
push eax
call dword [ebp + 0x20]
add esp, 4
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x154]
cmp edx, dword [ecx + 0x20]
je 0x473b82
push 0x10aa
push 0x5c7180
push str.callback_data.Buf__state__TextA.Data
call fcn.0055a450
add esp, 0xc
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14c]
cmp edx, dword [ecx + 0x34]
je 0x473ba7
push 0x10ab
push 0x5c7230
push str.callback_data.BufSize__state__BufCapacityA
call fcn.0055a450
add esp, 0xc
mov ecx, dword [ebp - 0x164]
cmp ecx, dword [ebp + 0x1c]
je 0x473bc9
push 0x10ac
push 0x5c72f0
push str.callback_data.Flags__flags
call fcn.0055a450
add esp, 0xc
mov eax, dword [ebp - 0x144]
cmp eax, dword [ebp - 0x274]
je 0x473c03
mov ecx, dword [ebp - 0x154]
add ecx, dword [ebp - 0x144]
push ecx
mov edx, dword [ebp - 0x154]
push edx
call fcn.004100c0
add esp, 8
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0x3c], eax
mov edx, dword [ebp - 0x10]
mov byte [edx + 0xe6c], 1
mov eax, dword [ebp - 0x140]
cmp eax, dword [ebp - 0x278]
je 0x473c33
mov ecx, dword [ebp - 0x154]
add ecx, dword [ebp - 0x140]
push ecx
mov edx, dword [ebp - 0x154]
push edx
call fcn.004100c0
add esp, 8
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0x40], eax
mov edx, dword [ebp - 0x13c]
cmp edx, dword [ebp - 0x27c]
je 0x473c63
mov eax, dword [ebp - 0x154]
add eax, dword [ebp - 0x13c]
push eax
mov ecx, dword [ebp - 0x154]
push ecx
call fcn.004100c0
add esp, 8
mov edx, dword [ebp - 0x10]
mov dword [edx + 0x44], eax
movzx eax, byte [ebp - 0x148]
test eax, eax
je 0x473d0f
mov ecx, dword [ebp - 0x154]
push ecx
call fcn.005583e0
add esp, 4
cmp dword [ebp - 0x150], eax
je 0x473ca0
push 0x10b2
push 0x5c7388
push str.callback_data.BufTextLen___int_strlen_callback_data.Buf_
call fcn.0055a450
add esp, 0xc
mov eax, dword [ebp - 0x150]
cmp eax, dword [ebp - 0x118]
jle 0x473cd4
movzx ecx, byte [ebp - 0x3f]
test ecx, ecx
je 0x473cd4
mov edx, dword [ebp - 0x150]
sub edx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x10]
add edx, dword [eax + 0xc]
push edx
mov ecx, dword [ebp - 0x10]
add ecx, 0xc
call fcn.00427a80
push 0
push 0
mov ecx, dword [ebp - 0x154]
push ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0xc]
push eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0x14]
push edx
call fcn.00410020
add esp, 0x14
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 4], eax
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x150]
mov dword [edx + 8], eax
mov ecx, dword [ebp - 0x10]
call fcn.00488c30
movzx ecx, byte [ebp - 0x19]
test ecx, ecx
jne 0x473d43
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x20]
push ecx
call fcn.00558250
add esp, 8
test eax, eax
je 0x473d43
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0x20]
mov dword [ebp - 0x94], eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x4c], edx
cmp dword [ebp - 0x94], 0
je 0x473e4d
cmp dword [ebp - 0x4c], 0
jge 0x473d6d
push 0x10ca
push 0x5c7460
push str.apply_new_text_length___0
call fcn.0055a450
add esp, 0xc
movzx ecx, byte [ebp - 0x3f]
test ecx, ecx
je 0x473e22
lea ecx, [ebp - 0x32c]
call fcn.004688e0
mov dword [ebp - 0x32c], 0x40000
mov edx, dword [ebp + 0x1c]
mov dword [ebp - 0x328], edx
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x318], eax
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x314], ecx
mov edx, dword [ebp - 0x4c]
add edx, 1
push edx
mov eax, dword [ebp + 0x14]
push eax
call fcn.00477d50
add esp, 8
mov dword [ebp - 0x310], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x324], ecx
lea edx, [ebp - 0x32c]
push edx
call dword [ebp + 0x20]
add esp, 4
mov eax, dword [ebp - 0x318]
mov dword [ebp + 0x10], eax
mov ecx, dword [ebp - 0x310]
mov dword [ebp + 0x14], ecx
mov edx, dword [ebp + 0x14]
sub edx, 1
push edx
mov eax, dword [ebp - 0x314]
push eax
call fcn.00469bc0
add esp, 8
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x4c]
cmp ecx, dword [ebp + 0x14]
jle 0x473e22
push 0x10d8
push 0x5c74f8
push str.apply_new_text_length___buf_size
call fcn.0055a450
add esp, 0xc
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp - 0x4c]
add ecx, 1
push ecx
call fcn.00469bc0
add esp, 8
push eax
mov edx, dword [ebp - 0x94]
push edx
mov eax, dword [ebp + 0x10]
push eax
call fcn.0040f690
add esp, 0xc
mov byte [ebp - 0x41], 1
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0xe70], 0
mov edx, dword [ebp - 0x10]
mov dword [edx + 0xe74], 0
mov eax, dword [ebp - 0x10]
mov dword [eax + 0xe78], 0
movzx ecx, byte [ebp - 0x2a]
test ecx, ecx
je 0x473e8f
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x1a48]
cmp eax, dword [ebp - 0x28]
jne 0x473e8f
call fcn.00414090
movzx ecx, byte [ebp - 0x11]
test ecx, ecx
jne 0x473ef9
push 1
mov edx, dword [ebp - 0x28]
push edx
lea eax, [ebp - 0x100]
push eax
call fcn.00417d20
add esp, 0xc
mov ecx, dword [ebp - 0x38]
push ecx
movss xmm0, dword [ecx + 0x40]
movss dword [esp], xmm0
push 1
push ecx
movss xmm0, dword [0x5aef3c]
movss dword [esp], xmm0
push 7
call fcn.004085c0
add esp, 8
push eax
mov edx, dword [ebp - 0xf4]
push edx
mov eax, dword [ebp - 0xf8]
push eax
mov ecx, dword [ebp - 0xfc]
push ecx
mov edx, dword [ebp - 0x100]
push edx
call fcn.00417a70
add esp, 0x1c
movss xmm0, dword [ebp - 0xfc]
addss xmm0, dword [ebp - 0xb0]
push ecx
movss dword [esp], xmm0
movss xmm0, dword [ebp - 0x100]
addss xmm0, dword [ebp - 0xb4]
push ecx
movss dword [esp], xmm0
push ecx
movss xmm0, dword [ebp - 0xfc]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [ebp - 0x100]
movss dword [esp], xmm0
lea ecx, [ebp - 0x2b4]
call fcn.00424fc0
movzx eax, byte [ebp - 0x11]
test eax, eax
je 0x473f7d
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx + 0xd0]
mov eax, dword [ecx + 0xd4]
mov dword [ebp - 0x2c0], edx
mov dword [ebp - 0x2bc], eax
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 0x1e0], ecx
jmp 0x473fa0
mov edx, dword [ebp - 0x38]
add edx, 0x38
push edx
lea eax, [ebp - 0x100]
push eax
lea ecx, [ebp - 0x38c]
push ecx
call fcn.00469200
add esp, 0xc
mov dword [ebp - 0x1e0], eax
mov edx, dword [ebp - 0x1e0]
mov dword [ebp - 0x280], edx
mov eax, dword [ebp - 0x280]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [ebp - 0xe8], ecx
mov dword [ebp - 0xe4], edx
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
lea ecx, [ebp - 0x138]
call fcn.00424ee0
mov dword [ebp - 0x2e4], 0x200000
movzx eax, byte [ebp - 0x71]
test eax, eax
je 0x474000
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0x20]
mov dword [ebp - 0x1e4], edx
jmp 0x474009
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x1e4], eax
mov ecx, dword [ebp - 0x1e4]
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x8c], 0
movzx edx, byte [ebp - 0x23]
test edx, edx
je 0x474045
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x88], eax
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.005583e0
add esp, 4
add eax, dword [ebp + 0xc]
mov dword [ebp - 0x8c], eax
movzx edx, byte [ebp - 0x22]
test edx, edx
jne 0x474059
movzx eax, byte [ebp - 0x21]
test eax, eax
je 0x474d0a
cmp dword [ebp - 0x10], 0
jne 0x474076
push 0x1106
push 0x5c75a0
push str.state___0
call fcn.0055a450
add esp, 0xc
movzx edx, byte [ebp - 0x23]
test edx, edx
jne 0x474090
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x88]
add ecx, dword [eax + 8]
mov dword [ebp - 0x8c], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0x14]
mov dword [ebp - 0xa8], eax
lea ecx, [ebp - 0xd0]
call fcn.00424f10
lea ecx, [ebp - 0x298]
call fcn.00424f10
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xbc], 0xfffffc18
mov dword [ebp - 0xb8], 0xfffffc18
mov dword [ebp - 0x50], 0
movzx ecx, byte [ebp - 0x22]
test ecx, ecx
je 0x474123
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0x3c]
mov ecx, dword [ebp - 0xa8]
lea edx, [ecx + eax*2]
mov eax, 4
imul ecx, eax, 0
mov dword [ebp + ecx - 0xf0], edx
mov edx, 4
imul eax, edx, 0
mov dword [ebp + eax - 0xbc], 0xffffffff
mov ecx, dword [ebp - 0x50]
add ecx, 1
mov dword [ebp - 0x50], ecx
movzx edx, byte [ebp - 0x21]
test edx, edx
je 0x474175
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x44]
push ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0x40]
push eax
call fcn.00469bc0
add esp, 8
mov ecx, dword [ebp - 0xa8]
lea edx, [ecx + eax*2]
mov eax, 4
shl eax, 0
mov dword [ebp + eax - 0xf0], edx
mov ecx, 4
shl ecx, 0
mov dword [ebp + ecx - 0xbc], 0xffffffff
mov edx, dword [ebp - 0x50]
add edx, 1
mov dword [ebp - 0x50], edx
movzx eax, byte [ebp - 0x11]
test eax, eax
je 0x474189
mov dword [ebp - 0x1e8], 1
jmp 0x474193
mov dword [ebp - 0x1e8], 0
mov ecx, dword [ebp - 0x50]
add ecx, dword [ebp - 0x1e8]
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x90], 0
mov edx, dword [ebp - 0xa8]
mov dword [ebp - 0xc8], edx
jmp 0x4741c6
mov eax, dword [ebp - 0xc8]
add eax, 2
mov dword [ebp - 0xc8], eax
mov ecx, dword [ebp - 0xc8]
movzx edx, word [ecx]
test edx, edx
je 0x47429b
mov eax, dword [ebp - 0xc8]
movzx ecx, word [eax]
cmp ecx, 0xa
jne 0x474296
mov edx, dword [ebp - 0x90]
add edx, 1
mov dword [ebp - 0x90], edx
mov eax, 4
imul ecx, eax, 0
cmp dword [ebp + ecx - 0xbc], 0xffffffff
jne 0x474247
mov edx, 4
imul eax, edx, 0
mov ecx, dword [ebp - 0xc8]
cmp ecx, dword [ebp + eax - 0xf0]
jb 0x474247
mov edx, 4
imul eax, edx, 0
mov ecx, dword [ebp - 0x90]
mov dword [ebp + eax - 0xbc], ecx
mov edx, dword [ebp - 0x50]
sub edx, 1
mov dword [ebp - 0x50], edx
cmp dword [ebp - 0x50], 0
jg 0x474247
jmp 0x47429b
mov eax, 4
shl eax, 0
cmp dword [ebp + eax - 0xbc], 0xffffffff
jne 0x474296
mov ecx, 4
shl ecx, 0
mov edx, dword [ebp - 0xc8]
cmp edx, dword [ebp + ecx - 0xf0]
jb 0x474296
mov eax, 4
shl eax, 0
mov ecx, dword [ebp - 0x90]
mov dword [ebp + eax - 0xbc], ecx
mov edx, dword [ebp - 0x50]
sub edx, 1
mov dword [ebp - 0x50], edx
cmp dword [ebp - 0x50], 0
jg 0x474296
jmp 0x47429b
jmp 0x4741b7
mov eax, dword [ebp - 0x90]
add eax, 1
mov dword [ebp - 0x90], eax
mov ecx, 4
imul edx, ecx, 0
cmp dword [ebp + edx - 0xbc], 0xffffffff
jne 0x4742d1
mov eax, 4
imul ecx, eax, 0
mov edx, dword [ebp - 0x90]
mov dword [ebp + ecx - 0xbc], edx
mov eax, 4
shl eax, 0
cmp dword [ebp + eax - 0xbc], 0xffffffff
jne 0x4742f8
mov ecx, 4
shl ecx, 0
mov edx, dword [ebp - 0x90]
mov dword [ebp + ecx - 0xbc], edx
push 0
push 0
push 0
mov eax, 4
imul ecx, eax, 0
mov edx, dword [ebp + ecx - 0xf0]
push edx
mov eax, dword [ebp - 0xa8]
push eax
mov ecx, 4
imul edx, ecx, 0
mov eax, dword [ebp + edx - 0xf0]
push eax
call fcn.0040f860
add esp, 8
push eax
lea ecx, [ebp - 0x394]
push ecx
call fcn.00476bb0
add esp, 0x18
movss xmm0, dword [eax]
movss dword [ebp - 0xd0], xmm0
mov edx, 4
imul eax, edx, 0
cvtsi2ss xmm0, dword [ebp + eax - 0xbc]
mov ecx, dword [ebp - 0x18]
mulss xmm0, dword [ecx + 0x18d8]
movss dword [ebp - 0xcc], xmm0
mov edx, 4
shl edx, 0
cmp dword [ebp + edx - 0xbc], 0
jl 0x4743f4
push 0
push 0
push 0
mov eax, 4
shl eax, 0
mov ecx, dword [ebp + eax - 0xf0]
push ecx
mov edx, dword [ebp - 0xa8]
push edx
mov eax, 4
shl eax, 0
mov ecx, dword [ebp + eax - 0xf0]
push ecx
call fcn.0040f860
add esp, 8
push eax
lea edx, [ebp - 0x39c]
push edx
call fcn.00476bb0
add esp, 0x18
movss xmm0, dword [eax]
movss dword [ebp - 0x298], xmm0
mov eax, 4
shl eax, 0
cvtsi2ss xmm0, dword [ebp + eax - 0xbc]
mov ecx, dword [ebp - 0x18]
mulss xmm0, dword [ecx + 0x18d8]
movss dword [ebp - 0x294], xmm0
movzx edx, byte [ebp - 0x11]
test edx, edx
je 0x47443f
cvtsi2ss xmm0, dword [ebp - 0x90]
mov eax, dword [ebp - 0x18]
mulss xmm0, dword [eax + 0x18d8]
push ecx
movss dword [esp], xmm0
push ecx
movss xmm0, dword [ebp - 0xb4]
movss dword [esp], xmm0
lea ecx, [ebp - 0x3ac]
call fcn.00424ee0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [ebp - 0x138], ecx
mov dword [ebp - 0x134], edx
movzx eax, byte [ebp - 0x22]
test eax, eax
je 0x47465e
mov ecx, dword [ebp - 0x10]
movzx edx, byte [ecx + 0xe6c]
test edx, edx
je 0x47465e
mov eax, dword [ebp + 0x1c]
and eax, 0x1000
jne 0x47451e
movss xmm0, dword [ebp - 0xb4]
mulss xmm0, dword [0x5aef04]
movss dword [ebp - 0x1ec], xmm0
mov ecx, dword [ebp - 0x10]
movss xmm0, dword [ecx + 0x38]
comiss xmm0, dword [ebp - 0xd0]
jbe 0x4744db
movss xmm0, dword [ebp - 0xd0]
subss xmm0, dword [ebp - 0x1ec]
push ecx
movss dword [esp], xmm0
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
call fcn.00469850
add esp, 8
fstp dword [ebp - 0x284]
movss xmm0, dword [ebp - 0x284]
cvttss2si edx, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [ebp - 0x10]
movss dword [eax + 0x38], xmm0
jmp 0x47451c
movss xmm0, dword [ebp - 0xd0]
subss xmm0, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0x10]
comiss xmm0, dword [ecx + 0x38]
jb 0x47451c
movss xmm0, dword [ebp - 0xd0]
subss xmm0, dword [ebp - 0xb4]
addss xmm0, dword [ebp - 0x1ec]
cvttss2si edx, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [ebp - 0x10]
movss dword [eax + 0x38], xmm0
jmp 0x474529
mov ecx, dword [ebp - 0x10]
xorps xmm0, xmm0
movss dword [ecx + 0x38], xmm0
movzx edx, byte [ebp - 0x11]
test edx, edx
je 0x474654
mov eax, dword [ebp - 0x18]
movss xmm0, dword [ebp - 0xcc]
subss xmm0, dword [eax + 0x18d8]
movss xmm1, dword [ebp - 0x54]
comiss xmm1, xmm0
jbe 0x474581
mov ecx, dword [ebp - 0x18]
movss xmm0, dword [ebp - 0xcc]
subss xmm0, dword [ecx + 0x18d8]
push ecx
movss dword [esp], xmm0
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
call fcn.00469850
add esp, 8
fstp dword [ebp - 0x54]
jmp 0x4745c0
movss xmm0, dword [ebp - 0xcc]
subss xmm0, dword [ebp - 0xb0]
comiss xmm0, dword [ebp - 0x54]
jb 0x4745c0
movss xmm0, dword [ebp - 0xcc]
subss xmm0, dword [ebp - 0xb0]
mov edx, dword [ebp - 0x38]
movss xmm1, dword [edx + 0x3c]
mulss xmm1, dword [0x5aef50]
addss xmm0, xmm1
movss dword [ebp - 0x54], xmm0
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
mov eax, dword [ebp - 0x38]
movss xmm0, dword [eax + 0x3c]
mulss xmm0, dword [0x5aef50]
addss xmm0, dword [ebp - 0x134]
subss xmm0, dword [ebp - 0xb0]
push ecx
movss dword [esp], xmm0
call fcn.00469850
add esp, 8
fstp dword [ebp - 0x288]
push ecx
movss xmm0, dword [ebp - 0x288]
movss dword [esp], xmm0
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
push ecx
movss xmm0, dword [ebp - 0x54]
movss dword [esp], xmm0
call fcn.00476d60
add esp, 0xc
fstp dword [ebp - 0x54]
mov ecx, dword [ebp - 0x30]
movss xmm0, dword [ecx + 0x54]
subss xmm0, dword [ebp - 0x54]
addss xmm0, dword [ebp - 0xe4]
movss dword [ebp - 0xe4], xmm0
mov edx, dword [ebp - 0x30]
movss xmm0, dword [ebp - 0x54]
movss dword [edx + 0x54], xmm0
mov eax, dword [ebp - 0x10]
mov byte [eax + 0xe6c], 0
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
mov ecx, dword [ebp - 0x10]
push ecx
movss xmm0, dword [ecx + 0x38]
movss dword [esp], xmm0
lea ecx, [ebp - 0x244]
call fcn.00424ee0
movzx edx, byte [ebp - 0x21]
test edx, edx
je 0x4749fc
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x44]
push ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0x40]
push eax
call fcn.00469bc0
add esp, 8
mov ecx, dword [ebp - 0xa8]
lea edx, [ecx + eax*2]
mov dword [ebp - 0x28c], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x44]
push ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0x40]
push eax
call fcn.00477d50
add esp, 8
mov ecx, dword [ebp - 0xa8]
lea edx, [ecx + eax*2]
mov dword [ebp - 0x120], edx
movzx eax, byte [ebp - 0x22]
test eax, eax
je 0x4746f0
movss xmm0, dword [0x5aef3c]
movss dword [ebp - 0x1f0], xmm0
jmp 0x474700
movss xmm0, dword [0x5aef18]
movss dword [ebp - 0x1f0], xmm0
push ecx
movss xmm0, dword [ebp - 0x1f0]
movss dword [esp], xmm0
push 0x2a
call fcn.004085c0
add esp, 8
mov dword [ebp - 0x260], eax
movzx ecx, byte [ebp - 0x11]
test ecx, ecx
je 0x474733
xorps xmm0, xmm0
movss dword [ebp - 0x1f4], xmm0
jmp 0x474743
movss xmm0, dword [0x5aefd4]
movss dword [ebp - 0x1f4], xmm0
movss xmm0, dword [ebp - 0x1f4]
movss dword [ebp - 0x25c], xmm0
movzx edx, byte [ebp - 0x11]
test edx, edx
je 0x474768
xorps xmm0, xmm0
movss dword [ebp - 0x1f8], xmm0
jmp 0x474778
movss xmm0, dword [0x5aef50]
movss dword [ebp - 0x1f8], xmm0
movss xmm0, dword [ebp - 0x1f8]
movss dword [ebp - 0x2b8], xmm0
lea eax, [ebp - 0x244]
push eax
lea ecx, [ebp - 0x298]
push ecx
lea edx, [ebp - 0xe8]
push edx
lea eax, [ebp - 0x3e4]
push eax
call fcn.00469200
add esp, 0xc
push eax
lea ecx, [ebp - 0x128]
push ecx
call fcn.00469240
add esp, 0xc
mov edx, dword [ebp - 0x28c]
mov dword [ebp - 0xac], edx
mov eax, dword [ebp - 0xac]
cmp eax, dword [ebp - 0x120]
jae 0x4749fc
mov ecx, dword [ebp - 0x18]
movss xmm0, dword [ebp - 0x2a8]
addss xmm0, dword [ecx + 0x18d8]
movss xmm1, dword [ebp - 0x124]
comiss xmm1, xmm0
jbe 0x4747ff
jmp 0x4749fc
movss xmm0, dword [ebp - 0x2b0]
comiss xmm0, dword [ebp - 0x124]
jbe 0x47484e
mov edx, dword [ebp - 0xac]
cmp edx, dword [ebp - 0x120]
jae 0x474849
mov eax, dword [ebp - 0xac]
movzx ecx, word [eax]
mov dword [ebp - 0x290], ecx
mov edx, dword [ebp - 0xac]
add edx, 2
mov dword [ebp - 0xac], edx
cmp dword [ebp - 0x290], 0xa
jne 0x474847
jmp 0x474849
jmp 0x474810
jmp 0x4749c4
push 1
push 0
lea eax, [ebp - 0xac]
push eax
mov ecx, dword [ebp - 0x120]
push ecx
mov edx, dword [ebp - 0xac]
push edx
lea eax, [ebp - 0x2a0]
push eax
call fcn.00476bb0
add esp, 0x18
xorps xmm0, xmm0
comiss xmm0, dword [ebp - 0x2a0]
jb 0x4748b8
push 0x20
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ecx + 0x18d4]
call fcn.00488d10
fstp dword [ebp - 0x2a4]
movss xmm0, dword [ebp - 0x2a4]
mulss xmm0, dword [0x5aef14]
cvttss2si edx, xmm0
cvtsi2ss xmm0, edx
movss dword [ebp - 0x2a0], xmm0
push ecx
movss xmm0, dword [ebp - 0x2b8]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [ebp - 0x2a0]
movss dword [esp], xmm0
lea ecx, [ebp - 0x334]
call fcn.00424ee0
push eax
lea eax, [ebp - 0x128]
push eax
lea ecx, [ebp - 0x33c]
push ecx
call fcn.00469200
add esp, 0xc
push eax
mov edx, dword [ebp - 0x18]
movss xmm0, dword [ebp - 0x25c]
subss xmm0, dword [edx + 0x18d8]
push ecx
movss dword [esp], xmm0
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
lea ecx, [ebp - 0x344]
call fcn.00424ee0
push eax
lea eax, [ebp - 0x128]
push eax
lea ecx, [ebp - 0x34c]
push ecx
call fcn.00469200
add esp, 0xc
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00424d60
lea edx, [ebp - 0x2b4]
push edx
lea ecx, [ebp - 0x3bc]
call fcn.00424da0
lea eax, [ebp - 0x3bc]
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00425e80
lea ecx, [ebp - 0x2b4]
push ecx
lea ecx, [ebp - 0x3cc]
call fcn.00424da0
lea edx, [ebp - 0x3cc]
push edx
lea ecx, [ebp - 0x2d0]
call fcn.004267e0
movzx eax, al
test eax, eax
je 0x4749c4
push 0xf
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
mov ecx, dword [ebp - 0x260]
push ecx
lea edx, [ebp - 0x2c8]
push edx
lea eax, [ebp - 0x2d0]
push eax
mov ecx, dword [ebp - 0x30]
mov ecx, dword [ecx + 0x294]
call fcn.00441f90
movss xmm0, dword [ebp - 0xe8]
subss xmm0, dword [ebp - 0x244]
movss dword [ebp - 0x128], xmm0
mov edx, dword [ebp - 0x18]
movss xmm0, dword [ebp - 0x124]
addss xmm0, dword [edx + 0x18d8]
movss dword [ebp - 0x124], xmm0
jmp 0x4747c8
movzx eax, byte [ebp - 0x11]
test eax, eax
jne 0x474a1c
mov ecx, dword [ebp - 0x8c]
sub ecx, dword [ebp - 0x88]
cmp ecx, 0x200000
jge 0x474ae9
movzx edx, byte [ebp - 0x23]
test edx, edx
je 0x474a30
mov dword [ebp - 0x1fc], 1
jmp 0x474a3a
mov dword [ebp - 0x1fc], 0
push ecx
movss xmm0, dword [0x5aef3c]
movss dword [esp], xmm0
mov eax, dword [ebp - 0x1fc]
push eax
call fcn.004085c0
add esp, 8
mov dword [ebp - 0x264], eax
movzx ecx, byte [ebp - 0x11]
test ecx, ecx
je 0x474a71
mov dword [ebp - 0x200], 0
jmp 0x474a7d
lea edx, [ebp - 0x2b4]
mov dword [ebp - 0x200], edx
mov eax, dword [ebp - 0x200]
push eax
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
mov ecx, dword [ebp - 0x8c]
push ecx
mov edx, dword [ebp - 0x88]
push edx
mov eax, dword [ebp - 0x264]
push eax
lea ecx, [ebp - 0x244]
push ecx
lea edx, [ebp - 0xe8]
push edx
lea eax, [ebp - 0x354]
push eax
call fcn.00469240
add esp, 0xc
push eax
mov ecx, dword [ebp - 0x18]
push ecx
movss xmm0, dword [ecx + 0x18d8]
movss dword [esp], xmm0
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x18d4]
push eax
mov ecx, dword [ebp - 0x30]
mov ecx, dword [ecx + 0x294]
call fcn.004426e0
movzx edx, byte [ebp - 0x22]
test edx, edx
je 0x474d05
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x20]
movss xmm0, dword [eax + 0xe68]
addss xmm0, dword [ecx + 0x10]
mov edx, dword [ebp - 0x10]
movss dword [edx + 0xe68], xmm0
mov eax, dword [ebp - 0x18]
movzx ecx, byte [eax + 0xb2]
test ecx, ecx
je 0x474b7a
mov edx, dword [ebp - 0x10]
xorps xmm0, xmm0
comiss xmm0, dword [edx + 0xe68]
jae 0x474b7a
push ecx
movss xmm0, dword [0x5c9d9c]
movss dword [esp], xmm0
mov eax, dword [ebp - 0x10]
movss xmm0, dword [eax + 0xe68]
push ecx
movss dword [esp], xmm0
call fcn.00427d70
add esp, 8
fstp dword [ebp - 0x268]
movss xmm0, dword [0x5aef34]
comiss xmm0, dword [ebp - 0x268]
jae 0x474b7a
mov dword [ebp - 0x204], 0
jmp 0x474b84
mov dword [ebp - 0x204], 1
mov cl, byte [ebp - 0x204]
mov byte [ebp - 0x9f], cl
lea edx, [ebp - 0x244]
push edx
lea eax, [ebp - 0xd0]
push eax
lea ecx, [ebp - 0xe8]
push ecx
lea edx, [ebp - 0x35c]
push edx
call fcn.00469200
add esp, 0xc
push eax
lea eax, [ebp - 0x130]
push eax
call fcn.00469240
add esp, 0xc
movss xmm0, dword [ebp - 0x12c]
subss xmm0, dword [0x5c9da4]
push ecx
movss dword [esp], xmm0
movss xmm0, dword [ebp - 0x130]
addss xmm0, dword [0x5aef3c]
push ecx
movss dword [esp], xmm0
mov ecx, dword [ebp - 0x18]
movss xmm0, dword [ebp - 0x12c]
subss xmm0, dword [ecx + 0x18d8]
addss xmm0, dword [0x5aef14]
push ecx
movss dword [esp], xmm0
push ecx
movss xmm0, dword [ebp - 0x130]
movss dword [esp], xmm0
lea ecx, [ebp - 0x2fc]
call fcn.00424e00
movzx edx, byte [ebp - 0x9f]
test edx, edx
je 0x474caf
lea eax, [ebp - 0x2b4]
push eax
lea ecx, [ebp - 0x3dc]
call fcn.00424da0
lea ecx, [ebp - 0x3dc]
push ecx
lea ecx, [ebp - 0x2fc]
call fcn.004267e0
movzx edx, al
test edx, edx
je 0x474caf
push ecx
movss xmm0, dword [0x5aef3c]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x5aef3c]
movss dword [esp], xmm0
push 0
call fcn.004085c0
add esp, 8
push eax
lea eax, [ebp - 0x364]
push eax
lea ecx, [ebp - 0x2fc]
call fcn.00426120
push eax
lea ecx, [ebp - 0x2fc]
push ecx
mov edx, dword [ebp - 0x30]
mov ecx, dword [edx + 0x294]
call fcn.00441d70
movzx eax, byte [ebp - 0x19]
test eax, eax
jne 0x474d05
mov ecx, dword [ebp - 0x18]
movss xmm0, dword [ebp - 0x12c]
subss xmm0, dword [ecx + 0x18d8]
push ecx
movss dword [esp], xmm0
movss xmm0, dword [ebp - 0x130]
subss xmm0, dword [0x5aef3c]
push ecx
movss dword [esp], xmm0
lea ecx, [ebp - 0x36c]
call fcn.00424ee0
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x2e04], edx
mov dword [ecx + 0x2e08], eax
jmp 0x474e8c
movzx edx, byte [ebp - 0x11]
test edx, edx
je 0x474d69
lea eax, [ebp - 0x8c]
push eax
mov ecx, dword [ebp - 0x88]
push ecx
call fcn.00476b20
add esp, 8
cvtsi2ss xmm0, eax
mov edx, dword [ebp - 0x18]
mulss xmm0, dword [edx + 0x18d8]
push ecx
movss dword [esp], xmm0
push ecx
movss xmm0, dword [ebp - 0xb4]
movss dword [esp], xmm0
lea ecx, [ebp - 0x3a4]
call fcn.00424ee0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [ebp - 0x138], ecx
mov dword [ebp - 0x134], edx
jmp 0x474db6
movzx eax, byte [ebp - 0x23]
test eax, eax
jne 0x474d93
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 0x1a48]
cmp edx, dword [ebp - 0x28]
jne 0x474d93
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x88]
add ecx, dword [eax + 8]
mov dword [ebp - 0x8c], ecx
jmp 0x474db6
movzx edx, byte [ebp - 0x23]
test edx, edx
jne 0x474db6
mov eax, dword [ebp - 0x88]
push eax
call fcn.005583e0
add esp, 4
add eax, dword [ebp - 0x88]
mov dword [ebp - 0x8c], eax
movzx ecx, byte [ebp - 0x11]
test ecx, ecx
jne 0x474dd6
mov edx, dword [ebp - 0x8c]
sub edx, dword [ebp - 0x88]
cmp edx, 0x200000
jge 0x474e8c
movzx eax, byte [ebp - 0x23]
test eax, eax
je 0x474dea
mov dword [ebp - 0x208], 1
jmp 0x474df4
mov dword [ebp - 0x208], 0
push ecx
movss xmm0, dword [0x5aef3c]
movss dword [esp], xmm0
mov ecx, dword [ebp - 0x208]
push ecx
call fcn.004085c0
add esp, 8
mov dword [ebp - 0x26c], eax
movzx edx, byte [ebp - 0x11]
test edx, edx
je 0x474e2b
mov dword [ebp - 0x20c], 0
jmp 0x474e37
lea eax, [ebp - 0x2b4]
mov dword [ebp - 0x20c], eax
mov ecx, dword [ebp - 0x20c]
push ecx
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
mov edx, dword [ebp - 0x8c]
push edx
mov eax, dword [ebp - 0x88]
push eax
mov ecx, dword [ebp - 0x26c]
push ecx
lea edx, [ebp - 0xe8]
push edx
mov eax, dword [ebp - 0x18]
push ecx
movss xmm0, dword [eax + 0x18d8]
movss dword [esp], xmm0
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 0x18d4]
push edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + 0x294]
call fcn.004426e0
movzx ecx, byte [ebp - 0x2c]
test ecx, ecx
je 0x474ea1
movzx edx, byte [ebp - 0x23]
test edx, edx
jne 0x474ea1
call fcn.00408100
movzx eax, byte [ebp - 0x11]
test eax, eax
je 0x474ec2
lea ecx, [ebp - 0x138]
push ecx
call fcn.0045bd40
add esp, 4
call fcn.004070b0
call fcn.00408de0
mov edx, dword [ebp - 0x18]
movzx eax, byte [edx + 0x2e4c]
test eax, eax
je 0x474efd
movzx ecx, byte [ebp - 0x2c]
test ecx, ecx
je 0x474ee0
movzx edx, byte [ebp - 0x23]
test edx, edx
je 0x474efd
mov eax, dword [ebp - 0x8c]
push eax
mov ecx, dword [ebp - 0x88]
push ecx
lea edx, [ebp - 0xe8]
push edx
call fcn.00418000
add esp, 0xc
movss xmm0, dword [ebp - 0x24c]
comiss xmm0, dword [0x5aeed0]
jbe 0x474f5c
push 1
push 0
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x38]
movss xmm0, dword [ebp - 0xfc]
addss xmm0, dword [ecx + 0x3c]
push ecx
movss dword [esp], xmm0
mov edx, dword [ebp - 0x38]
movss xmm0, dword [ebp - 0xf8]
addss xmm0, dword [edx + 0x50]
push ecx
movss dword [esp], xmm0
lea ecx, [ebp - 0x37c]
call fcn.00424ee0
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [eax]
push edx
call fcn.00417140
add esp, 0x14
movzx eax, byte [ebp - 0x41]
test eax, eax
je 0x474f7b
mov ecx, dword [ebp + 0x1c]
and ecx, 0x200000
jne 0x474f7b
mov edx, dword [ebp - 0x28]
push edx
call fcn.004141a0
add esp, 4
xor eax, eax
jne 0x474f7b
mov ecx, dword [ebp + 0x1c]
and ecx, 0x20
je 0x474f8e
mov al, byte [ebp - 0x40]
jmp 0x474f91
mov al, byte [ebp - 0x41]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop ebx
mov esp, ebp
pop ebp
ret