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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x1b8
push esi
mov esi, dword [0x103f3c74]
push edi
mov dword [ebp - 0x28], edx
mov dword [ebp - 0xb4], ecx
mov eax, dword [esi + 0x198c]
mov dword [ebp - 0x34], esi
mov byte [eax + 0x7c], 1
mov edi, dword [esi + 0x198c]
mov dword [ebp - 0x14], edi
cmp byte [edi + 0x7f], 0
jne 0x10053740
mov edx, dword [ebx + 0x10]
mov eax, edx
shr eax, 0xe
mov ecx, edx
and eax, 0xffffff01
shr ecx, 0x14
mov dword [ebp - 0x40], eax
and ecx, 0xffffff01
mov eax, edx
mov dword [ebp - 0x18], ecx
shr eax, 0xf
and eax, 0xffffff01
mov dword [ebp - 0x7c], eax
mov eax, edx
shr eax, 0x10
not al
and eax, 0xffffff01
mov dword [ebp - 0x3c], eax
mov eax, edx
shr eax, 0x12
and eax, 0xffffff01
mov dword [ebp - 0x58], eax
test cl, cl
je 0x1005359d
call fcn.100395f0
push 0
push dword [ebp - 0xb4]
mov ecx, edi
call fcn.10030e20
movss xmm0, dword [0x103b742c]
mov edx, dword [ebp - 0xb4]
push ecx
mov dword [esp], 0xbf800000
lea ecx, [ebp - 0x10c]
push 1
push 0
mov dword [ebp - 0x20], eax
movss dword [ebp - 0x74], xmm0
call fcn.10034090
mov eax, dword [ebx + 0xc]
add esp, 0xc
cmp byte [ebp - 0x18], 0
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x2c], eax
je 0x10053607
mov eax, dword [0x103f3c74]
movss xmm0, dword [eax + 0x18ac]
mulss xmm0, dword [0x103b72cc]
jmp 0x1005360f
movss xmm0, dword [ebp - 0x108]
movss dword [ebp - 0x50], xmm0
movss xmm0, dword [esi + 0x1538]
movss dword [ebp - 0xb8], xmm0
call fcn.10038cb0
movss xmm1, dword [ebp - 0xb8]
lea ecx, [ebp - 0xa0]
push dword [ebp - 0x2c]
addss xmm1, xmm1
push dword [ebp - 0x68]
addss xmm1, dword [ebp - 0x50]
movaps xmm2, xmm1
movaps xmm1, xmm0
call fcn.10031700
movss xmm3, dword [edi + 0xc8]
xorps xmm6, xmm6
movss xmm2, dword [edi + 0xcc]
movaps xmm1, xmm3
addss xmm1, dword [ebp - 0xa0]
addss xmm2, dword [ebp - 0x9c]
movss xmm4, dword [ebp - 0x10c]
add esp, 8
comiss xmm4, xmm6
movss dword [ebp - 0x98], xmm3
movss xmm5, dword [edi + 0xcc]
movss dword [ebp - 0x94], xmm5
movss dword [ebp - 0x90], xmm1
movss dword [ebp - 0x8c], xmm2
jbe 0x100536bd
movss xmm0, dword [esi + 0x154c]
addss xmm0, xmm4
jmp 0x100536c0
xorps xmm0, xmm0
cmp byte [ebp - 0x18], 0
addss xmm1, xmm0
addss xmm2, xmm6
movss dword [ebp - 0x11c], xmm3
movss dword [ebp - 0x118], xmm5
lea ecx, [ebp - 0x11c]
mov dword [ebp - 0x48], edi
movss dword [ebp - 0x114], xmm1
movss dword [ebp - 0x110], xmm2
je 0x100537d1
mov edi, dword [ebp - 0x20]
lea eax, [ebp - 0x98]
push eax
mov edx, edi
call fcn.100312a0
add esp, 4
test al, al
jne 0x1005374b
movss xmm0, dword [esi + 0x1538]
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x11c]
movss dword [ebp - 0x2c], xmm0
call fcn.1002d200
movss xmm1, dword [ebp - 0x2c]
mov ecx, eax
call fcn.10031190
call fcn.10039720
xor al, al
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push 0
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x98]
call fcn.1002d200
mov edx, eax
mov ecx, edi
call fcn.10034850
add esp, 4
test al, al
jne 0x10053795
call fcn.100346e0
mov ecx, 3
call fcn.10039040
mov ecx, 1
call fcn.10039000
call fcn.10039720
xor al, al
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov ecx, dword [0x103f3c74]
mov eax, dword [ecx + 0x198c]
mov byte [eax + 0x7c], 1
mov ecx, dword [ecx + 0x198c]
mov dword [ebp - 0x48], ecx
mov eax, dword [ecx + 0x138]
or dword [ecx + 0x140], eax
movss xmm0, dword [ebp - 0xa0]
subss xmm0, dword [ecx + 0x70]
movss dword [ebp - 0xa0], xmm0
jmp 0x10053815
movss xmm0, dword [esi + 0x1538]
lea eax, [ebp - 0x68]
push eax
movss dword [ebp - 0x2c], xmm0
call fcn.1002d200
movss xmm1, dword [ebp - 0x2c]
mov ecx, eax
call fcn.10031190
mov edi, dword [ebp - 0x20]
lea eax, [ebp - 0x98]
push eax
mov edx, edi
lea ecx, [ebp - 0x11c]
call fcn.100312a0
add esp, 4
test al, al
je 0x10053740
mov edx, edi
lea ecx, [ebp - 0x98]
call fcn.100314e0
mov byte [ebp - 2], al
test al, al
je 0x10053833
mov dword [esi + 0x1c64], 1
cmp byte [ebp - 0x7c], 0
je 0x100538b1
mov ecx, dword [esi + 0x18a8]
push 0x2a
call fcn.1004b7e0
mov edi, dword [ebp - 0x34]
add esi, 0x2b94
mov edx, eax
mov ecx, dword [edi + 0x18a8]
mov ecx, dword [ecx + 0x10]
mov dword [esi + 0x10], ecx
mov ecx, dword [edi + 0x18a8]
mov ecx, dword [ecx + 0x44]
mov dword [esi + 0x44], ecx
mov ecx, dword [edi + 0x18a8]
mov eax, dword [ecx + 0x30]
mov dword [esi + 0x30], eax
mov eax, dword [ecx + 0x34]
mov ecx, esi
mov dword [esi + 0x34], eax
mov eax, dword [edi + 0x18a8]
mov eax, dword [eax + 0x48]
mov dword [esi + 0x48], eax
mov eax, dword [edi + 0x18a8]
mov eax, dword [eax + 0x4c]
mov dword [esi + 0x4c], eax
mov eax, dword [edi + 0x18a8]
mov eax, dword [eax + 0x38]
mov dword [esi + 0x38], eax
mov dword [esi + 0x2c], edx
mov eax, dword [edx + 4]
mov dword [esi + 0xc], eax
call fcn.10038d50
mov esi, edi
mov ecx, dword [ebp - 0x20]
lea eax, [esi + 0x1d24]
xor edi, edi
mov dword [ebp - 0x2c], eax
cmp dword [eax], ecx
mov edx, ecx
mov ecx, dword [ebp - 0x14]
cmove edi, eax
test dword [ebx + 0x10], 0x440
mov dword [ebp - 0xc], edi
sete al
movzx eax, al
push eax
call fcn.10031620
mov dl, al
add esp, 4
mov byte [ebp - 0x23], dl
test dl, dl
je 0x10053900
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x328]
cmp ecx, dword [eax + 0x330]
jne 0x10053900
mov al, 1
jmp 0x10053902
xor al, al
mov byte [ebp - 6], al
test dl, dl
je 0x10053911
mov byte [ebp - 3], 1
test al, al
je 0x10053915
mov byte [ebp - 3], 0
cmp byte [ebp - 2], 0
je 0x10053928
cmp byte [esi + 0x3d0], 0
mov byte [ebp - 0xd], 1
jne 0x1005392c
mov byte [ebp - 0xd], 0
mov eax, dword [esi + 0x19ac]
mov ecx, dword [ebp - 0x20]
cmp eax, ecx
je 0x10053958
cmp dword [esi + 0x1ab0], ecx
je 0x10053952
cmp dword [esi + 0x1aa4], ecx
jne 0x10053958
cmp dword [esi + 0x1ac4], 3
jne 0x10053958
mov byte [ebp - 4], 1
jmp 0x1005395c
mov byte [ebp - 4], 0
cmp byte [ebp - 0x18], 0
je 0x10053984
test edi, edi
je 0x10053984
test eax, eax
jne 0x10053984
mov ecx, dword [ebp - 0x48]
push eax
push str.SCROLLY
call fcn.10030e70
mov byte [ebp - 5], 1
cmp dword [esi + 0x19b0], eax
je 0x10053988
mov byte [ebp - 5], 0
cmp byte [ebp - 0x18], 0
je 0x100539b1
test edi, edi
je 0x100539b1
mov ecx, dword [ebp - 0x48]
push 0
push str.SCROLLY
call fcn.10030e70
mov ecx, dword [esi + 0x19ac]
cmp ecx, eax
jne 0x100539b1
mov byte [ebp - 0x4a], 1
jmp 0x100539bb
mov ecx, dword [esi + 0x19ac]
mov byte [ebp - 0x4a], 0
mov edx, dword [ebp - 0x20]
mov eax, ecx
mov byte [ebp - 0x38], 0
cmp eax, edx
je 0x100539de
test byte [ebx + 0x10], 0x10
jne 0x100539d4
cmp byte [ebp - 4], 0
je 0x100539de
cmp byte [ebp - 0x18], 0
mov byte [ebp - 0x1c], 1
je 0x100539e2
mov byte [ebp - 0x1c], 0
cmp byte [ebp - 0x23], 0
jne 0x10053a17
cmp byte [ebp - 0xd], 0
jne 0x10053a17
cmp byte [ebp - 5], 0
jne 0x10053a17
cmp byte [ebp - 4], 0
jne 0x10053a17
mov eax, dword [ebp - 0x38]
mov ecx, 1
cmp byte [esi + 0x3d0], 0
movzx eax, al
cmovne eax, ecx
mov dword [ebp - 0x38], eax
jmp 0x10053b4f
cmp ecx, edx
je 0x10053b11
mov edi, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0xc], edi
mov dword [edi + 0xe5c], 0xbe99999a
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x10053a35
sub esi, ecx
lea ecx, [edi + 0x24]
inc esi
push esi
call fcn.1003f310
push esi
push dword [ebp - 0x28]
push dword [edi + 0x2c]
call fcn.1008ff70
mov eax, dword [ebx + 8]
lea ecx, [edi + 0xc]
mov esi, dword [edi + 4]
add esp, 0xc
inc eax
mov dword [ebp - 0xc0], 0
push eax
call fcn.1003f350
mov edx, dword [ebx + 8]
lea eax, [ebp - 0xc0]
mov ecx, dword [edi + 0x14]
push eax
push 0
push dword [ebp - 0x28]
call fcn.1002f020
mov ecx, dword [ebp - 0xc0]
add esp, 0xc
sub ecx, dword [ebp - 0x28]
mov dword [edi + 8], ecx
mov ecx, dword [ebp - 0x20]
mov dword [edi + 4], eax
cmp dword [edi], ecx
jne 0x10053aae
cmp esi, eax
jne 0x10053aae
mov ecx, edi
call fcn.1004d060
jmp 0x10053ae4
mov eax, dword [ebp - 0x18]
movzx edx, al
mov dword [edi], ecx
xor edx, 1
lea ecx, [edi + 0x38]
mov dword [edi + 0x34], 0
call fcn.10053300
mov eax, dword [ebp - 0x18]
test al, al
jne 0x10053ae7
mov eax, dword [ebp - 0x1c]
mov ecx, 1
cmp byte [ebp - 6], 0
movzx eax, al
cmovne eax, ecx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x18]
test dword [ebx + 0x10], 0x2000
je 0x10053af4
mov byte [edi + 0x44], 1
mov esi, dword [ebp - 0x34]
test al, al
jne 0x10053b11
cmp byte [ebp - 3], al
jne 0x10053b0d
cmp byte [ebp - 0xd], al
je 0x10053b11
cmp byte [esi + 0xf8], al
je 0x10053b11
mov byte [ebp - 0x1c], 1
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x20]
call fcn.10030f90
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x20]
call fcn.10031040
mov ecx, dword [ebp - 0x14]
call fcn.100389d0
cmp byte [ebp - 0x18], 0
mov dword [esi + 0x19c8], 2
jne 0x10053b4f
test byte [ebx + 0x10], 0x80
jne 0x10053b4f
mov dword [esi + 0x19c4], 0xc
mov eax, dword [esi + 0x19ac]
mov ecx, dword [ebp - 0x20]
cmp eax, ecx
jne 0x10053b72
test edi, edi
jne 0x10053b72
xor edx, edx
xor ecx, ecx
call fcn.10030f90
mov eax, dword [esi + 0x19ac]
mov ecx, dword [ebp - 0x20]
xor dl, dl
mov byte [ebp - 0x23], 0
mov byte [ebp - 1], dl
mov dword [ebp - 0x44], 0
cmp eax, ecx
jne 0x10053e42
cmp byte [ebp - 0x40], dl
je 0x10053be1
cmp byte [esi + 0x19bc], dl
jne 0x10053be1
mov eax, dword [ebx + 8]
lea ecx, [edi + 0xc]
inc eax
mov dword [ebp - 0xc4], 0
push eax
call fcn.1003f350
mov edx, dword [edi + 0xc]
lea eax, [ebp - 0xc4]
mov ecx, dword [edi + 0x14]
push eax
push 0
push dword [ebp - 0x28]
call fcn.1002f020
mov dword [edi + 4], eax
add esp, 0xc
mov eax, dword [ebp - 0xc4]
mov ecx, edi
sub eax, dword [ebp - 0x28]
mov dword [edi + 8], eax
call fcn.1004d060
mov esi, dword [ebp - 0x34]
mov eax, dword [edi + 8]
mov dword [ebp - 0x44], eax
mov eax, dword [ebx + 8]
mov dword [edi + 0x30], eax
mov eax, dword [ebx + 0x10]
mov dword [edi + 0xe64], eax
mov dword [edi + 0xe68], 0
mov dword [edi + 0xe6c], 0
cmp byte [esi + 0xe8], 0
mov dword [esi + 0x2e74], 1
sete al
cmp byte [ebp - 0x18], 0
mov byte [esi + 0x19bd], al
movss xmm2, dword [esi + 0xe0]
subss xmm2, dword [ebp - 0x98]
subss xmm2, dword [esi + 0x1534]
addss xmm2, dword [edi + 0x34]
je 0x10053c64
mov eax, dword [ebp - 0x48]
movss xmm3, dword [esi + 0xe4]
subss xmm3, dword [eax + 0xcc]
subss xmm3, dword [esi + 0x1538]
jmp 0x10053c74
movss xmm3, dword [esi + 0x18ac]
mulss xmm3, dword [0x103b71a8]
cmp byte [ebp - 0x1c], 0
mov cl, byte [esi + 0xad]
mov byte [ebp - 3], cl
jne 0x10053d72
mov dl, byte [ebp - 2]
test dl, dl
je 0x10053ca0
mov al, byte [esi + 0x3d5]
test cl, cl
jne 0x10053cd4
test al, al
jne 0x10053d72
cmp byte [esi + 0x3d0], 0
mov al, byte [edi + 0xe61]
je 0x10053d23
test al, al
jne 0x10053d23
test dl, dl
je 0x10053d83
lea edx, [edi + 0x38]
mov ecx, edi
call fcn.10052190
mov dword [edi + 0xe5c], 0xbe99999a
jmp 0x10053d80
test al, al
je 0x10053ca0
push 0x1000c
lea edx, [edi + 0x38]
mov ecx, edi
call fcn.10052600
add esp, 4
mov byte [edi + 0xe60], 1
lea edx, [edi + 0x38]
mov dword [edi + 0xe5c], 0xbe99999a
mov ecx, edi
push 0x3000d
call fcn.10052600
mov esi, dword [ebp - 0x34]
add esp, 4
mov byte [edi + 0xe60], 1
mov dword [edi + 0xe5c], 0xbe99999a
jmp 0x10053d80
cmp byte [esi + 0xe8], 0
je 0x10053d83
test al, al
jne 0x10053d83
movss xmm0, dword [esi + 0x370]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10053d55
movss xmm0, dword [esi + 0x374]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x10053d83
lea edx, [edi + 0x38]
mov ecx, edi
call fcn.100521e0
mov dword [edi + 0xe5c], 0xbe99999a
mov byte [edi + 0xe60], 1
jmp 0x10053d80
mov ecx, edi
call fcn.1004d090
mov byte [edi + 0xe61], 1
mov cl, byte [ebp - 3]
cmp byte [edi + 0xe61], 0
je 0x10053d9c
cmp byte [esi + 0xe8], 0
jne 0x10053d9c
mov byte [edi + 0xe61], 0
mov edx, dword [esi + 0x14f0]
lea eax, [esi + 0x14f0]
test edx, edx
jle 0x10053e42
cmp byte [esi + 0xf8], 0
je 0x10053dc2
cmp byte [esi + 0xfa], 0
je 0x10053e39
test cl, cl
je 0x10053dcf
cmp byte [esi + 0xfb], 0
jne 0x10053e39
cmp byte [ebp - 0x40], 0
jne 0x10053e39
cmp byte [ebp - 4], 0
jne 0x10053e39
xor ecx, ecx
mov dword [ebp - 0x6c], ecx
test edx, edx
jle 0x10053e39
mov eax, dword [esi + 0x14f8]
mov edx, dword [ebx + 0x10]
push 0
push 0
movzx eax, word [eax + ecx*2]
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x50], eax
call fcn.10053350
add esp, 8
test al, al
je 0x10053e28
push dword [ebp - 0x50]
lea edx, [edi + 0x38]
mov ecx, edi
call fcn.10052600
add esp, 4
mov byte [edi + 0xe60], 1
mov dword [edi + 0xe5c], 0xbe99999a
mov ecx, dword [ebp - 0x6c]
lea eax, [esi + 0x14f0]
inc ecx
mov dword [ebp - 0x6c], ecx
cmp ecx, dword [eax]
jl 0x10053de4
push 0
mov ecx, eax
call fcn.1003f350
mov eax, dword [ebp - 0x20]
xor cl, cl
mov byte [ebp - 2], cl
cmp dword [esi + 0x19ac], eax
jne 0x100544d7
cmp byte [esi + 0x19bc], cl
jne 0x100544d7
cmp byte [ebp - 0x38], cl
jne 0x100544d7
mov dl, byte [esi + 0xf9]
xor eax, eax
mov dh, byte [esi + 0xad]
test dl, dl
mov ecx, 0x20000
mov byte [ebp - 0x5d], dh
cmovne eax, ecx
mov dword [ebp - 0x14], eax
mov al, byte [esi + 0xf8]
test dh, dh
je 0x10053edd
cmp byte [esi + 0xfb], 0
je 0x10053ea7
test al, al
jne 0x10053ea7
mov ecx, 1
jmp 0x10053ea9
xor ecx, ecx
test ecx, ecx
jne 0x10053eea
xor ah, ah
mov byte [ebp - 4], ah
mov cl, al
test dh, dh
je 0x10053efb
cmp byte [esi + 0xfb], 0
je 0x10053efb
test dl, dl
je 0x10053efb
mov cl, byte [esi + 0xf8]
test cl, cl
jne 0x10053efb
cmp byte [esi + 0xfa], cl
jne 0x10053efb
mov byte [ebp - 0x22], 1
jmp 0x10053eff
test al, al
je 0x10053ead
cmp byte [esi + 0xfb], 0
jne 0x10053ead
cmp byte [esi + 0xfa], 0
jne 0x10053ead
test dl, dl
jne 0x10053ead
mov ah, 1
jmp 0x10053eaf
mov byte [ebp - 0x22], 0
test dh, dh
je 0x10053fb3
cmp byte [esi + 0xfb], 0
mov al, byte [esi + 0xfa]
mov byte [ebp - 0xd], al
je 0x10053fb6
test cl, cl
jne 0x10053fb6
test al, al
jne 0x10053fb6
mov byte [ebp - 3], 1
mov al, byte [esi + 0xf9]
mov byte [ebp - 0x21], 0
test al, al
je 0x10053f57
test cl, cl
jne 0x10053f57
cmp byte [esi + 0xfa], cl
jne 0x10053f57
mov byte [ebp - 6], 1
cmp byte [esi + 0xfb], cl
je 0x10053f5b
mov byte [ebp - 6], 0
test ah, ah
je 0x10053f76
mov eax, dword [0x103f3c74]
mov ecx, dword [eax + 0x7c]
test ecx, ecx
js 0x10053f76
mov dl, 1
call fcn.10034260
test al, al
jne 0x10053f93
cmp byte [ebp - 6], 0
je 0x10053feb
mov eax, dword [0x103f3c74]
mov ecx, dword [eax + 0x5c]
test ecx, ecx
js 0x10053feb
mov dl, 1
call fcn.10034260
test al, al
je 0x10053feb
cmp byte [ebp - 0x40], 0
jne 0x10053feb
cmp byte [ebp - 0x7c], 0
jne 0x10053feb
cmp byte [ebp - 0x18], 0
je 0x10053fad
mov eax, dword [edi + 0x3c]
cmp eax, dword [edi + 0x40]
je 0x10053feb
mov byte [ebp - 5], 1
jmp 0x10053fef
mov byte [ebp - 0xd], cl
mov byte [ebp - 3], 0
test cl, cl
je 0x10053f31
test dl, dl
jne 0x10053f31
cmp byte [esi + 0xfa], dl
jne 0x10053f31
cmp byte [esi + 0xfb], dl
jne 0x10053f31
mov byte [ebp - 0x21], 1
jmp 0x10053f57
mov byte [ebp - 5], 0
cmp byte [ebp - 4], 0
je 0x1005400c
mov eax, dword [0x103f3c74]
mov ecx, dword [eax + 0x74]
test ecx, ecx
js 0x1005400c
mov dl, 1
call fcn.10034260
test al, al
jne 0x10054029
cmp byte [ebp - 0x21], 0
je 0x10054043
mov eax, dword [0x103f3c74]
mov ecx, dword [eax + 0x58]
test ecx, ecx
js 0x10054043
mov dl, 1
call fcn.10034260
test al, al
je 0x10054043
cmp byte [ebp - 0x7c], 0
jne 0x10054043
cmp byte [ebp - 0x18], 0
je 0x1005403d
mov eax, dword [edi + 0x3c]
cmp eax, dword [edi + 0x40]
je 0x10054043
mov byte [ebp - 0x49], 1
jmp 0x10054047
mov byte [ebp - 0x49], 0
cmp byte [ebp - 4], 0
je 0x10054064
mov eax, dword [0x103f3c74]
mov ecx, dword [eax + 0x78]
test ecx, ecx
js 0x10054064
mov dl, 1
call fcn.10034260
test al, al
jne 0x10054081
cmp byte [ebp - 6], 0
je 0x1005408b
mov eax, dword [0x103f3c74]
mov ecx, dword [eax + 0x58]
test ecx, ecx
js 0x1005408b
mov dl, 1
call fcn.10034260
test al, al
je 0x1005408b
cmp byte [ebp - 0x40], 0
mov byte [ebp - 6], 1
je 0x1005408f
mov byte [ebp - 6], 0
cmp byte [ebp - 4], 0
je 0x100540bf
mov eax, dword [0x103f3c74]
mov ecx, dword [eax + 0x84]
test ecx, ecx
js 0x100540bf
mov dl, 1
call fcn.10034260
test al, al
je 0x100540bf
cmp byte [ebp - 0x40], 0
jne 0x100540bf
cmp byte [ebp - 0x3c], 0
mov byte [ebp - 0x21], 1
jne 0x100540c3
mov byte [ebp - 0x21], 0
cmp byte [ebp - 4], 0
je 0x100540e3
mov eax, dword [0x103f3c74]
mov ecx, dword [eax + 0x80]
test ecx, ecx
js 0x100540e3
mov dl, 1
call fcn.10034260
test al, al
jne 0x10054103
cmp byte [ebp - 0x22], 0
je 0x10054113
mov eax, dword [0x103f3c74]
mov ecx, dword [eax + 0x84]
test ecx, ecx
js 0x10054113
mov dl, 1
call fcn.10034260
test al, al
je 0x10054113
cmp byte [ebp - 0x40], 0
jne 0x10054113
cmp byte [ebp - 0x3c], 0
mov byte [ebp - 0x22], 1
jne 0x10054117
mov byte [ebp - 0x22], 0
mov eax, dword [0x103f3c74]
mov ecx, dword [eax + 0x38]
test ecx, ecx
js 0x100541df
mov dl, 1
call fcn.10034260
test al, al
je 0x100541df
cmp byte [ebp - 3], 0
je 0x10054143
mov eax, 0x10004
jmp 0x10054154
mov eax, 0x10000
mov ecx, 0x1000c
cmp byte [ebp - 0xd], 0
cmovne eax, ecx
or eax, dword [ebp - 0x14]
push eax
lea edx, [edi + 0x38]
mov ecx, edi
call fcn.10052600
mov dword [edi + 0xe5c], 0xbe99999a
add esp, 4
mov byte [edi + 0xe60], 1
mov esi, dword [ebp - 0xc]
mov dh, byte [ebp - 1]
mov cl, byte [ebp - 2]
mov edi, dword [ebp - 0x34]
mov eax, dword [edi + 0x19ac]
cmp eax, dword [ebp - 0x20]
jne 0x10054aa2
xor eax, eax
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x1c], eax
test cl, cl
je 0x10054712
cmp byte [ebp - 0x40], al
jne 0x100546ff
mov ecx, dword [esi + 0x2c]
mov eax, dword [ebp - 0x28]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100546e9
test dl, dl
je 0x100541d8
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100546e9
add eax, 2
add ecx, 2
test dl, dl
jne 0x100541b4
xor eax, eax
jmp 0x100546ee
mov eax, dword [0x103f3c74]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
js 0x10054213
mov dl, 1
call fcn.10034260
test al, al
je 0x10054213
cmp byte [ebp - 3], 0
je 0x10054206
mov eax, 0x10005
jmp 0x10054154
mov eax, 0x10001
lea ecx, [eax + 0xc]
jmp 0x1005414d
mov eax, dword [0x103f3c74]
mov ecx, dword [eax + 0x40]
test ecx, ecx
js 0x1005426d
mov dl, 1
call fcn.10034260
test al, al
je 0x1005426d
cmp byte [ebp - 0x18], 0
je 0x1005426d
cmp byte [esi + 0xf8], 0
je 0x1005425d
mov eax, dword [ebp - 0x48]
mov ecx, eax
movss xmm1, dword [eax + 0x5c]
subss xmm1, dword [esi + 0x18ac]
maxss xmm1, dword [0x103b70f8]
call fcn.100390c0
jmp 0x10054176
movzx eax, byte [ebp - 3]
lea eax, [eax*4 + 0x10002]
jmp 0x10054154
mov eax, dword [0x103f3c74]
mov ecx, dword [eax + 0x44]
test ecx, ecx
js 0x100542c8
mov dl, 1
call fcn.10034260
test al, al
je 0x100542c8
cmp byte [ebp - 0x18], 0
je 0x100542c8
cmp byte [esi + 0xf8], 0
je 0x100542b8
call fcn.10039320
mov eax, dword [ebp - 0x48]
mov ecx, eax
movss xmm1, dword [esi + 0x18ac]
addss xmm1, dword [eax + 0x5c]
minss xmm1, xmm0
call fcn.100390c0
jmp 0x10054176
movzx eax, byte [ebp - 3]
lea eax, [eax*4 + 0x10003]
jmp 0x10054154
mov eax, dword [0x103f3c74]
mov ecx, dword [eax + 0x50]
test ecx, ecx
js 0x100542f6
mov dl, 1
call fcn.10034260
test al, al
je 0x100542f6
xor eax, eax
cmp byte [esi + 0xf8], al
setne al
lea eax, [eax*2 + 0x10004]
jmp 0x10054154
mov eax, dword [0x103f3c74]
mov ecx, dword [eax + 0x54]
test ecx, ecx
js 0x10054324
mov dl, 1
call fcn.10034260
test al, al
je 0x10054324
xor eax, eax
cmp byte [esi + 0xf8], al
setne al
lea eax, [eax*2 + 0x10005]
jmp 0x10054154
mov eax, dword [0x103f3c74]
mov ecx, dword [eax + 0x5c]
test ecx, ecx
js 0x10054350
mov dl, 1
call fcn.10034260
test al, al
je 0x10054350
cmp byte [ebp - 0x40], 0
jne 0x10054350
mov ecx, dword [ebp - 0x14]
or ecx, 0x10008
push ecx
jmp 0x10054158
mov eax, dword [0x103f3c74]
mov ecx, dword [eax + 0x60]
test ecx, ecx
js 0x100543d5
mov dl, 1
call fcn.10034260
test al, al
je 0x100543d5
cmp byte [ebp - 0x40], 0
jne 0x100543d5
mov eax, dword [edi + 0x3c]
cmp eax, dword [edi + 0x40]
jne 0x100543c6
cmp byte [ebp - 0xd], 0
je 0x10054382
push 0x3000c
jmp 0x100543a8
cmp byte [ebp - 0x5d], 0
je 0x100543c6
cmp byte [esi + 0xfb], 0
je 0x100543c6
cmp byte [esi + 0xfa], 0
jne 0x100543c6
cmp byte [esi + 0xf8], 0
jne 0x100543c6
push 0x30004
lea edx, [edi + 0x38]
mov ecx, edi
call fcn.10052600
mov dword [edi + 0xe5c], 0xbe99999a
add esp, 4
mov byte [edi + 0xe60], 1
mov ecx, dword [ebp - 0x14]
or ecx, 0x10009
push ecx
jmp 0x10054158
mov eax, dword [0x103f3c74]
mov ecx, dword [eax + 0x68]
test ecx, ecx
js 0x10054451
mov dl, 1
call fcn.10034260
test al, al
je 0x10054451
mov eax, dword [ebx + 0x10]
mov edx, dword [ebp - 0x18]
shr eax, 0xb
and al, 1
test dl, dl
je 0x10054409
mov cl, byte [esi + 0xf8]
test al, al
je 0x1005441a
test cl, cl
jne 0x1005441e
mov esi, dword [ebp - 0xc]
mov dh, 1
mov byte [ebp - 0x38], 1
mov byte [ebp - 1], dh
jmp 0x1005417c
test cl, cl
jne 0x10054409
cmp byte [ebp - 0x40], 0
jne 0x10054176
mov edx, dword [ebx + 0x10]
lea ecx, [ebp - 0x80]
push 0
push 0
mov dword [ebp - 0x80], 0xa
call fcn.10053350
add esp, 8
test al, al
je 0x10054176
push dword [ebp - 0x80]
jmp 0x10054158
test dword [ebx + 0x10], 0x400
je 0x100544bb
mov eax, dword [0x103f3c74]
mov ecx, dword [eax + 0x34]
test ecx, ecx
js 0x100544bb
mov dl, 1
call fcn.10034260
test al, al
je 0x100544bb
cmp byte [esi + 0xf8], 0
jne 0x100544bb
cmp byte [esi + 0xf9], 0
jne 0x100544bb
cmp byte [esi + 0xfa], 0
jne 0x100544bb
cmp byte [ebp - 0x40], 0
jne 0x100544bb
mov edx, dword [ebx + 0x10]
lea ecx, [ebp - 0x54]
push 0
push 0
mov dword [ebp - 0x54], 9
call fcn.10053350
add esp, 8
test al, al
je 0x10054176
push dword [ebp - 0x54]
jmp 0x10054158
mov eax, dword [0x103f3c74]
mov ecx, dword [eax + 0x6c]
test ecx, ecx
js 0x100544e2
mov dl, 1
call fcn.10034260
test al, al
je 0x100544e2
mov cl, 1
mov byte [ebp - 0x38], cl
mov esi, dword [ebp - 0xc]
mov dh, byte [ebp - 1]
jmp 0x1005417f
mov al, byte [ebp - 0x21]
test al, al
jne 0x100546c5
cmp byte [ebp - 0x22], al
jne 0x100546c5
cmp byte [ebp - 4], al
je 0x1005451e
mov eax, dword [0x103f3c74]
mov ecx, dword [eax + 0x70]
test ecx, ecx
js 0x1005451e
mov dl, 1
call fcn.10034260
test al, al
je 0x1005451e
mov ecx, edi
call fcn.1004d090
jmp 0x1005416f
mov al, byte [ebp - 5]
test al, al
jne 0x100545f1
cmp byte [ebp - 0x49], al
jne 0x100545f1
cmp byte [ebp - 6], al
je 0x10054176
call fcn.10031890
mov esi, eax
test esi, esi
je 0x10054176
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10054550
sub ecx, edx
lea ecx, [ecx*2 + 2]
call fcn.10031840
xor ecx, ecx
mov dword [ebp - 0x1c], eax
cmp byte [esi], cl
je 0x100545c2
xor edi, edi
push 0
mov edx, esi
lea ecx, [ebp - 0x3c]
call fcn.1002ee80
add esi, eax
add esp, 4
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x100545b6
cmp eax, 0x10000
jae 0x100545b1
mov edx, dword [ebx + 0x10]
lea ecx, [ebp - 0x3c]
push 0
push 0
call fcn.10053350
add esp, 8
test al, al
je 0x100545b1
mov ecx, dword [ebp - 0x1c]
mov ax, word [ebp - 0x3c]
mov word [ecx + edi*2], ax
inc edi
cmp byte [esi], 0
jne 0x10054570
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x54], edi
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x54]
xor edx, edx
mov word [eax + ecx*2], dx
test ecx, ecx
jle 0x100545e5
push ecx
push eax
lea edx, [edi + 0x38]
mov ecx, edi
call fcn.10052570
mov eax, dword [ebp - 0x1c]
add esp, 8
mov byte [edi + 0xe60], 1
mov ecx, eax
call fcn.10031860
jmp 0x10054176
cmp dword [esi + 0xcc], 0
je 0x10054685
mov ecx, dword [edi + 0x40]
mov eax, dword [edi + 0x3c]
cmp eax, ecx
je 0x1005460f
mov esi, ecx
cmovl esi, eax
jmp 0x10054611
xor esi, esi
cmp eax, ecx
mov dword [ebp - 0x80], esi
cmovge ecx, eax
jne 0x1005461e
mov ecx, dword [edi + 4]
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x54], ecx
lea edx, [eax + ecx*2]
lea ecx, [eax + esi*2]
call fcn.1002f210
mov edi, eax
lea ecx, [edi + 1]
call fcn.10031840
mov ecx, dword [ebp - 0x54]
lea edx, [edi + 1]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0xc]
mov esi, dword [eax + 0x14]
lea ecx, [esi + ecx*2]
push ecx
mov ecx, dword [ebp - 0x80]
lea ecx, [esi + ecx*2]
mov esi, dword [ebp - 0x2c]
push ecx
mov ecx, esi
call fcn.1002f0e0
mov eax, dword [0x103f3c74]
add esp, 8
mov ecx, dword [eax + 0xcc]
test ecx, ecx
je 0x1005467b
push esi
push dword [eax + 0xd0]
call ecx
add esp, 8
mov ecx, esi
call fcn.10031860
mov al, byte [ebp - 5]
mov esi, dword [ebp - 0xc]
test al, al
je 0x10054179
mov eax, dword [esi + 0x3c]
cmp eax, dword [esi + 0x40]
jne 0x1005469f
mov ecx, esi
call fcn.1004d090
mov byte [esi + 0xe60], 1
mov eax, dword [esi + 0x3c]
cmp eax, dword [esi + 0x40]
je 0x10054179
lea edx, [esi + 0x38]
mov ecx, esi
call fcn.10052450
mov byte [esi + 0x47], 0
jmp 0x10054179
movzx eax, al
lea edx, [edi + 0x38]
xor eax, 1
mov ecx, edi
add eax, 0x1000a
push eax
call fcn.10052600
mov eax, dword [edi + 0x38]
mov dword [edi + 0x40], eax
mov dword [edi + 0x3c], eax
jmp 0x10054162
sbb eax, eax
or eax, 1
test eax, eax
je 0x100546ff
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0x24]
dec eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 0x10]
test dh, dh
je 0x100549a2
test al, 0x20
je 0x100549a2
cmp byte [ebp - 0x40], 0
jne 0x10054743
mov edi, dword [ebp - 0xc]
lea ecx, [esi + 0x18]
mov eax, dword [edi + 0xc]
lea eax, [eax*4 + 1]
push eax
call fcn.1003f310
mov edx, dword [esi + 0x18]
mov esi, edi
push 0
push dword [edi + 0x14]
mov ecx, dword [esi + 0x20]
call fcn.1002f0e0
add esp, 8
mov edx, dword [ebx + 0x10]
test edx, 0x1c0
je 0x10054957
mov edi, 0x15
test dl, 0x40
je 0x1005477d
mov eax, dword [0x103f3c74]
mov ecx, dword [eax + 0x34]
test ecx, ecx
js 0x1005477d
mov dl, 1
call fcn.10034260
test al, al
je 0x1005477a
lea eax, [edi + 0x2b]
xor edi, edi
jmp 0x100547da
mov edx, dword [ebx + 0x10]
test dl, dl
jns 0x100547c9
mov eax, dword [0x103f3c74]
mov ecx, dword [eax + 0x40]
test ecx, ecx
js 0x100547a5
mov dl, 1
call fcn.10034260
test al, al
je 0x100547a2
mov eax, 0x80
lea edi, [eax - 0x7d]
jmp 0x100547da
mov edx, dword [ebx + 0x10]
mov eax, dword [0x103f3c74]
mov ecx, dword [eax + 0x44]
test ecx, ecx
js 0x100547c9
mov dl, 1
call fcn.10034260
test al, al
je 0x100547c6
mov eax, 0x80
lea edi, [eax - 0x7c]
jmp 0x100547da
mov edx, dword [ebx + 0x10]
test edx, 0x100
je 0x10054957
mov eax, 0x100
mov dword [ebp - 0x104], eax
xor ecx, ecx
mov eax, dword [ebx + 0x10]
xorps xmm0, xmm0
mov dword [ebp - 0x100], eax
mov eax, dword [esi + 0x20]
mov dword [ebp - 0xf0], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0xec], eax
mov eax, dword [esi + 0x30]
mov esi, dword [esi + 0x14]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0xc]
mov word [ebp - 0xd7], cx
mov byte [ebp - 0xd5], cl
mov dword [ebp - 0xfc], ecx
mov eax, dword [eax + 0x38]
mov byte [ebp - 0xe4], cl
mov ecx, esi
mov dword [ebp - 0xf8], 0
movlpd qword [ebp - 0xe3], xmm0
lea edx, [esi + eax*2]
mov dword [ebp - 0xdb], 0
mov dword [ebp - 0xf4], edi
call fcn.1002f210
mov edi, eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xe0], edi
mov ecx, dword [eax + 0x3c]
lea edx, [esi + ecx*2]
mov ecx, esi
call fcn.1002f210
mov dword [ebp - 0x2c], eax
mov ecx, esi
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax + 0x40]
lea edx, [esi + edx*2]
call fcn.1002f210
mov dword [ebp - 0x64], eax
mov dword [ebp - 0xd8], eax
lea eax, [ebp - 0x104]
push eax
xor eax, eax
call eax
mov edx, dword [ebp - 0xe0]
add esp, 4
cmp edx, edi
je 0x100548c5
mov ecx, dword [ebp - 0xf0]
add edx, ecx
call fcn.1002f090
mov esi, dword [ebp - 0xc]
mov dword [esi + 0x38], eax
mov byte [esi + 0xe60], 1
jmp 0x100548c8
mov esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0xdc]
cmp eax, dword [ebp - 0x2c]
je 0x100548e4
mov ecx, dword [ebp - 0xf0]
lea edx, [eax + ecx]
call fcn.1002f090
mov dword [esi + 0x3c], eax
mov eax, dword [ebp - 0xd8]
cmp eax, dword [ebp - 0x64]
je 0x10054900
mov ecx, dword [ebp - 0xf0]
lea edx, [eax + ecx]
call fcn.1002f090
mov dword [esi + 0x40], eax
cmp byte [ebp - 0xe4], 0
je 0x10054957
mov eax, dword [ebp - 0xec]
mov edx, dword [ebp - 0x44]
cmp eax, edx
jle 0x10054929
cmp byte [ebp - 0x58], 0
je 0x10054929
lea ecx, [esi + 0xc]
sub eax, edx
add eax, dword [ecx]
push eax
call fcn.1003f350
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 0x14]
push 0
push 0
push dword [ebp - 0xf0]
call fcn.1002f020
mov dword [esi + 4], eax
add esp, 0xc
mov eax, dword [ebp - 0xec]
mov dword [esi + 8], eax
mov dword [esi + 0xe5c], 0xbe99999a
cmp byte [ebp - 0x40], 0
jne 0x1005499c
mov edi, dword [esi + 0x20]
mov eax, edi
mov ecx, dword [ebp - 0x28]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10054985
test dl, dl
je 0x10054981
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10054985
add eax, 2
add ecx, 2
test dl, dl
jne 0x10054965
xor eax, eax
jmp 0x1005498a
sbb eax, eax
or eax, 1
test eax, eax
mov eax, dword [ebx + 0x10]
je 0x1005499f
mov ecx, dword [esi + 8]
mov dword [ebp - 0x14], edi
mov edi, dword [ebp - 0x34]
jmp 0x100549a5
mov eax, dword [ebx + 0x10]
mov edi, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
test edx, edx
je 0x10054a7e
cmp dword [ebp - 0x44], ecx
je 0x10054a4a
cmp byte [ebp - 0x58], 0
je 0x10054a4a
mov dword [ebp - 0x16c], eax
xorps xmm0, xmm0
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x15c], eax
lea eax, [ecx + 1]
cmp dword [ebx + 8], eax
movlpd qword [ebp - 0x164], xmm0
cmovge eax, dword [ebx + 8]
mov dword [ebp - 0x154], eax
lea eax, [ebp - 0x170]
push eax
xor eax, eax
movlpd qword [ebp - 0x150], xmm0
movlpd qword [ebp - 0x148], xmm0
mov dword [ebp - 0x170], 0x40000
mov dword [ebp - 0x158], ecx
mov dword [ebp - 0x168], 0
call eax
mov eax, dword [ebp - 0x15c]
add esp, 4
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x154]
mov dword [ebx + 8], eax
lea ecx, [eax - 1]
cmp dword [ebp - 0x158], ecx
cmovl ecx, dword [ebp - 0x158]
lea eax, [ecx + 1]
mov ecx, dword [ebx + 8]
cmp eax, ecx
cmovl ecx, eax
mov dword [ebx + 8], ecx
cmp ecx, 1
jb 0x10054a7a
jbe 0x10054a72
lea eax, [ecx - 1]
push eax
push edx
push dword [ebp - 0x28]
call fcn.10099300
mov ecx, dword [ebx + 8]
add esp, 0xc
mov eax, dword [ebp - 0x28]
mov byte [ecx + eax - 1], 0
mov byte [ebp - 0x23], 1
mov dword [esi + 0xe64], 0
mov dword [esi + 0xe68], 0
mov dword [esi + 0xe6c], 0
mov eax, dword [edi + 0x19ac]
cmp byte [ebp - 0x38], 0
mov ecx, dword [ebp - 0x20]
je 0x10054abb
cmp eax, ecx
jne 0x10054abb
xor edx, edx
xor ecx, ecx
call fcn.10030f90
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x18]
test dl, dl
jne 0x10054b43
mov edx, ecx
lea ecx, [ebp - 0x98]
push 1
call fcn.10030200
mov eax, dword [0x103f3c74]
lea ecx, [ebp - 0xb0]
movss xmm0, dword [edi + 0x153c]
add esp, 4
movss dword [ebp - 0x2c], xmm0
movups xmm0, xmmword [eax + 0x1618]
movaps xmmword [ebp - 0xb0], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [eax + 0x1500]
movss dword [ebp - 0xa4], xmm0
call fcn.1002f290
push dword [ebp - 0x8c]
movss xmm2, dword [ebp - 0x2c]
mov dl, 1
push dword [ebp - 0x90]
mov ecx, eax
push dword [ebp - 0x94]
push dword [ebp - 0x98]
call fcn.1002fbb0
mov edx, dword [ebp - 0x18]
add esp, 0x10
movss xmm0, dword [ebp - 0x98]
movss xmm2, dword [ebp - 0xa0]
movss xmm1, dword [ebp - 0x94]
movss dword [ebp - 0xd4], xmm0
addss xmm0, xmm2
movss dword [ebp - 0xd0], xmm1
movss dword [ebp - 0xcc], xmm0
movss xmm0, dword [ebp - 0x9c]
addss xmm0, xmm1
movss dword [ebp - 0xc8], xmm0
test dl, dl
je 0x10054ba6
mov ecx, dword [ebp - 0x48]
mov eax, dword [ecx + 0xc8]
mov dword [ebp - 0x30], eax
mov eax, dword [ecx + 0xcc]
mov dword [ebp - 0x2c], eax
jmp 0x10054bd0
movss xmm0, dword [ebp - 0x98]
addss xmm0, dword [edi + 0x1534]
movss dword [ebp - 0x30], xmm0
movss xmm0, dword [edi + 0x1538]
addss xmm0, dword [ebp - 0x94]
movss dword [ebp - 0x2c], xmm0
lea eax, [ebp - 0x30]
xorps xmm1, xmm1
movss xmm0, dword [eax]
movss dword [ebp - 0x88], xmm0
movss xmm0, dword [eax + 4]
movss dword [ebp - 0x84], xmm0
xorps xmm0, xmm0
movss dword [ebp - 0x6c], xmm0
movss dword [ebp - 0x50], xmm1
test esi, esi
je 0x10054c0c
cmp byte [ebp - 0x40], 0
jne 0x10054c0c
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x20]
cmp dword [edi + 0x19ac], eax
je 0x10054c21
cmp byte [ebp - 0x4a], 0
jne 0x10054c21
xor cl, cl
jmp 0x10054c23
mov cl, 1
mov byte [ebp - 3], cl
test esi, esi
je 0x10054c36
mov eax, dword [esi + 0x3c]
cmp eax, dword [esi + 0x40]
je 0x10054c36
mov al, 1
jmp 0x10054c38
xor al, al
mov byte [ebp - 5], al
test cl, cl
jne 0x10054d2a
test al, al
jne 0x10054d2a
mov dword [ebp - 0x44], 0
test dl, dl
je 0x10054c89
mov ecx, dword [ebp - 0x28]
lea edx, [ebp - 0x44]
movaps xmm0, xmm2
movss dword [ebp - 0x6c], xmm0
call fcn.10051b80
movss xmm1, dword [edi + 0x18ac]
movd xmm0, eax
mov eax, dword [ebp - 0x44]
cvtdq2ps xmm0, xmm0
mov dword [ebp - 0x58], eax
mulss xmm1, xmm0
movss dword [ebp - 0x50], xmm1
jmp 0x10054cb0
mov esi, dword [ebp - 0x28]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10054c91
sub ecx, edx
lea eax, [ecx + esi]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x44], eax
sub eax, esi
cmp eax, 0x200000
jge 0x1005552d
mov eax, dword [ebp - 0x48]
lea ecx, [ebp - 0xb0]
mov esi, dword [eax + 0x274]
mov eax, dword [0x103f3c74]
movups xmm0, xmmword [eax + 0x15a8]
movaps xmmword [ebp - 0xb0], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [eax + 0x1500]
movss dword [ebp - 0xa4], xmm0
call fcn.1002f290
cmp byte [ebp - 0x18], 0
lea ecx, [ebp - 0xd4]
movss xmm2, dword [edi + 0x18ac]
mov edx, 0
cmovne ecx, edx
push ecx
push ecx
mov dword [esp], edx
mov ecx, esi
push dword [ebp - 0x58]
push dword [ebp - 0x28]
push eax
lea eax, [ebp - 0x88]
push eax
push dword [edi + 0x18a8]
call fcn.10048e50
jmp 0x100554da
mov ecx, dword [esi + 0x14]
xor edx, edx
mov dword [ebp - 0x14], ecx
movss dword [ebp - 0x64], xmm1
movss dword [ebp - 0xb8], xmm1
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x1c], 0xfffffc18
mov dword [ebp - 0x38], 0xfffffc18
cmp byte [ebp - 3], dl
je 0x10054d75
mov eax, dword [esi + 0x38]
mov edx, 1
mov dword [ebp - 0x1c], 0xffffffff
lea eax, [ecx + eax*2]
mov dword [ebp - 0x20], eax
cmp byte [ebp - 5], 0
je 0x10054d99
mov ecx, dword [esi + 0x40]
cmp dword [esi + 0x3c], ecx
mov eax, dword [ebp - 0x14]
cmovl ecx, dword [esi + 0x3c]
inc edx
mov dword [ebp - 0x38], 0xffffffff
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x3c], eax
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
movzx eax, al
add edx, eax
xor eax, eax
movzx edi, word [edi]
mov dword [ebp - 0x2c], edi
test di, di
mov edi, dword [ebp - 0x34]
je 0x10054e07
mov eax, dword [ebp - 0x2c]
xor esi, esi
movzx edi, ax
nop dword [eax]
cmp di, 0xa
jne 0x10054ded
inc esi
cmp dword [ebp - 0x1c], 0xffffffff
jne 0x10054dda
cmp ecx, dword [ebp - 0x20]
jb 0x10054dda
dec edx
mov dword [ebp - 0x1c], esi
test edx, edx
jle 0x10054dfb
cmp dword [ebp - 0x38], 0xffffffff
jne 0x10054ded
cmp ecx, dword [ebp - 0x3c]
jb 0x10054ded
dec edx
mov dword [ebp - 0x38], esi
test edx, edx
jle 0x10054dfb
movzx eax, word [ecx + 2]
add ecx, 2
mov edi, eax
test ax, ax
jne 0x10054dc0
mov edi, dword [ebp - 0x34]
mov dword [ebp - 0x58], esi
mov esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x58]
cmp dword [ebp - 0x1c], 0xffffffff
lea edx, [eax + 1]
mov eax, dword [ebp - 0x20]
mov ecx, edx
cmovne ecx, dword [ebp - 0x1c]
cmp dword [ebp - 0x38], 0xffffffff
mov dword [ebp - 0x2c], ecx
mov ecx, edx
cmovne ecx, dword [ebp - 0x38]
mov dword [ebp - 0x58], ecx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x44], edx
mov edx, eax
cmp eax, ecx
jbe 0x10054e44
cmp word [edx - 2], 0xa
je 0x10054e41
add edx, 0xfffffffe
cmp edx, ecx
ja 0x10054e33
mov eax, dword [ebp - 0x20]
push 0
push 0
push 0
push eax
lea ecx, [ebp - 0x1b0]
call fcn.10051bc0
movd xmm4, dword [ebp - 0x2c]
add esp, 0x10
cmp dword [ebp - 0x58], 0
movss xmm0, dword [edi + 0x18ac]
movss xmm1, dword [eax]
cvtdq2ps xmm4, xmm4
movss dword [ebp - 0x20], xmm1
mulss xmm4, xmm0
movss dword [ebp - 0x2c], xmm4
jl 0x10054ee5
mov eax, dword [ebp - 0x3c]
mov edx, eax
mov ecx, dword [ebp - 0x14]
cmp eax, ecx
jbe 0x10054ea1
nop dword [eax]
cmp word [edx - 2], 0xa
je 0x10054e9e
add edx, 0xfffffffe
cmp edx, ecx
ja 0x10054e90
mov eax, dword [ebp - 0x3c]
push 0
push 0
push 0
push eax
lea ecx, [ebp - 0x188]
call fcn.10051bc0
movd xmm1, dword [ebp - 0x58]
add esp, 0x10
movss xmm4, dword [ebp - 0x2c]
cvtdq2ps xmm1, xmm1
movss xmm0, dword [eax]
movss dword [ebp - 0xb8], xmm0
movss xmm0, dword [edi + 0x18ac]
mulss xmm1, xmm0
movss dword [ebp - 0x64], xmm1
movss xmm1, dword [ebp - 0x20]
mov edx, dword [ebp - 0x18]
movss xmm2, dword [ebp - 0xa0]
test dl, dl
je 0x10054f0d
movd xmm3, dword [ebp - 0x44]
cvtdq2ps xmm3, xmm3
mulss xmm3, xmm0
movaps xmm0, xmm2
movss dword [ebp - 0x6c], xmm0
movss dword [ebp - 0x50], xmm3
cmp byte [ebp - 3], 0
je 0x10054fd1
cmp byte [esi + 0xe60], 0
je 0x10054fd1
test dword [ebx + 0x10], 0x1000
jne 0x10054f6e
movss xmm3, dword [esi + 0x34]
movaps xmm0, xmm2
comiss xmm3, xmm1
mulss xmm0, dword [0x103b718c]
jbe 0x10054f4f
subss xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
jmp 0x10054f5c
subss xmm1, xmm2
comiss xmm1, xmm3
jb 0x10054f75
addss xmm0, xmm1
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x34], xmm0
jmp 0x10054f75
mov dword [esi + 0x34], 0
test dl, dl
je 0x10054fca
mov eax, dword [ebp - 0x48]
movaps xmm2, xmm4
subss xmm2, dword [edi + 0x18ac]
movss xmm1, dword [eax + 0x5c]
comiss xmm1, xmm2
jbe 0x10054f9a
xorps xmm0, xmm0
maxss xmm0, xmm2
jmp 0x10054fa9
movaps xmm0, xmm4
subss xmm0, dword [ebp - 0x9c]
maxss xmm0, xmm1
subss xmm1, xmm0
movss dword [eax + 0x5c], xmm0
addss xmm1, dword [eax + 0xcc]
movss dword [eax + 0xcc], xmm1
movss dword [ebp - 0x84], xmm1
mov byte [esi + 0xe60], 0
cmp byte [ebp - 5], 0
movss xmm0, dword [esi + 0x34]
movss dword [ebp - 0x1c], xmm0
je 0x10055270
mov edx, dword [esi + 0x40]
mov eax, edx
mov ecx, dword [esi + 0x3c]
cmp ecx, edx
mov edi, dword [ebp - 0x14]
cmovl eax, ecx
cmovge edx, ecx
cmp byte [ebp - 3], 0
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0x14]
lea eax, [eax + edx*2]
mov dword [ebp - 0x44], eax
je 0x10055014
movss xmm1, dword [0x103b71f0]
jmp 0x1005501c
movss xmm1, dword [0x103b71b0]
mov eax, dword [0x103f3c74]
lea ecx, [ebp - 0x180]
movups xmm0, xmmword [eax + 0x1848]
mulss xmm1, dword [eax + 0x1500]
movaps xmmword [ebp - 0x180], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm1, xmm0
movss dword [ebp - 0x174], xmm1
call fcn.1002f290
cmp byte [ebp - 0x18], 0
mov dword [ebp - 0x14], eax
je 0x10055065
xorps xmm0, xmm0
movss dword [ebp - 0x74], xmm0
jmp 0x1005506d
movss xmm0, dword [0x103b725c]
movss xmm2, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x44]
movss dword [ebp - 0x58], xmm0
movss xmm0, dword [ebp - 0x84]
mov dword [ebp - 0x3c], edi
addss xmm0, dword [ebp - 0x64]
addss xmm2, dword [ebp - 0xb8]
subss xmm0, dword [0x103b70f8]
movss dword [ebp - 0x38], xmm0
cmp edi, ecx
jae 0x1005526a
movss xmm3, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x34]
subss xmm2, xmm3
movss xmm1, dword [esi + 0x18ac]
movss dword [ebp - 0x64], xmm2
addss xmm1, dword [ebp - 0xc8]
comiss xmm0, xmm1
ja 0x10055267
movss xmm0, dword [ebp - 0xd0]
comiss xmm0, dword [ebp - 0x38]
jbe 0x1005510b
cmp edi, ecx
jae 0x10055238
nop word [eax + eax]
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 0x3c], edi
cmp eax, 0xa
je 0x10055238
cmp edi, ecx
jb 0x100550f0
jmp 0x10055238
push 1
push 0
lea eax, [ebp - 0x3c]
mov edx, edi
push eax
push ecx
lea ecx, [ebp - 0xbc]
call fcn.10051bc0
movss xmm0, dword [ebp - 0xbc]
xorps xmm5, xmm5
add esp, 0x10
comiss xmm5, xmm0
jb 0x1005516c
mov eax, dword [esi + 0x18a8]
cmp dword [eax], 0x20
jle 0x1005514c
mov eax, dword [eax + 8]
movss xmm0, dword [eax + 0x80]
jmp 0x10055151
movss xmm0, dword [eax + 0xc]
mulss xmm0, dword [0x103b71a8]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0xbc], xmm0
movss xmm4, dword [ebp - 0x64]
lea eax, [ebp - 0xd4]
movss xmm1, dword [ebp - 0x58]
lea ecx, [ebp - 0x140]
addss xmm1, dword [ebp - 0x38]
movaps xmm2, xmm4
addss xmm4, xmm5
addss xmm2, xmm0
movss xmm0, dword [ebp - 0x74]
subss xmm0, dword [esi + 0x18ac]
push eax
movss dword [ebp - 0x120], xmm1
movss dword [ebp - 0x12c], xmm4
movss dword [ebp - 0x124], xmm2
addss xmm0, dword [ebp - 0x38]
movss dword [ebp - 0x128], xmm0
call fcn.1002d1d0
lea eax, [ebp - 0x140]
push eax
lea ecx, [ebp - 0x12c]
call fcn.1002d2f0
lea eax, [ebp - 0xd4]
push eax
lea ecx, [ebp - 0x198]
call fcn.1002d1d0
lea eax, [ebp - 0x198]
push eax
lea ecx, [ebp - 0x12c]
call fcn.1002d270
test al, al
je 0x1005522d
push 0xf
push ecx
mov dword [esp], 0
lea eax, [ebp - 0x124]
push dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x12c]
push eax
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax + 0x274]
call fcn.10048a80
mov ecx, dword [ebp - 0x44]
movss xmm3, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x3c]
movss xmm0, dword [ebp - 0x38]
movss xmm1, dword [esi + 0x18ac]
movss xmm2, dword [ebp - 0x88]
addss xmm0, xmm1
subss xmm2, xmm3
movss dword [ebp - 0x38], xmm0
movss dword [ebp - 0x64], xmm2
cmp edi, ecx
jb 0x100550c3
mov esi, dword [ebp - 0xc]
mov edx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x34]
mov eax, dword [esi + 8]
mov dword [ebp - 0x74], eax
test dl, dl
jne 0x10055285
cmp eax, 0x200000
jge 0x10055323
mov eax, dword [ebp - 0x48]
lea ecx, [ebp - 0xb0]
mov esi, dword [eax + 0x274]
mov eax, dword [0x103f3c74]
movups xmm0, xmmword [eax + 0x15a8]
movaps xmmword [ebp - 0xb0], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [eax + 0x1500]
movss dword [ebp - 0xa4], xmm0
call fcn.1002f290
movss xmm0, dword [ebp - 0x88]
lea ecx, [ebp - 0xd4]
subss xmm0, dword [ebp - 0x1c]
movss xmm2, dword [edi + 0x18ac]
mov edx, eax
xor eax, eax
cmp byte [ebp - 0x18], al
cmovne ecx, eax
movss dword [ebp - 0x68], xmm0
movss xmm0, dword [ebp - 0x84]
subss xmm0, dword [0x103b70f8]
push ecx
push ecx
mov ecx, dword [ebp - 0x28]
mov dword [esp], eax
mov eax, dword [ebp - 0x74]
add eax, ecx
movss dword [ebp - 0x64], xmm0
push eax
push ecx
push edx
lea eax, [ebp - 0x68]
mov ecx, esi
push eax
push dword [edi + 0x18a8]
call fcn.10048e50
mov esi, dword [ebp - 0xc]
cmp byte [ebp - 3], 0
je 0x100554da
movss xmm0, dword [edi + 0x18]
addss xmm0, dword [esi + 0xe5c]
movss dword [esi + 0xe5c], xmm0
cmp byte [edi + 0xae], 0
je 0x10055386
xorps xmm1, xmm1
comiss xmm1, xmm0
jae 0x10055386
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x78], xmm0
fld qword [ebp - 0x78]
fld qword [0x103b7250]
call fcn.100b3450
movss xmm0, dword [0x103b71c8]
fstp qword [ebp - 0x78]
movsd xmm1, qword [ebp - 0x78]
cvtpd2ps xmm1, xmm1
comiss xmm0, xmm1
jae 0x10055386
xor al, al
jmp 0x10055388
mov al, 1
movss xmm2, dword [ebp - 0x84]
movss xmm1, dword [ebp - 0x88]
movss xmm3, dword [0x103b71f0]
addss xmm2, dword [ebp - 0x2c]
addss xmm1, dword [ebp - 0x20]
subss xmm2, dword [0x103b70f8]
subss xmm1, dword [ebp - 0x1c]
movss dword [ebp - 0x2c], xmm2
movaps xmm0, xmm2
movss dword [ebp - 0x74], xmm1
movss dword [ebp - 0xb0], xmm1
subss xmm0, dword [edi + 0x18ac]
addss xmm0, dword [0x103b71a8]
movss dword [ebp - 0xac], xmm0
movaps xmm0, xmm1
addss xmm0, xmm3
movss dword [ebp - 0xa8], xmm0
movaps xmm0, xmm2
subss xmm0, dword [0x103b7220]
movss dword [ebp - 0xa4], xmm0
test al, al
je 0x100554b8
lea eax, [ebp - 0xd4]
push eax
lea ecx, [ebp - 0x1a8]
call fcn.1002d1d0
lea eax, [ebp - 0x1a8]
push eax
lea ecx, [ebp - 0xb0]
call fcn.1002d270
test al, al
je 0x100554a6
mov eax, dword [ebp - 0x48]
lea ecx, [ebp - 0x140]
mov esi, dword [eax + 0x274]
mov eax, dword [0x103f3c74]
movups xmm0, xmmword [eax + 0x15a8]
movaps xmmword [ebp - 0x140], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [eax + 0x1500]
movss dword [ebp - 0x134], xmm0
call fcn.1002f290
movss xmm0, dword [ebp - 0xb0]
push ecx
mov dword [esp], 0x3f800000
mov ecx, esi
push eax
lea eax, [ebp - 0x5c]
movss dword [ebp - 0x5c], xmm0
movss xmm0, dword [ebp - 0xa4]
push eax
lea eax, [ebp - 0xb0]
movss dword [ebp - 0x58], xmm0
push eax
call fcn.10048890
movss xmm3, dword [0x103b71f0]
movss xmm2, dword [ebp - 0x2c]
movss xmm1, dword [ebp - 0x74]
cmp byte [ebp - 0x40], 0
jne 0x100554da
subss xmm2, dword [edi + 0x18ac]
subss xmm1, xmm3
movss dword [edi + 0x2c30], xmm2
movss dword [edi + 0x2c2c], xmm1
cmp byte [ebp - 0x18], 0
je 0x1005552a
movss xmm0, dword [ebp - 0x6c]
lea ecx, [ebp - 0x30]
addss xmm0, dword [0x103b70f8]
movss dword [ebp - 0x30], xmm0
movss xmm0, dword [edi + 0x18ac]
addss xmm0, dword [ebp - 0x50]
movss dword [ebp - 0x2c], xmm0
call fcn.1004f7c0
call fcn.100346e0
mov ecx, 3
call fcn.10039040
mov ecx, 1
call fcn.10039000
call fcn.10039720
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x7c]
test al, al
je 0x1005553c
call fcn.10038e70
mov eax, dword [ebp - 0x7c]
cmp byte [edi + 0x2c68], 0
je 0x1005555b
test al, al
jne 0x1005555b
push 0
mov edx, esi
lea ecx, [ebp - 0x88]
call fcn.1003de30
add esp, 4
movss xmm0, dword [ebp - 0x10c]
comiss xmm0, dword [0x103b70f8]
jbe 0x100555ae
movss xmm0, dword [edi + 0x154c]
xor edx, edx
addss xmm0, dword [ebp - 0x90]
mov ecx, dword [ebp - 0xb4]
movss dword [ebp - 0x30], xmm0
movss xmm0, dword [ebp - 0x94]
addss xmm0, dword [edi + 0x1538]
movss dword [ebp - 0x2c], xmm0
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
push 1
call fcn.1002f720
add esp, 0xc
mov cl, byte [ebp - 0x23]
test cl, cl
je 0x100555ce
mov eax, dword [0x103f3c74]
mov byte [eax + 0x19bf], 1
mov eax, dword [eax + 0x198c]
or dword [eax + 0x110], 4
test byte [ebx + 0x10], 0x20
movzx eax, cl
movzx ecx, byte [ebp - 1]
pop edi
cmovne eax, ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret