Function at 0x53bf96
Capabilities:
Encode data using base64
Parse credit card information

Disassembly:
jmp 0x710e8e
push 0x424
mov eax, 0x7b13be
call fcn.0053ba0f
mov ebx, ecx
mov dword [ebp - 0x428], ebx
mov edi, dword [ebp + 0x24]
mov ecx, 0x25ae1cf
mov dword [ebp - 0x404], edi
call fcn.0053c469
mov eax, dword [ebx + 0x8c2c8]
xor ecx, ecx
inc ecx
mov dword [ebp - 0x418], ecx
cmp dword [eax + 0x28], ecx
je 0x711028
mov eax, dword [0xa69060]
cmp dword [eax + 0x434], ecx
je 0x711028
mov edx, dword [ebx + 0x4c]
cmp byte [edx + 0xa5d], cl
je 0x711028
cmp byte [edx + 0xa4d], 0
jne 0x711028
xor eax, eax
xor ecx, ecx
inc eax
mov dword [ebx + 0x26efc], ecx
cmp dword [edx + 0xa50], eax
je 0x711028
mov eax, dword [0xa6905c]
mov esi, ecx
add eax, 0x910
mov dword [ebp - 0x3fc], esi
mov dword [ebp - 0xf4], eax
je 0x710f46
test dword [eax + 0x32c], 0x20000000
push 1
pop eax
cmovne esi, eax
mov dword [ebp - 0x3fc], esi
jmp 0x710f49
xor eax, eax
inc eax
test edi, edi
jne 0x710f57
mov edi, dword [ebx + 0xf4]
test edi, edi
je 0x710f74
cmp byte [edi + 0xa45], al
jne 0x710f74
cmp dword [edi + 0x230], 0x42
jne 0x710f74
cmp byte [edx + 0xa56], cl
je 0x711028
mov dword [ebx + 0x26ef4], ecx
mov ecx, dword [0xa6905c]
movsx eax, byte [ecx + 0x1279]
mov cl, byte [eax + ecx + 0x127a]
mov al, cl
add al, 0x5f
cmp cl, 0x68
movzx edx, al
movzx eax, cl
cmovbe edx, eax
mov dword [ebp - 0x3e8], edx
test edi, edi
je 0x710fb6
cmp dl, 6
jne 0x710fb6
cmp dword [edi + 0x230], 0x42
je 0x711028
movzx esi, dl
or eax, 0xffffffff
push esi
mov dword [ebp - 0x420], eax
mov dword [ebp - 0x410], eax
mov dword [ebp - 0xe8], esi
call fcn.0053bdcf
pop ecx
test eax, eax
je 0x711028
mov eax, dword [ebp - 0xf4]
add eax, 0xbc
push 0x15
push eax
call fcn.0053ae2a
pop ecx
pop ecx
mov ecx, eax
mov eax, dword [ebp - 0x3e8]
cmp al, 0x4f
jne 0x710fff
cmp ecx, 0x65
jmp 0x71100a
cmp al, 0x4b
je 0x710ffa
cmp al, 0x5c
jne 0x71100c
cmp ecx, 0x29
jne 0x711028
movsx ecx, al
sub ecx, 0x53
je 0x711028
sub ecx, 1
je 0x713fad
sub ecx, 0xd
je 0x711032
dec ecx
sub ecx, 1
jne 0x71109e
xor eax, eax
call fcn.0053d6cf
ret 0x20
xor esi, esi
mov ecx, dword [0xa6905c]
lea edx, [esi + 0x3a99]
push edx
mov dword [ebp - 0x410], edx
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, eax
test ecx, ecx
je 0x711087
mov eax, 0x2ea
cmp word [ecx + 0xf4], ax
jne 0x711087
mov edx, dword [ebx + 0x4c]
movss xmm0, dword [edx + 0x28]
ucomiss xmm0, dword [ecx + 0x274]
lahf
test ah, 0x44
jp 0x711087
movss xmm0, dword [edx + 0x2c]
ucomiss xmm0, dword [ecx + 0x278]
lahf
test ah, 0x44
jnp 0x711092
inc esi
cmp esi, 0x64
jl 0x711034
jmp 0x713f9e
mov eax, dword [ebp - 0x3e8]
mov esi, dword [ebp - 0xe8]
mov ecx, dword [ebx + 0x4c]
cmp al, 0xf8
jae 0x713f9e
movzx eax, word [ebx + 0x27792]
cmp eax, dword [ecx + 0x20]
je 0x713f9e
imul esi, esi, 0x60
xor edx, edx
inc edx
cmp dword [esi + 0x949198], edx
je 0x713f9e
test edi, edi
je 0x711126
cmp dword [esi + 0x949188], edx
jne 0x711126
cmp byte [edi + 0x22c], dl
je 0x713f9e
movzx edx, word [ecx + 0x898]
test dx, dx
je 0x711123
mov eax, dword [0xa6905c]
movzx eax, word [eax + 0x1296]
mov dword [ebp - 0x40c], eax
test ax, ax
je 0x711123
movzx eax, word [edi + 0x898]
cmp dx, ax
je 0x713f9e
cmp word [ebp - 0x40c], ax
je 0x713f9e
xor edx, edx
inc edx
cmp dword [0x20104cc], 0
je 0x7111de
cmp dword [0xa684e0], 0
jne 0x71125d
cmp dword [esi + 0x949188], edx
jne 0x71125d
test edi, edi
je 0x711188
mov al, byte [edi + 0xa7a]
cmp al, byte [ecx + 0xa7a]
jne 0x711188
mov eax, dword [edi + 0x20]
dec eax
cmp eax, 0x3e6
ja 0x711188
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x54]
xor edx, edx
inc edx
cmp eax, edx
je 0x713f9e
cmp dword [0xa684e0], 0
jne 0x71125d
cmp dword [esi + 0x949188], edx
jne 0x71125d
test edi, edi
je 0x71125d
cmp byte [edi + 0x22d], dl
jne 0x71125d
mov eax, dword [0xa6905c]
movzx ecx, word [edi + 0x898]
cmp word [eax + 0x1294], cx
je 0x71125d
test cx, cx
je 0x71125d
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x58]
test eax, eax
jne 0x71125d
jmp 0x713f9e
cmp dword [0xa684e0], 0
jne 0x71125d
cmp dword [esi + 0x949188], edx
jne 0x71125d
cmp byte [ecx + 0xa7a], 0
jle 0x71122b
test edi, edi
je 0x71122b
cmp byte [edi + 0xa7a], 0
jne 0x71122b
mov eax, dword [edi + 0x20]
dec eax
cmp eax, 0x3e6
ja 0x71122b
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x54]
xor edx, edx
inc edx
cmp eax, edx
je 0x713f9e
cmp dword [0xa684e0], 0
jne 0x71125d
cmp dword [esi + 0x949188], edx
jne 0x71125d
test edi, edi
je 0x71125d
cmp byte [edi + 0x22d], dl
jne 0x71125d
mov eax, dword [0xa6905c]
movzx ecx, word [edi + 0x898]
cmp word [eax + 0x1294], cx
je 0x71125d
test cx, cx
jne 0x713f9e
cmp dword [ebx + 0x26ed8], 9
mov edx, dword [esi + 0x94914c]
jl 0x711272
cmp edx, 2
jl 0x711272
dec edx
mov eax, dword [ebx + 0x4c]
lea ecx, [edx - 1]
cmp byte [eax + 0xa54], 1
mov eax, dword [0xa6905c]
cmovne ecx, edx
movsx eax, word [eax + 0x9bc]
imul eax, eax, 0x9c
cmp dword [eax + 0x8518d8], 0x10
jne 0x7112a7
xor eax, eax
inc eax
mov dword [0x94a04c], eax
jmp 0x7112aa
xor eax, eax
inc eax
cmp ecx, eax
cmovl ecx, eax
test edi, edi
je 0x7112d4
cmp dword [edi + 0x230], 0x42
jne 0x7112d4
cmp byte [edi + 0xa45], al
jne 0x7112d4
mov eax, dword [ebx + 0x4c]
cmp byte [eax + 0xa56], 0
je 0x711028
mov edx, dword [ebp - 0xe8]
imul eax, ecx, 0x3e8
add eax, dword [ebx + edx*4 + 0x8c5e0]
cmp dword [ebp + 0x1c], eax
jb 0x711028
mov ecx, dword [ebx + 0x4c]
cvttss2si eax, dword [ecx + 0x28]
sub eax, 0x93a
cmp eax, 8
ja 0x711315
cvttss2si eax, dword [ecx + 0x2c]
sub eax, 0xf57
cmp eax, 8
jbe 0x711028
mov eax, dword [ebx + 0x27604]
add eax, 0x3e8
mov dword [ebp - 0xf0], 3
mov dword [ebp - 0x42c], 0x367
mov dword [ebp - 0x420], 0x39d
mov dword [ebp - 0x424], 0x48
mov dword [ebp - 0x40c], 0x39e
cmp dword [ebp + 0x1c], eax
jbe 0x7130e9
mov eax, dword [esi + 0x949144]
test eax, eax
je 0x711382
mov esi, dword [ebp - 0xf0]
cmp eax, esi
je 0x711382
cmp eax, 4
je 0x711382
cmp eax, 5
je 0x711382
cmp eax, 6
jne 0x7130e1
cmp byte [ebp - 0x3e8], 0x60
movsx ecx, word [ecx + 0x634]
jae 0x7113bd
mov esi, dword [0xa6905c]
movzx eax, byte [esi + 0x924]
imul ecx, eax, 0x18
mov eax, edx
sub eax, ecx
cdq
and edx, 7
add eax, edx
mov edx, dword [ebp - 0xe8]
sar eax, 3
movzx ecx, word [esi + eax*2 + 0x996]
mov eax, dword [ebx + 0x27d14]
mov dword [ebp - 0xec], eax
mov eax, dword [0xa6905c]
push ecx
movzx eax, byte [eax + 0xc4b]
push eax
push edx
call fcn.0053bfd2
mov ecx, dword [0xa6905c]
add esp, 0xc
cmp eax, dword [ecx + 0x988]
jle 0x711472
mov esi, 0xe84
push esi
call fcn.00537b1c
mov edi, eax
pop ecx
mov dword [ebp - 0x418], edi
xor ebx, ebx
mov dword [ebp - 4], ebx
test edi, edi
je 0x71144f
push esi
mov ecx, edi
call fcn.00538797
push ebx
xor eax, eax
inc eax
push eax
push 0x77777777
push ebx
sub esp, 0x10
mov dword [esp + 0xc], 0x41800000
mov dword [esp + 8], 0x43960000
and dword [esp + 4], ebx
and dword [esp], ebx
push 0xffffaaaa
push 0x8123c8
mov ecx, edi
call fcn.0053a24a
jmp 0x711451
mov eax, ebx
mov ecx, dword [ebp - 0xec]
or dword [ebp - 4], 0xffffffff
push eax
call fcn.00539d63
push ebx
push ebx
push 0x21
call fcn.00537446
add esp, 0xc
jmp 0x711028
cmp byte [ebp - 0x3e8], 0x55
jne 0x7114f3
mov eax, dword [ebx + 0x4c]
movzx eax, word [eax + 0x660]
imul eax, eax, 0x64
cmp eax, dword [ecx + 0x928]
jle 0x7114f3
mov esi, 0xe84
push esi
call fcn.00537b1c
mov edi, eax
pop ecx
mov dword [ebp - 0x418], edi
xor eax, eax
inc eax
mov dword [ebp - 4], eax
test edi, edi
je 0x7114ec
push esi
mov ecx, edi
call fcn.00538797
xor ebx, ebx
xor eax, eax
push ebx
inc eax
push eax
push 0x77777777
push ebx
sub esp, 0x10
mov dword [esp + 0xc], 0x41800000
mov dword [esp + 8], 0x43960000
and dword [esp + 4], ebx
and dword [esp], ebx
push 0xffffaaaa
push 0x816248
jmp 0x711446
xor ebx, ebx
jmp 0x71144f
mov ecx, dword [ebx + 0x4c]
mov eax, dword [ecx]
call dword [eax + 0x50]
xor ecx, ecx
inc ecx
cmp eax, ecx
jne 0x71151a
mov eax, dword [ebp - 0x3e8]
movzx eax, al
imul eax, eax, 0x60
cmp dword [eax + 0x949188], ecx
je 0x711028
push 0xa8
lea eax, [ebp - 0x3e4]
push 0
push eax
call fcn.00538b89
mov esi, dword [ebx + 0x4c]
add esp, 0xc
cmp dword [ebx + 0x8b84c], 0
mov eax, dword [ebp - 0x42c]
mov word [ebp - 0x3e0], ax
mov ax, word [esi + 0x20]
mov word [ebp - 0x3de], ax
mov ax, word [esi + 0x20]
mov word [ebp - 0x3ba], ax
cvttss2si eax, dword [esi + 0x28]
mov word [ebp - 0x3c2], ax
cvttss2si eax, dword [esi + 0x2c]
mov word [ebp - 0x3c0], ax
cvttss2si eax, dword [esi + 0x28]
mov word [ebp - 0x3be], ax
cvttss2si eax, dword [esi + 0x2c]
mov word [ebp - 0x3bc], ax
je 0x7115b9
mov ax, word [ebx + 0x8b84c]
mov word [ebp - 0x3c2], ax
mov word [ebp - 0x3be], ax
mov ax, word [ebx + 0x8b850]
mov word [ebp - 0x3c0], ax
mov word [ebp - 0x3bc], ax
mov edx, dword [ebp - 0x3e8]
xor ecx, ecx
or dword [ebp - 0x3b0], 0xffffffff
movzx eax, dl
mov word [ebp - 0x3ac], ax
movzx eax, dl
imul eax, eax, 0x60
mov byte [ebp - 0x3b3], cl
mov byte [ebp - 0x3b6], 0xff
mov eax, dword [eax + 0x949144]
cmp eax, 5
jne 0x711a91
mov eax, dword [ebx + 0x34]
mov byte [ebp - 0x3b5], cl
mov dword [ebp - 0x3f4], ecx
mov esi, dword [eax + 0x10]
test esi, esi
je 0x711c58
mov eax, dword [ebx + 0x4c]
movss xmm0, dword [ebp + 0x18]
push ecx
push ecx
subss xmm0, dword [eax + 0x2c]
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp + 0x10]
subss xmm0, dword [eax + 0x28]
movss dword [esp], xmm0
call fcn.005370c2
mov eax, dword [ebx + 0x4c]
xor edx, edx
pop ecx
pop ecx
push 0x4b
movzx eax, word [eax + 0x662]
pop ecx
div ecx
fstp dword [ebp - 0x410]
cmp eax, dword [ebp - 0xf0]
cmovg eax, dword [ebp - 0xf0]
xor edx, edx
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x3e8]
movzx ecx, al
imul eax, ecx, 0x60
mov dword [ebp - 0x104], eax
cmp edx, 0x3e8
jg 0x712a97
mov eax, dword [ebx + 0x4c]
inc edx
mov dword [ebp - 0x3ec], edx
cmp esi, eax
jne 0x711699
mov esi, dword [esi + 0xc]
jmp 0x711a84
cvttss2si ecx, dword [esi + 0x28]
cvttss2si edx, dword [eax + 0x28]
mov dword [ebp - 0x3f0], ecx
cvttss2si ecx, dword [esi + 0x2c]
mov dword [ebp - 0x3f8], ecx
cvttss2si ecx, dword [eax + 0x2c]
mov eax, dword [ebx + 0x8b84c]
mov dword [ebp - 0xec], ecx
test eax, eax
je 0x7116d5
mov ecx, dword [ebx + 0x8b850]
mov dword [ebp - 0xec], ecx
push dword [ebp - 0x3f8]
cmove eax, edx
push dword [ebp - 0x3f0]
mov dword [ebp - 0x41c], eax
push ecx
push eax
call fcn.0053c0cc
add esp, 0x10
mov ecx, eax
cmp dword [esi + 0x230], 0x38
jne 0x711710
xor eax, eax
cmp word [esi + 0x172], ax
jne 0x711710
sub ecx, 0xc
cmovs ecx, eax
mov eax, dword [ebp - 0xfc]
add eax, 3
cmp ecx, eax
jg 0x711a5a
mov eax, dword [ebx + 0x4c]
movss xmm0, dword [esi + 0x2c]
push ecx
push ecx
subss xmm0, dword [eax + 0x2c]
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + 0x28]
subss xmm0, dword [eax + 0x28]
movss dword [esp], xmm0
call fcn.005370c2
fstp dword [ebp - 0x100]
movss xmm0, dword [ebp - 0x100]
add esp, 4
subss xmm0, dword [ebp - 0x410]
movss dword [esp], xmm0
call fcn.0053b451
fstp dword [ebp - 0x100]
movss xmm0, dword [ebp - 0x100]
comiss xmm0, dword [0x7be064]
pop ecx
jbe 0x711a5a
mov eax, dword [ebp - 0x3f0]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0x3f8]
mov dword [ebp - 0xe4], eax
lea eax, [ebx + 0x10c]
push 8
push eax
lea eax, [ebp - 0xe4]
push eax
lea eax, [ebp - 0xe8]
push eax
push dword [ebp - 0xec]
push dword [ebp - 0x41c]
call fcn.0053cd88
add esp, 0x18
cmp dword [esi + 0x230], 0x38
jne 0x7117fc
xor eax, eax
cmp word [esi + 0x172], ax
jne 0x7117fc
mov edx, dword [ebp - 0x3f8]
mov ecx, edx
mov eax, dword [ebp - 0x3f0]
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], ecx
jmp 0x71180e
mov eax, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xe4]
mov edx, dword [ebp - 0x3f8]
cmp eax, dword [ebp - 0x3f0]
je 0x711822
cmp ecx, edx
je 0x711822
mov esi, dword [esi + 0xc]
jmp 0x711a7e
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x54]
test eax, eax
jne 0x711849
mov eax, dword [ebp - 0x104]
xor ecx, ecx
inc ecx
cmp dword [eax + 0x949188], ecx
jne 0x711849
mov eax, dword [esi + 0x20]
dec eax
cmp eax, 0x3e6
jbe 0x71181a
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x54]
xor ecx, ecx
inc ecx
cmp eax, ecx
jne 0x711a0e
mov eax, dword [ebp - 0x104]
cmp dword [eax + 0x949188], ecx
jne 0x711a0e
xor eax, eax
inc eax
cmp byte [esi + 0x22c], al
je 0x71181a
cmp dword [0xa684e0], 0
mov ecx, dword [0x20104cc]
jne 0x71196f
mov eax, dword [esi + 0x20]
dec eax
cmp eax, 0x3e6
ja 0x7118cc
mov eax, dword [0xa6905c]
mov ax, word [eax + 0x1294]
cmp ax, word [esi + 0x898]
je 0x7118cc
test ecx, ecx
je 0x71181a
mov eax, dword [ebx + 0x4c]
mov al, byte [eax + 0xa7a]
test al, al
je 0x7118cc
cmp byte [esi + 0xa7a], al
je 0x71181a
xor eax, eax
inc eax
cmp byte [esi + 0x22d], al
jne 0x71196f
mov eax, dword [0xa6905c]
movzx edx, word [esi + 0x898]
cmp word [eax + 0x1294], dx
je 0x711927
test dx, dx
je 0x711927
test ecx, ecx
je 0x71181a
mov eax, dword [ebx + 0x4c]
mov al, byte [eax + 0xa7a]
test al, al
jle 0x711927
cmp byte [esi + 0xa7a], al
jne 0x711927
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x58]
test eax, eax
je 0x71181a
mov ecx, dword [0x20104cc]
xor eax, eax
inc eax
cmp byte [esi + 0x22d], al
jne 0x71196f
xor eax, eax
cmp word [esi + 0x898], ax
jne 0x71196f
test ecx, ecx
je 0x71181a
mov eax, dword [ebx + 0x4c]
mov al, byte [eax + 0xa7a]
test al, al
jle 0x71196f
cmp byte [esi + 0xa7a], al
jne 0x71196f
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x58]
test eax, eax
je 0x71181a
mov ecx, dword [0x20104cc]
mov eax, dword [ebx + 0x4c]
mov dl, byte [eax + 0xa7a]
test dl, dl
jle 0x7119b3
mov al, byte [esi + 0xa7a]
test al, al
jle 0x7119b3
cmp dl, al
jne 0x7119b3
cmp dword [0xa684e0], 0
jne 0x7119da
test ecx, ecx
je 0x71181a
cmp dword [esi + 0x20], 0
jbe 0x71181a
cmp dword [esi + 0x20], 0x3e8
jb 0x7119bc
jmp 0x71181a
cmp dword [0xa684e0], 0
jne 0x7119da
test ecx, ecx
jle 0x7119da
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x58]
test eax, eax
jne 0x7119da
mov eax, dword [esi + 0x20]
dec eax
cmp eax, 0x3e6
jbe 0x71181a
cmp dword [esi + 0x20], 0
jbe 0x71181a
cmp dword [esi + 0x20], 0x3e8
jb 0x711a0e
cmp byte [esi + 0x22c], 0
jne 0x711a0e
cmp byte [esi + 0x22d], 0
jne 0x711a0e
mov ecx, esi
call fcn.005391b0
test eax, eax
jne 0x71181a
xor eax, eax
inc eax
cmp byte [esi + 0x229], al
je 0x71181a
mov ecx, dword [ebp - 0x3f4]
mov ax, word [esi + 0x20]
or dword [ebp + ecx*8 - 0x3a4], 0xffffffff
mov word [ebp + ecx*8 - 0x3a8], ax
inc ecx
mov eax, dword [ebp - 0x3f0]
mov word [ebp - 0x3be], ax
mov eax, dword [ebp - 0x3f8]
mov dword [ebp - 0x3f4], ecx
mov word [ebp - 0x3bc], ax
jmp 0x711a60
mov ecx, dword [ebp - 0x3f4]
mov eax, dword [ebp - 0x104]
mov esi, dword [esi + 0xc]
cmp dword [eax + 0x94918c], ecx
jle 0x712a97
cmp ecx, 0xd
jge 0x712a97
mov edx, dword [ebp - 0x3ec]
test esi, esi
jne 0x711677
jmp 0x712a97
cmp eax, 3
je 0x711fca
cmp eax, 4
je 0x711fca
cmp eax, 6
je 0x711fca
cmp dl, 0x1d
je 0x711d01
cmp dl, 0x2c
je 0x711d01
cmp dl, 0x2a
jne 0x711b04
xor edx, edx
mov eax, 0x812448
inc edx
mov ecx, 0x8124c8
cmp byte [esi + 0x22c], dl
push 0x3e8
cmove ecx, eax
push ecx
mov ecx, dword [ebx + 0xfc]
call fcn.0053b2bc
mov ecx, dword [ebx + 0xfc]
xor ebx, ebx
inc ebx
push ebx
push ebx
mov edx, dword [ecx]
call dword [edx + 0x88]
mov eax, ebx
jmp 0x71102a
cmp dl, 0x49
jne 0x711c62
mov eax, dword [0xa6905c]
mov eax, dword [eax + 0x988]
cmp eax, dword [0x94aca8]
jl 0x711c58
mov edx, dword [ebx + 0x4c]
mov eax, dword [ebp + 0x1c]
sub eax, dword [edx + 0x7fc]
cmp eax, 0x3e8
jbe 0x711c58
cvttss2si eax, dword [ebp + 0x10]
push 0x30
push ecx
mov dword [ebp - 0xec], eax
cvttss2si eax, dword [ebp + 0x18]
mov dword [ebp - 0xf8], eax
lea eax, [ebp - 0x40]
cvttss2si edi, dword [edx + 0x28]
push eax
cvttss2si esi, dword [edx + 0x2c]
call fcn.00538b89
push 8
lea eax, [ebx + 0x10c]
push eax
push 8
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0xf8]
push eax
lea eax, [ebp - 0xec]
push eax
push esi
push edi
call fcn.0053d297
lea ecx, [ebp - 0x40]
add esp, 0x2c
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x711b94
sub ecx, edx
je 0x711c58
push 0x34
lea eax, [ebp - 0x1ec]
push 0
push eax
call fcn.00538b89
mov eax, dword [ebx + 0x4c]
mov ecx, dword [ebp - 0xec]
mov edx, dword [ebp - 0xf8]
movzx esi, si
mov ax, word [eax + 0x20]
mov word [ebp - 0x1e6], ax
mov eax, 0x368
mov word [ebp - 0x1e8], ax
mov eax, dword [0x7fea18]
mov dword [ebp - 0x1d8], eax
movsx eax, si
mov dword [ebx + 0x8b860], eax
movzx eax, cx
mov dword [ebx + 0x8b84c], eax
movzx eax, dx
mov dword [ebx + 0x8b850], eax
lea eax, [ebp - 0x1ec]
push 0x34
push eax
mov word [ebp - 0x1e0], di
mov word [ebp - 0x1de], si
mov dword [ebp - 0x1dc], 6
mov word [ebp - 0x1bc], cx
mov word [ebp - 0x1ba], dx
mov dword [ebx + 0x8b85c], edi
call fcn.00536b6d
add esp, 0x14
mov ecx, ebx
call fcn.0053970a
mov ecx, dword [ebp + 0x1c]
mov dword [ebx + 0x8c704], ecx
mov eax, dword [ebx + 0x4c]
mov dword [eax + 0x7fc], ecx
xor ebx, ebx
lea eax, [ebx + 1]
jmp 0x71102a
mov ax, word [esi + 0x20]
or dword [ebp - 0x3a4], 0xffffffff
mov word [ebp - 0x3a8], ax
cvttss2si eax, dword [esi + 0x28]
mov word [ebp - 0x3be], ax
cvttss2si eax, dword [esi + 0x2c]
mov word [ebp - 0x3bc], ax
cmp dword [ebx + 0x8b84c], ecx
je 0x711cb0
mov ax, word [ebx + 0x8b84c]
mov word [ebp - 0x3be], ax
mov ax, word [ebx + 0x8b850]
mov word [ebp - 0x3bc], ax
cmp dl, 0x38
je 0x711ce6
cmp dl, 0x39
je 0x711ce6
cmp dl, 0x3a
je 0x711ce6
cmp dl, 0x3b
je 0x711ce6
cmp dl, 0x3c
je 0x711ce6
cmp dl, 0x3d
je 0x711ce6
cmp dl, 0x3e
je 0x711ce6
cmp dl, 0x3f
je 0x711ce6
cmp dl, 0xc8
je 0x711ce6
cmp dl, 0xd8
jne 0x712a9d
mov ecx, dword [ebp + 0x1c]
movzx eax, dl
mov dword [ebx + eax*4 + 0x8c5e0], ecx
mov eax, dword [ebx + 0x4c]
mov dword [eax + 0x7fc], ecx
jmp 0x712a9d
xor eax, eax
inc eax
cmp byte [esi + 0x22c], al
jne 0x711fb3
push 0xa0
push ecx
lea eax, [ebp - 0xe0]
mov esi, ecx
push eax
call fcn.00538b89
mov edx, dword [ebx + 0x8b7bc]
xor ecx, ecx
add esp, 0xc
mov dword [ebp - 0x3ec], edx
mov dword [ebp - 0x104], ecx
cmp dword [edx + 0x218], ecx
jle 0x712a97
mov ecx, dword [ebp - 0x3e8]
movzx eax, cl
imul eax, eax, 0x60
mov dword [ebp - 0x3f0], eax
movzx eax, cl
imul eax, eax, 0x60
add edx, 0x21c
mov dword [ebp - 0xe8], edx
mov dword [ebp - 0x100], eax
mov ecx, dword [0xa6905c]
mov edx, dword [edx]
mov dword [ebp - 0x410], edx
mov eax, dword [ecx]
push dword [edx + 0xe84]
call dword [eax + 0x34]
mov dword [ebp - 0xec], eax
test eax, eax
je 0x711e44
mov ecx, dword [ebx + 0x4c]
mov edx, dword [ecx]
call dword [edx + 0x54]
test eax, eax
jne 0x711dba
mov ecx, dword [ebp - 0xec]
mov eax, dword [ecx]
call dword [eax + 0x54]
xor ecx, ecx
inc ecx
cmp eax, ecx
je 0x711e44
mov eax, dword [ebx + 0x4c]
mov edx, dword [ebx + 0x8b84c]
cvttss2si ecx, dword [eax + 0x28]
cvttss2si eax, dword [eax + 0x2c]
mov dword [ebp - 0xfc], ecx
mov dword [ebp - 0xf8], eax
test edx, edx
je 0x711de9
mov eax, dword [ebx + 0x8b850]
mov dword [ebp - 0xf8], eax
mov ecx, dword [ebp - 0xec]
test edx, edx
cmove edx, dword [ebp - 0xfc]
cvttss2si eax, dword [ecx + 0x2c]
push eax
cvttss2si eax, dword [ecx + 0x28]
push eax
push dword [ebp - 0xf8]
push edx
call fcn.0053c0cc
mov ecx, dword [ebp - 0x100]
add esp, 0x10
mov ecx, dword [ecx + 0x949150]
add ecx, dword [ebp - 0x3fc]
cmp eax, ecx
jge 0x711e44
mov ecx, dword [ebp - 0x410]
mov dword [ebp + esi*8 - 0xdc], eax
mov ecx, dword [ecx + 0xe84]
mov dword [ebp + esi*8 - 0xe0], ecx
inc esi
cmp esi, 0xc
jl 0x711e4e
push 0xc
pop esi
jmp 0x711e56
test esi, esi
jle 0x711f7e
xor ecx, ecx
lea eax, [ebp - 0xe0]
mov edx, ecx
mov dword [ebp - 0x110], ecx
mov eax, dword [eax + edx*8]
lea ebx, [edx + 1]
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0x41c], eax
mov eax, dword [ebp + edx*8 - 0xdc]
mov dword [ebp - 0xec], edx
mov dword [ebp - 0x408], eax
cmp ebx, esi
jge 0x711ee7
lea edx, [ebp - 0xdc]
mov dword [ebp - 0x410], edi
cmp eax, dword [edx + ebx*8]
mov edx, eax
mov dword [ebp - 0xfc], eax
jle 0x711ebb
mov eax, dword [ebp + ebx*8 - 0xe0]
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xec], ebx
lea edi, [ebp - 0xdc]
cmp edx, dword [edi + ebx*8]
lea eax, [ebp - 0xdc]
mov eax, dword [eax + ebx*8]
mov edi, dword [ebp - 0x410]
cmovle eax, edx
inc ebx
cmp ebx, esi
jl 0x711e8f
mov edx, dword [ebp - 0x110]
mov dword [ebp - 0x408], eax
mov ebx, dword [ebp - 0xec]
mov eax, dword [ebp - 0x41c]
mov dword [ebp - 0xfc], esi
mov dword [ebp + ebx*8 - 0xe0], eax
mov eax, dword [ebp + edx*8 - 0xdc]
mov dword [ebp + ebx*8 - 0xdc], eax
lea ebx, [ebp - 0xe0]
mov eax, dword [ebp - 0xf8]
mov dword [ebx + edx*8], eax
mov eax, dword [ebp - 0x408]
mov dword [ebp + edx*8 - 0xdc], eax
inc edx
mov dword [ebp - 0x110], edx
mov eax, ebx
cmp edx, esi
jl 0x711e66
mov ebx, dword [ebp - 0x428]
mov edx, ecx
mov esi, ecx
mov ecx, dword [ebp - 0xfc]
mov eax, dword [ebp - 0x3f0]
cmp dword [eax + 0x94918c], edx
jle 0x711f80
cmp edx, 0xd
jge 0x711f80
mov ax, word [ebp + edx*8 - 0xe0]
or dword [ebp + edx*8 - 0x3a4], 0xffffffff
mov word [ebp + edx*8 - 0x3a8], ax
inc edx
inc esi
cmp esi, ecx
jl 0x711f4b
jmp 0x711f80
xor esi, esi
mov ecx, dword [ebp - 0x104]
mov eax, dword [ebp - 0x3ec]
inc ecx
mov edx, dword [ebp - 0xe8]
add edx, 4
mov dword [ebp - 0x104], ecx
mov dword [ebp - 0xe8], edx
cmp ecx, dword [eax + 0x218]
jl 0x711d71
jmp 0x712a97
mov ax, word [esi + 0x20]
or dword [ebp - 0x3a4], 0xffffffff
mov word [ebp - 0x3a8], ax
jmp 0x712a9d
mov eax, dword [ebx + 0x34]
mov byte [ebp - 0x3b5], cl
mov dword [ebp - 0x3f0], ecx
mov esi, dword [eax + 0x10]
mov dword [ebp - 0xe4], esi
test esi, esi
je 0x711c58
cvttss2si eax, dword [ebp + 0x10]
mov dword [ebp - 0x3f4], eax
cvttss2si eax, dword [ebp + 0x18]
mov dword [ebp - 0x3ec], eax
cmp dword [ebp - 0x3f4], ecx
jne 0x712026
test eax, eax
jne 0x712026
test edi, edi
je 0x712026
cvttss2si eax, dword [edi + 0x28]
mov dword [ebp - 0x3f4], eax
cvttss2si eax, dword [edi + 0x2c]
mov dword [ebp - 0x3ec], eax
movzx eax, dl
imul eax, eax, 0x60
mov dword [ebp - 0x41c], ecx
mov dword [ebp - 0xec], eax
movzx eax, dl
imul eax, eax, 0x60
mov dword [ebp - 0x3f8], eax
mov eax, dword [ebp - 0x41c]
cmp eax, 0x3e8
jge 0x712a7d
inc eax
mov dword [ebp - 0x41c], eax
cvttss2si eax, dword [esi + 0x28]
mov dword [ebp - 0x408], eax
cvttss2si eax, dword [esi + 0x2c]
mov dword [ebp - 0xf8], eax
test dl, dl
je 0x7120a2
cmp dl, 0x10
je 0x7120a2
cmp dl, 7
je 0x7120a2
cmp dl, 0x11
je 0x7120a2
cmp dl, 0x17
je 0x7120a2
cmp dl, 0x23
je 0x7120a2
cmp dl, 0x27
je 0x7120a2
cmp dl, 0x33
je 0x7120a2
cmp dl, 0x37
jne 0x71212f
test edi, edi
je 0x711c58
cmp dword [edi + 0x230], 0x38
cvttss2si eax, dword [edi + 0x28]
mov dword [ebp - 0x3f4], eax
cvttss2si eax, dword [edi + 0x2c]
mov dword [ebp - 0x3ec], eax
jne 0x71212f
cmp word [edi + 0x172], cx
jne 0x71212f
mov eax, dword [ebx + 0x4c]
mov edx, dword [ebx + 0x8b84c]
cvttss2si ecx, dword [eax + 0x28]
cvttss2si eax, dword [eax + 0x2c]
test edx, edx
je 0x7120f1
mov eax, dword [ebx + 0x8b850]
mov ecx, edx
push dword [ebp - 0x3ec]
push dword [ebp - 0x3f4]
push eax
push ecx
call fcn.0053c0cc
mov edx, dword [ebp - 0x3e8]
xor ecx, ecx
sub eax, 0xc
inc ecx
add esp, 0x10
cmp eax, ecx
jge 0x71212d
cvttss2si eax, dword [edi + 0x28]
mov dword [ebp - 0x3f4], eax
cvttss2si eax, dword [edi + 0x2c]
mov dword [ebp - 0x3ec], eax
xor ecx, ecx
cmp dl, 0x5f
jne 0x712164
cmp esi, edi
je 0x712164
test edi, edi
je 0x711028
cvttss2si eax, dword [edi + 0x28]
mov esi, dword [esi + 0xc]
mov dword [ebp - 0xe4], esi
mov dword [ebp - 0x3f4], eax
cvttss2si eax, dword [edi + 0x2c]
mov dword [ebp - 0x3ec], eax
jmp 0x712a75
movzx eax, word [esi + 0x898]
mov dword [ebp - 0xe8], eax
test ax, ax
je 0x7121c6
mov eax, dword [ebp - 0x3f8]
cmp dword [eax + 0x949188], 1
jne 0x7121c6
mov eax, dword [ebx + 0x4c]
movzx edx, word [esi + 0x898]
cmp word [eax + 0x898], dx
mov edx, dword [ebp - 0x3e8]
je 0x7121b8
mov eax, dword [0xa6905c]
mov esi, dword [ebp - 0xe8]
cmp word [eax + 0x1296], si
mov esi, dword [ebp - 0xe4]
jne 0x7121c6
mov esi, dword [esi + 0xc]
mov dword [ebp - 0xe4], esi
jmp 0x712a75
mov eax, dword [ebx + 0x4c]
cvttss2si edx, dword [eax + 0x28]
cvttss2si ecx, dword [eax + 0x2c]
mov eax, dword [ebx + 0x8b84c]
test eax, eax
je 0x7121e3
mov ecx, dword [ebx + 0x8b850]
push dword [ebp - 0x3ec]
test eax, eax
push dword [ebp - 0x3f4]
cmove eax, edx
push ecx
push eax
call fcn.0053c0cc
mov ecx, dword [ebp - 0x3e8]
add esp, 0x10
mov edx, eax
mov dword [ebp - 0xe8], edx
test cl, cl
jne 0x712243
cmp edx, 2
jne 0x712243
mov eax, dword [ebx + 0x4c]
cvttss2si ecx, dword [eax + 0x28]
cmp dword [ebp - 0x3f4], ecx
je 0x712232
cvttss2si eax, dword [eax + 0x2c]
cmp dword [ebp - 0x3ec], eax
jne 0x71223d
xor eax, eax
inc eax
mov edx, eax
mov dword [ebp - 0xe8], eax
mov ecx, dword [ebp - 0x3e8]
test edi, edi
je 0x712267
cmp dword [edi + 0x230], 0x38
jne 0x712267
xor eax, eax
cmp word [edi + 0x172], ax
jne 0x712267
sub edx, 0xc
cmovs edx, eax
mov dword [ebp - 0xe8], edx
test cl, cl
je 0x7122dd
cmp cl, 0x23
je 0x7122dd
cmp cl, 0x10
je 0x7122dd
cmp cl, 7
je 0x7122dd
cmp cl, 0x11
je 0x7122dd
cmp cl, 0x17
je 0x7122dd
cmp cl, 0x27
je 0x7122dd
cmp cl, 0x33
je 0x7122dd
cmp cl, 0x37
je 0x7122dd
cmp cl, 0x4f
je 0x7122dd
cmp cl, 0x61
je 0x7122dd
mov eax, dword [ebx + 0x4c]
cvttss2si ecx, dword [eax + 0x28]
cvttss2si edx, dword [eax + 0x2c]
mov eax, dword [ebx + 0x8b84c]
mov dword [ebp - 0x3f4], ecx
mov dword [ebp - 0x3ec], edx
test eax, eax
je 0x7124e0
mov edx, dword [ebx + 0x8b850]
mov ecx, eax
mov dword [ebp - 0x3f4], ecx
mov dword [ebp - 0x3ec], edx
jmp 0x7124e0
mov eax, dword [ebp - 0x3f8]
mov esi, dword [ebp - 0xe4]
mov eax, dword [eax + 0x949150]
add eax, dword [ebp - 0x3fc]
cmp edx, eax
jle 0x71230c
mov eax, dword [ebp - 0x3f8]
cmp dword [eax + 0x949150], 0xffffffff
jne 0x712ceb
cmp cl, 0x61
jne 0x7123ca
cmp edx, 4
jl 0x711c58
mov ecx, dword [0xa6905c]
push dword [ebp - 0x410]
mov eax, dword [ecx]
call dword [eax + 0x38]
mov esi, dword [ebx + 0x4c]
mov edx, dword [ebp - 0x3ec]
mov dword [ebp - 0x400], eax
cvttss2si ecx, dword [esi + 0x2c]
sub edx, ecx
push ecx
push ecx
cvttss2si ecx, dword [esi + 0x28]
movd xmm0, edx
mov edx, dword [ebp - 0x3f4]
cvtdq2ps xmm0, xmm0
sub edx, ecx
movss dword [esp + 4], xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
call fcn.005370c2
fstp dword [ebp - 0x430]
movss xmm1, dword [ebp - 0x430]
xorps xmm0, xmm0
comiss xmm0, xmm1
pop ecx
pop ecx
jbe 0x712392
addss xmm1, dword [0x7be078]
mov eax, dword [ebp - 0x400]
movss xmm3, dword [0x7c0e90]
movss xmm2, dword [eax + 0x34]
movaps xmm0, xmm2
subss xmm0, xmm3
comiss xmm0, xmm1
ja 0x711c58
addss xmm2, xmm3
comiss xmm1, xmm2
ja 0x711c58
mov esi, dword [ebp - 0xe4]
jmp 0x712405
cmp cl, 0x23
jne 0x712405
cmp dword [edi + 0x20], 0
jbe 0x7123de
cmp dword [edi + 0x20], 0x3e8
jb 0x7123eb
xor eax, eax
inc eax
cmp byte [edi + 0x22c], al
jne 0x712405
jmp 0x7123ee
xor eax, eax
inc eax
cmp dword [0x949ea8], eax
jne 0x712405
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x54]
test eax, eax
je 0x711c58
mov eax, dword [ebp - 0x3f8]
cmp dword [eax + 0x949150], 0xffffffff
jne 0x71243a
mov eax, dword [0xa6905c]
add eax, 0x910
push 0x1b
push eax
call fcn.0053b37a
add eax, dword [ebp - 0x3fc]
pop ecx
pop ecx
cmp dword [ebp - 0xe8], eax
jg 0x711c58
mov eax, dword [ebx + 0x4c]
push 8
cvttss2si edx, dword [eax + 0x28]
cvttss2si ecx, dword [eax + 0x2c]
mov eax, dword [ebp - 0x3f4]
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0x3ec]
mov dword [ebp - 0x110], eax
lea eax, [ebx + 0x10c]
push eax
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x104]
push eax
push ecx
push edx
call fcn.0053cd88
add esp, 0x18
test edi, edi
je 0x7124b4
cmp dword [edi + 0x230], 0x38
jne 0x7124b4
xor eax, eax
cmp word [edi + 0x172], ax
jne 0x7124b4
mov edx, dword [ebp - 0x3ec]
mov ecx, edx
mov eax, dword [ebp - 0x3f4]
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x110], ecx
jmp 0x7124c6
mov eax, dword [ebp - 0x104]
mov ecx, dword [ebp - 0x110]
mov edx, dword [ebp - 0x3ec]
cmp eax, dword [ebp - 0x3f4]
jne 0x711c58
cmp ecx, edx
jne 0x711c58
mov ecx, dword [ebp - 0x3f4]
push dword [ebp - 0xf8]
push dword [ebp - 0x408]
push edx
push ecx
call fcn.0053c0cc
mov dword [ebp - 0x400], eax
lea ecx, [ebx + 0x10c]
mov eax, dword [ebp - 0x408]
mov dword [ebp - 0x100], eax
mov eax, dword [ebp - 0xf8]
push 8
push ecx
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0xfc]
push eax
lea eax, [ebp - 0x100]
push eax
push dword [ebp - 0x3ec]
push dword [ebp - 0x3f4]
call fcn.00539db3
mov eax, dword [ebp - 0xec]
add esp, 0x28
or dword [ebp - 0xe4], 0xffffffff
mov ecx, dword [ebp - 0xf0]
mov eax, dword [eax + 0x949144]
sub eax, ecx
je 0x712578
sub eax, 1
je 0x71256c
dec eax
sub eax, 1
jne 0x712581
mov dword [ebp - 0xe4], ecx
jmp 0x712581
mov dword [ebp - 0xe4], 2
jmp 0x712581
xor eax, eax
inc eax
mov dword [ebp - 0xe4], eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x54]
xor edx, edx
inc edx
cmp eax, edx
jne 0x71282d
mov eax, dword [ebp - 0x3f8]
cmp dword [eax + 0x949188], edx
jne 0x71282d
mov ecx, dword [ebx + 0x4c]
test ecx, ecx
je 0x71282d
mov eax, dword [esi + 0x20]
dec eax
cmp eax, 0x3e6
mov eax, dword [0xa684e0]
ja 0x71260d
test eax, eax
jne 0x71260d
mov eax, dword [0xa6905c]
mov edx, dword [0x20104cc]
mov ax, word [eax + 0x1294]
cmp ax, word [esi + 0x898]
je 0x71268a
test edx, edx
jne 0x7125f5
mov esi, dword [esi + 0xc]
mov dword [ebp - 0xe4], esi
jmp 0x712a6d
mov al, byte [ecx + 0xa7a]
test al, al
jle 0x71268a
cmp byte [esi + 0xa7a], al
jne 0x71268a
jmp 0x7125e7
cmp eax, edx
jne 0x71267c
mov edx, dword [0x20104cc]
test edx, edx
jle 0x712732
mov dl, byte [ecx + 0xa7a]
test dl, dl
jle 0x71272c
test edi, edi
je 0x71272c
mov al, byte [edi + 0xa7a]
test al, al
jle 0x71272c
cmp dl, al
jne 0x71272c
cvttss2si eax, dword [ecx + 0x28]
sar eax, 7
cmp eax, 8
je 0x71265d
cmp eax, 9
jne 0x712677
cvttss2si eax, dword [ecx + 0x2c]
sar eax, 7
cmp eax, 0xf
je 0x711c58
cmp eax, 0x10
je 0x711c58
mov eax, dword [0xa684e0]
mov edx, dword [0x20104cc]
test eax, eax
jne 0x712732
xor eax, eax
inc eax
cmp byte [esi + 0x22d], al
jne 0x7126e4
mov eax, dword [0xa6905c]
movzx ecx, word [esi + 0x898]
cmp word [eax + 0x1294], cx
je 0x7126e4
test cx, cx
je 0x7126e4
test edx, edx
je 0x7125e7
mov eax, dword [ebx + 0x4c]
mov al, byte [eax + 0xa7a]
test al, al
jle 0x7126e4
cmp byte [esi + 0xa7a], al
jne 0x7126e4
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x58]
test eax, eax
je 0x7125e7
cmp dword [0xa684e0], 0
jne 0x71272c
xor edx, edx
inc edx
cmp byte [esi + 0x22d], dl
jne 0x71272c
mov edx, dword [0x20104cc]
xor eax, eax
cmp word [esi + 0x898], ax
jne 0x712732
test edx, edx
je 0x7125e7
mov eax, dword [ebx + 0x4c]
mov al, byte [eax + 0xa7a]
test al, al
jle 0x712732
cmp byte [esi + 0xa7a], al
jne 0x712732
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x58]
test eax, eax
je 0x7125e7
mov edx, dword [0x20104cc]
mov eax, dword [ebx + 0x4c]
mov cl, byte [eax + 0xa7a]
test cl, cl
jle 0x71277a
mov al, byte [esi + 0xa7a]
test al, al
jle 0x71277a
cmp cl, al
jne 0x71277a
mov ecx, dword [0xa684e0]
test ecx, ecx
jne 0x7127e4
test edx, edx
je 0x7125e7
cmp dword [esi + 0x20], ecx
jbe 0x7125e7
cmp dword [esi + 0x20], 0x3e8
jb 0x712784
jmp 0x7125e7
mov ecx, dword [0xa684e0]
test ecx, ecx
jne 0x7127e4
test edx, edx
jle 0x7127e4
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x58]
test eax, eax
jne 0x7127a2
mov eax, dword [esi + 0x20]
dec eax
cmp eax, 0x3e6
jbe 0x7125e7
mov ecx, dword [0xa684e0]
mov edx, dword [0x20104cc]
test ecx, ecx
jne 0x7127ea
test edx, edx
jle 0x7127ea
mov eax, dword [ebx + 0x4c]
cmp byte [eax + 0xa7a], 3
jne 0x7127ea
mov eax, dword [esi + 0x20]
dec eax
cmp eax, 0x3e6
jbe 0x7125e7
mov al, byte [esi + 0xa7a]
test al, al
jle 0x7127ea
cmp al, 4
je 0x7127ea
jmp 0x7125e7
mov edx, dword [0x20104cc]
xor eax, eax
inc eax
cmp byte [esi + 0x22c], al
je 0x7125e7
test ecx, ecx
jne 0x712830
mov eax, dword [esi + 0x20]
dec eax
cmp eax, 0x3e6
ja 0x71282d
cmp byte [esi + 0xa7a], cl
jne 0x71282d
mov eax, dword [0xa6905c]
mov ax, word [eax + 0x1294]
cmp ax, word [esi + 0x898]
je 0x71282d
test edx, edx
je 0x7125e7
xor eax, eax
inc eax
cmp dword [esi + 0x20], 0
jbe 0x71283f
cmp dword [esi + 0x20], 0x3e8
jb 0x712861
cmp byte [esi + 0x22c], 0
jne 0x712861
cmp byte [esi + 0x22d], 0
jne 0x712861
mov ecx, esi
call fcn.005391b0
test eax, eax
jne 0x7125e7
inc eax
cmp byte [esi + 0x229], al
je 0x7125e7
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x54]
xor ecx, ecx
inc ecx
cmp eax, ecx
jne 0x7128a5
mov ecx, dword [ebx + 0x4c]
mov eax, dword [ecx]
call dword [eax + 0x54]
test eax, eax
jne 0x7128a5
mov eax, dword [ebp - 0x3f8]
xor ecx, ecx
cmp dword [eax + 0x949188], ecx
jne 0x7128a5
mov esi, dword [esi + 0xc]
mov dword [ebp - 0xe4], esi
jmp 0x712a6f
mov eax, dword [ebp - 0x400]
cmp eax, dword [ebp - 0xe4]
jg 0x712a37
mov eax, dword [ebp - 0x408]
cmp dword [ebp - 0x100], eax
jne 0x712a37
mov eax, dword [ebp - 0xf8]
cmp dword [ebp - 0xfc], eax
jne 0x712a37
cmp esi, dword [ebx + 0x4c]
je 0x712a37
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x50]
test eax, eax
je 0x712902
mov eax, dword [ebp - 0x3f8]
cmp dword [eax + 0x949188], 0
jne 0x712a3d
mov eax, dword [esi + 0x20]
test eax, eax
je 0x712954
cmp eax, 0x3e8
jb 0x712922
cmp byte [esi + 0x22c], 0
jne 0x712922
cmp byte [esi + 0x22d], 0
je 0x712954
dec eax
cmp eax, 0x3e6
mov eax, dword [ebp - 0x3f8]
ja 0x712a3d
cmp dword [eax + 0x949188], 0
je 0x71295a
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x54]
test eax, eax
mov eax, dword [ebp - 0x3f8]
je 0x712a3d
jmp 0x71295a
mov eax, dword [ebp - 0x3f8]
or edx, 0xffffffff
cmp dword [eax + 0x949150], edx
jne 0x712999
cmp dword [ebp - 0x3f0], 0
jne 0x712999
mov ax, word [esi + 0x20]
mov word [ebp - 0x3a8], ax
mov ax, word [0xa684e4]
mov word [ebp - 0x3b8], ax
xor eax, eax
inc eax
mov dword [ebp - 0x3a4], 0xfffffffe
mov dword [ebp - 0x3f0], eax
movzx eax, word [esi + 0x20]
mov ecx, eax
mov dword [ebp - 0x400], ecx
mov ecx, dword [ebp - 0x3f0]
mov word [ebp + ecx*8 - 0x3a8], ax
mov dword [ebp + ecx*8 - 0x3a4], edx
test edi, edi
je 0x712a28
cmp edi, esi
jne 0x712a28
test ecx, ecx
je 0x712a28
mov eax, dword [ebp - 0xec]
mov eax, dword [eax + 0x949144]
cmp eax, dword [ebp - 0xf0]
je 0x7129e4
cmp eax, 4
je 0x7129e4
cmp eax, 6
jne 0x712a28
movzx edx, word [ebp - 0x3a8]
mov eax, dword [ebp - 0x400]
mov ecx, dword [ebp - 0x3a4]
mov word [ebp - 0x3a8], ax
mov eax, dword [ebp - 0x3f0]
mov eax, dword [ebp + eax*8 - 0x3a4]
mov dword [ebp - 0x3a4], eax
mov eax, dword [ebp - 0x3f0]
mov dword [ebp + eax*8 - 0x3a4], ecx
mov ecx, eax
mov word [ebp + eax*8 - 0x3a8], dx
mov eax, dword [ebp - 0x3f8]
inc ecx
mov dword [ebp - 0x3f0], ecx
jmp 0x712a43
mov eax, dword [ebp - 0x3f8]
mov ecx, dword [ebp - 0x3f0]
mov edx, dword [ebp - 0xec]
mov esi, dword [esi + 0xc]
mov dword [ebp - 0xe4], esi
cmp dword [edx + 0x949144], 3
jne 0x712a60
cmp ecx, 7
jg 0x712a7d
cmp dword [eax + 0x94918c], ecx
jle 0x712a7d
cmp ecx, 0xd
jge 0x712a7d
xor ecx, ecx
mov edx, dword [ebp - 0x3e8]
test esi, esi
jne 0x712044
mov eax, dword [ebp - 0x3f4]
mov word [ebp - 0x3be], ax
mov eax, dword [ebp - 0x3ec]
mov word [ebp - 0x3bc], ax
mov edx, dword [ebp - 0x3e8]
cmp dl, 0x62
jne 0x712fc1
mov eax, dword [ebx + 0x4c]
cvttss2si edx, dword [ebp + 0x10]
cvttss2si ecx, dword [eax + 0x28]
mov dword [ebp - 0xfc], edx
cvttss2si esi, dword [ebp + 0x18]
mov dword [ebp - 0x400], ecx
cvttss2si ecx, dword [eax + 0x2c]
mov eax, dword [ebx + 0x8b84c]
mov dword [ebp - 0x100], esi
mov dword [ebp - 0xe8], ecx
test eax, eax
je 0x712aeb
mov ecx, dword [ebx + 0x8b850]
mov dword [ebp - 0xe8], ecx
cmove eax, dword [ebp - 0x400]
push esi
push edx
push ecx
push eax
mov dword [ebp - 0x408], eax
call fcn.0053c0cc
mov ecx, dword [ebp - 0xfc]
mov esi, dword [0x94b610]
add esi, dword [ebp - 0x3fc]
mov dword [ebp - 0xec], ecx
mov ecx, dword [ebp - 0x100]
push 8
mov dword [ebp - 0xf8], ecx
lea ecx, [ebx + 0x10c]
push ecx
mov dword [ebp - 0x400], eax
lea eax, [ebp - 0xf8]
push eax
lea eax, [ebp - 0xec]
push eax
push dword [ebp - 0xe8]
push dword [ebp - 0x408]
call fcn.0053cd88
push 1
pop eax
cmp esi, 0xffffffff
push 0x15
cmove esi, eax
mov eax, dword [ebp - 0xf4]
add eax, 0xbc
push eax
call fcn.0053ae2a
add esp, 0x30
cmp eax, 0x64
jge 0x712ba7
push 0x1b
push dword [ebp - 0xf4]
call fcn.0053b37a
add eax, dword [ebp - 0x3fc]
pop ecx
pop ecx
cmp eax, esi
jle 0x712ba7
push 0x1b
push dword [ebp - 0xf4]
call fcn.0053b37a
pop ecx
mov esi, eax
add esi, dword [ebp - 0x3fc]
pop ecx
push dword [ebp - 0xf8]
push dword [ebp - 0xec]
push dword [ebp - 0xe8]
push dword [ebp - 0x408]
call fcn.0053c0cc
add esp, 0x10
cmp dword [ebp - 0x400], esi
jg 0x711c58
mov eax, dword [ebp - 0xfc]
cmp dword [ebp - 0xec], eax
jne 0x711c58
mov eax, dword [ebp - 0x100]
cmp dword [ebp - 0xf8], eax
jne 0x711c58
cvttss2si eax, dword [ebp + 0x18]
push eax
cvttss2si eax, dword [ebp + 0x10]
push eax
push dword [ebp - 0xe8]
push dword [ebp - 0x408]
call fcn.0053c0cc
mov ecx, dword [0x94b610]
add esp, 0x10
add ecx, dword [ebp - 0x3fc]
cmp eax, ecx
jg 0x711c58
mov eax, dword [ebx + 0x4c]
mov ax, word [eax + 0x20]
mov word [ebp - 0x3a8], ax
cvttss2si eax, dword [ebp + 0x10]
or dword [ebp - 0x3a4], 0xffffffff
movzx edx, ax
cvttss2si eax, dword [ebp + 0x18]
mov word [ebp - 0x3be], dx
movzx eax, ax
mov ecx, eax
mov word [ebp - 0x3bc], ax
shr ecx, 2
mov eax, edx
shl ecx, 0xa
shr eax, 2
movsx eax, byte [ecx + eax + 0x2010630]
xor ecx, ecx
and al, 0x41
inc ecx
cmp al, cl
je 0x711c58
mov edx, dword [ebp - 0x3e8]
cmp word [ebp - 0x3a8], 0
ja 0x712ca3
cmp dl, 0x61
je 0x712ca3
cmp dl, 0x23
je 0x712ca3
cmp dl, 0x33
jne 0x7130d6
movzx eax, dl
imul eax, eax, 0x60
mov ecx, dword [eax + 0x94918c]
mov eax, ecx
cmp eax, 0xd
jge 0x712ccf
lea esi, [ebp - 0x3a8]
xor edx, edx
and dword [ebp + eax*8 - 0x3a4], edx
mov word [esi + eax*8], dx
inc eax
cmp eax, 0xd
jl 0x712cbc
xor eax, eax
inc eax
cmp ecx, eax
jne 0x713027
mov eax, dword [ebp - 0x420]
mov esi, dword [ebp - 0x424]
jmp 0x71303a
cmp cl, 0x23
je 0x711028
cmp cl, 0x27
je 0x711028
cmp cl, 0x61
je 0x711028
mov eax, dword [ebp - 0x3f4]
mov ecx, dword [ebx + 0x4c]
mov esi, dword [ebp - 0x3ec]
mov dword [ebp - 0xf0], eax
xor eax, eax
inc eax
mov dword [ebp - 0xf4], esi
mov byte [ebp - 0x411], al
lea eax, [ebx + 0x10c]
push 8
push eax
lea eax, [ebp - 0xf4]
push eax
lea eax, [ebp - 0xf0]
push eax
cvttss2si eax, dword [ecx + 0x2c]
push eax
cvttss2si eax, dword [ecx + 0x28]
push eax
call fcn.0053cd88
mov eax, dword [ebp - 0x3f4]
add esp, 0x18
cmp dword [ebp - 0xf0], eax
jne 0x712d6b
cmp dword [ebp - 0xf4], esi
je 0x712d71
xor edx, edx
mov cl, dl
jmp 0x712d79
mov cl, byte [ebp - 0x411]
xor edx, edx
cmp dword [ebp + 0x20], 0
je 0x711028
mov eax, dword [ebp - 0x3e8]
movzx eax, al
imul eax, eax, 0x60
mov eax, dword [eax + 0x949150]
add eax, dword [ebp - 0x3fc]
cmp dword [ebp - 0xe8], eax
jl 0x711028
test cl, cl
je 0x711028
mov esi, dword [ebx + 0x4c]
mov eax, dword [esi + 0x9f8]
sub eax, 4
cmp eax, 5
ja 0x712e12
imul eax, dword [esi + 0x5c], 0xe1
mov ecx, dword [esi + 0x60]
add eax, dword [ecx + 0x2d0]
mov eax, dword [eax*4 + 0x997a68]
mov dword [ebp - 0x400], eax
mov eax, dword [0xa69060]
cmp dword [eax + 0x1c], edx
je 0x712e12
mov eax, dword [ebp - 0x400]
cmp eax, 2
lea ecx, [eax - 2]
cmovbe ecx, eax
mov eax, dword [esi + 0x60]
imul ecx, dword [eax + 0x2e4]
mov eax, dword [esi + 0x810]
lea eax, [eax + ecx*4]
cmp dword [ebp + 0x1c], eax
jb 0x711c58
cmp dword [ebx + 0x40], edx
je 0x711028
movss xmm0, dword [0x7c514c]
comiss xmm0, dword [ebp + 0x14]
jbe 0x712e4b
test edi, edi
je 0x712e4b
movss xmm0, dword [edi + 0x28]
movss dword [ebp + 0x10], xmm0
movss xmm0, dword [edi + 0x2c]
movss dword [ebp + 0x18], xmm0
movss xmm0, dword [edi + 0x30]
movss dword [ebp + 0x14], xmm0
push dword [ebx + 0x26edc]
mov ecx, esi
call fcn.0053c112
mov ecx, dword [ebx + 0x4c]
movss xmm0, dword [ebp + 0x10]
ucomiss xmm0, dword [ecx + 0x28]
lahf
test ah, 0x44
jp 0x712e7d
movss xmm0, dword [ebp + 0x18]
ucomiss xmm0, dword [ecx + 0x2c]
lahf
test ah, 0x44
jnp 0x711c58
and dword [ebx + 0x26efc], 0
mov eax, dword [ebp + 0x1c]
mov dword [ecx + 0xa24], edi
mov dword [ebx + 0x276b8], eax
mov eax, dword [ebx + 0x4c]
cmp byte [eax + 0xa4c], 0
jne 0x711028
cvttss2si edx, dword [eax + 0x2c]
mov esi, dword [ebx + 0x8b84c]
cvttss2si ecx, dword [eax + 0x28]
mov dword [ebp - 0x3f0], edx
test esi, esi
je 0x712ec9
mov edx, dword [ebx + 0x8b850]
mov dword [ebp - 0x3f0], edx
cmove esi, ecx
test edi, edi
je 0x711028
cvttss2si eax, dword [edi + 0x2c]
cvttss2si ecx, dword [edi + 0x28]
push eax
mov dword [ebp - 0xf4], eax
push ecx
push edx
push esi
mov dword [ebp - 0xf0], ecx
call fcn.0053c0cc
mov edi, dword [ebp - 0x3f0]
mov ecx, eax
xor eax, eax
add esp, 0x10
inc eax
cmp esi, dword [ebp - 0xf0]
push 0xffffffffffffffff
pop edx
cmovg eax, edx
mov dword [ebp - 0x400], eax
xor eax, eax
inc eax
cmp edi, dword [ebp - 0xf4]
cmovg eax, edx
mov edx, dword [ebp - 0x3e8]
mov dword [ebp - 0x430], eax
movzx eax, dl
imul eax, eax, 0x60
mov eax, dword [eax + 0x949150]
add eax, dword [ebp - 0x3fc]
cmp ecx, eax
jle 0x712fb0
movzx eax, dl
imul eax, eax, 0x60
xor edi, edi
mov dword [ebp - 0x40c], eax
cmp edi, 0x1f4
jg 0x711c58
mov ecx, dword [ebp - 0xf0]
cmp esi, ecx
je 0x712f6b
add esi, dword [ebp - 0x400]
mov eax, dword [ebp - 0x3f0]
mov edx, dword [ebp - 0xf4]
cmp eax, edx
je 0x712f87
add eax, dword [ebp - 0x430]
mov dword [ebp - 0x3f0], eax
push edx
push ecx
push eax
push esi
call fcn.0053c0cc
mov ecx, dword [ebp - 0x40c]
add esp, 0x10
inc edi
mov ecx, dword [ecx + 0x949150]
add ecx, dword [ebp - 0x3fc]
cmp eax, ecx
jg 0x712f4f
mov edi, dword [ebp - 0x3f0]
mov dword [ebx + 0x27794], esi
mov dword [ebx + 0x27798], edi
jmp 0x711028
cmp dl, 0x66
jne 0x712c86
push 0x1f
call fcn.0053a1ff
pop ecx
test eax, eax
jne 0x712c80
push 0x27
call fcn.0053a1ff
pop ecx
test eax, eax
jne 0x712c80
push 0x2f
call fcn.0053a1ff
pop ecx
test eax, eax
jne 0x712c80
mov ecx, dword [ebx + 0xfc]
push 0x3e8
push 0x81c748
call fcn.0053b2bc
mov ecx, dword [ebx + 0xfc]
xor ebx, ebx
inc ebx
push ebx
push ebx
mov eax, dword [ecx]
call dword [eax + 0x88]
jmp 0x711afd
mov esi, 0xa8
cmp ecx, 2
jne 0x713041
mov eax, dword [ebp - 0x40c]
push 0x50
pop esi
mov word [ebp - 0x3e0], ax
push 0xa8
lea eax, [ebp - 0x294]
push 0
push eax
call fcn.00538b89
push esi
lea eax, [ebp - 0x3e4]
push eax
lea eax, [ebp - 0x294]
push eax
call fcn.0053bf55
mov ax, word [ebx + 0x20]
add esp, 0x18
mov word [ebp - 0x28e], ax
xor eax, eax
inc eax
cmp dword [ebp - 0x3fc], 0
mov byte [ebp - 0x265], al
je 0x71308f
or byte [ebp - 0x264], 8
mov eax, dword [ebx]
mov ecx, ebx
mov edx, dword [eax + 4]
lea eax, [ebp - 0x294]
push eax
movzx eax, word [ebp - 0x3e0]
push eax
call edx
lea eax, [ebp - 0x3e4]
push esi
push eax
call fcn.00536b6d
pop ecx
pop ecx
mov ecx, ebx
call fcn.0053970a
mov edx, dword [ebp - 0x3e8]
mov ecx, dword [ebp + 0x1c]
movzx eax, dl
mov dword [ebx + 0x27604], ecx
mov dword [ebx + eax*4 + 0x8c5e0], ecx
cmp dl, 0x55
jne 0x711c58
jmp 0x7130ef
mov edx, dword [ebp - 0x3e8]
jmp 0x7130f5
mov edx, dword [ebp - 0x3e8]
mov esi, dword [ebp - 0xf0]
movzx eax, dl
imul eax, eax, 0x60
cmp dword [eax + 0x949144], 2
jne 0x713114
test edi, edi
jne 0x71311c
mov edi, dword [ebx + 0x4c]
xor eax, eax
inc eax
mov dword [edi + 0x21c], eax
test edi, edi
je 0x713f97
xor eax, eax
inc eax
cmp dword [edi + 0x21c], eax
je 0x713134
cmp dword [ebp - 0x404], 0
je 0x713f97
mov ecx, dword [ebx + 0x4c]
mov eax, dword [ecx + 0x9f8]
cmp eax, 2
je 0x713f97
cmp eax, esi
je 0x713f97
xor eax, eax
inc eax
cmp byte [ecx + 0xa5d], al
je 0x711c58
movzx eax, word [ebx + 0x27792]
cmp eax, dword [ecx + 0x20]
je 0x711c58
movsx eax, word [ecx + 0x634]
cmp dl, 0x60
jae 0x7131a5
mov esi, dword [0xa6905c]
movzx eax, byte [esi + 0x924]
imul ecx, eax, 0x18
movzx eax, dl
sub eax, ecx
cdq
and edx, 7
add eax, edx
mov edx, dword [ebp - 0x3e8]
sar eax, 3
movzx eax, word [esi + eax*2 + 0x996]
push eax
mov eax, dword [0xa6905c]
movzx eax, byte [eax + 0xc4b]
push eax
movzx eax, dl
push eax
call fcn.0053bfd2
mov ecx, dword [0xa6905c]
add esp, 0xc
cmp eax, dword [ecx + 0x988]
jle 0x713257
mov esi, 0xe84
push esi
call fcn.00537b1c
mov edi, eax
pop ecx
mov dword [ebp - 0x418], edi
mov dword [ebp - 4], 2
test edi, edi
je 0x713232
push esi
mov ecx, edi
call fcn.00538797
xor esi, esi
xor eax, eax
push esi
inc eax
mov ecx, edi
push eax
push 0x77777777
push esi
sub esp, 0x10
mov dword [esp + 0xc], 0x41800000
mov dword [esp + 8], 0x43960000
and dword [esp + 4], esi
and dword [esp], esi
push 0xffffaaaa
push 0x8123c8
call fcn.0053a24a
jmp 0x713236
xor esi, esi
mov eax, esi
mov ecx, dword [ebx + 0x27d14]
or dword [ebp - 4], 0xffffffff
push eax
call fcn.00539d63
push esi
push esi
push 0x21
call fcn.00537446
add esp, 0xc
jmp 0x713fd3
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x54]
xor ecx, ecx
inc ecx
cmp eax, ecx
jne 0x713275
mov ecx, dword [ebx + 0x4c]
mov eax, dword [ecx]
call dword [eax + 0x54]
test eax, eax
je 0x711c58
mov ecx, dword [ebx + 0x4c]
mov eax, dword [ecx]
call dword [eax + 0x50]
xor ecx, ecx
inc ecx
cmp eax, ecx
je 0x713292
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x50]
xor ecx, ecx
inc ecx
cmp eax, ecx
jne 0x7132af
mov ecx, dword [ebp - 0x3e8]
xor edx, edx
movzx eax, cl
inc edx
imul eax, eax, 0x60
cmp dword [eax + 0x949188], edx
je 0x711c58
jmp 0x7132b5
mov ecx, dword [ebp - 0x3e8]
cmp dword [edi + 0x20], 0
jbe 0x7132c4
cmp dword [edi + 0x20], 0x3e8
jb 0x7132cf
xor eax, eax
inc eax
cmp byte [edi + 0x22c], al
jne 0x7132ef
movzx eax, cl
xor ecx, ecx
imul eax, eax, 0x60
inc ecx
cmp dword [eax + 0x949188], ecx
jne 0x7132f2
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x54]
test eax, eax
je 0x711c58
xor ecx, ecx
inc ecx
cmp dword [edi + 0x20], 0
je 0x713301
cmp dword [edi + 0x20], 0x3e8
jb 0x713309
cmp byte [edi + 0x22c], cl
jne 0x71332d
mov eax, dword [ebp - 0x3e8]
movzx eax, al
imul eax, eax, 0x60
cmp dword [eax + 0x949188], ecx
jne 0x71332d
mov ecx, dword [ebx + 0x4c]
mov eax, dword [ecx]
call dword [eax + 0x54]
test eax, eax
je 0x711c58
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x54]
xor ecx, ecx
inc ecx
cmp eax, ecx
jne 0x713363
mov ecx, dword [ebx + 0x4c]
mov eax, dword [ecx]
call dword [eax + 0x54]
xor esi, esi
test eax, eax
jne 0x713365
mov eax, dword [ebp - 0x3e8]
movzx eax, al
imul eax, eax, 0x60
cmp dword [eax + 0x949188], esi
je 0x711c58
jmp 0x713365
xor esi, esi
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x54]
xor ecx, ecx
inc ecx
test eax, eax
jne 0x71339f
mov eax, dword [ebp - 0x3e8]
movzx eax, al
imul eax, eax, 0x60
cmp dword [eax + 0x949188], ecx
jne 0x71339f
cmp byte [edi + 0x22d], cl
je 0x711c58
cmp byte [edi + 0x22c], cl
je 0x711c58
cmp dword [0xa684e0], 0
jne 0x7134d0
cmp byte [edi + 0x22d], cl
jne 0x71340c
mov eax, dword [0xa6905c]
movzx ecx, word [edi + 0x898]
cmp word [eax + 0x1294], cx
je 0x71340c
test cx, cx
je 0x71340c
cmp dword [0x20104cc], 0
je 0x711c58
mov eax, dword [ebx + 0x4c]
mov al, byte [eax + 0xa7a]
test al, al
jle 0x71340c
cmp al, byte [edi + 0xa7a]
jne 0x71340c
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x58]
test eax, eax
je 0x711c58
cmp dword [0xa684e0], 0
jne 0x7134d0
movzx ecx, word [edi + 0x898]
test cx, cx
je 0x713483
mov eax, dword [0xa6905c]
cmp word [eax + 0x1294], cx
mov ecx, dword [ebp - 0x3e8]
je 0x713489
movzx eax, cl
imul eax, eax, 0x60
cmp dword [eax + 0x949188], 1
jne 0x713489
mov eax, dword [edi + 0x20]
dec eax
cmp eax, 0x3e6
ja 0x713489
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x54]
xor ecx, ecx
inc ecx
cmp eax, ecx
jne 0x71347a
cmp dword [0x20104cc], 0
je 0x711c58
mov eax, dword [ebx + 0x4c]
mov al, byte [eax + 0xa7a]
test al, al
jle 0x71347a
cmp al, byte [edi + 0xa7a]
je 0x711c58
cmp dword [0xa684e0], 0
jne 0x7134d0
mov ecx, dword [ebp - 0x3e8]
cmp dword [0x20104cc], 0
jle 0x7134d0
mov eax, dword [ebx + 0x4c]
cmp byte [eax + 0xa7a], 3
jne 0x7134d0
cmp dword [edi + 0x20], 0
jbe 0x7134ad
cmp dword [edi + 0x20], 0x3e8
jb 0x7134bb
mov al, byte [edi + 0xa7a]
test al, al
jle 0x7134d0
cmp al, 4
je 0x7134d0
movzx eax, cl
xor ecx, ecx
imul eax, eax, 0x60
inc ecx
cmp dword [eax + 0x949188], ecx
je 0x711c58
mov ecx, dword [ebp - 0x3e8]
movzx eax, cl
imul eax, eax, 0x60
mov eax, dword [eax + 0x949188]
mov dword [ebp - 0x404], eax
movzx eax, word [edi + 0x898]
mov edx, eax
mov dword [ebp - 0x400], edx
mov edx, dword [0xa684e0]
test ax, ax
je 0x713549
xor eax, eax
inc eax
cmp dword [ebp - 0x404], eax
jne 0x71354c
mov eax, dword [ebx + 0x4c]
movzx ecx, word [edi + 0x898]
cmp word [eax + 0x898], cx
mov ecx, dword [ebp - 0x3e8]
je 0x711c58
mov eax, dword [0xa6905c]
movzx edx, word [edi + 0x898]
cmp word [eax + 0x1296], dx
mov edx, dword [0xa684e0]
je 0x711c58
xor eax, eax
inc eax
test edx, edx
jne 0x713586
cmp byte [edi + 0x22d], al
jne 0x713586
cmp word [ebp - 0x400], dx
jne 0x713586
cmp dword [0x20104cc], edx
je 0x711c58
mov eax, dword [ebx + 0x4c]
mov al, byte [eax + 0xa7a]
test al, al
jle 0x713586
cmp al, byte [edi + 0xa7a]
je 0x711c58
cmp byte [edi + 0x9dc], 0
jne 0x713f9e
mov eax, dword [ebx + 0x27604]
add eax, 0x3e8
cmp dword [ebp + 0x1c], eax
jbe 0x713f9e
mov al, byte [edi + 0x640]
and al, 0xf
cmp al, 0xf
jne 0x7135eb
movzx eax, cl
xor ecx, ecx
imul eax, eax, 0x60
inc ecx
cmp dword [eax + 0x949188], ecx
jne 0x7135eb
mov eax, dword [ebx + 0x4c]
mov al, byte [eax + 0xa7a]
test al, al
je 0x711c58
mov cl, byte [edi + 0xa7a]
test cl, cl
jle 0x7135eb
test al, al
jle 0x7135eb
cmp cl, al
je 0x711c58
cvttss2si edx, dword [edi + 0x2c]
mov eax, dword [ebx + 0x4c]
cvttss2si ecx, dword [edi + 0x28]
mov dword [ebp - 0x3ec], edx
cvttss2si edx, dword [eax + 0x28]
mov dword [ebp - 0x3f0], ecx
cvttss2si eax, dword [eax + 0x2c]
mov dword [ebp - 0x404], edx
mov edx, dword [ebp - 0x3ec]
mov dword [ebp - 0xec], eax
mov eax, dword [ebx + 0x8b84c]
test eax, eax
je 0x71363c
mov ecx, dword [ebx + 0x8b850]
mov dword [ebp - 0xec], ecx
mov ecx, dword [ebp - 0x3f0]
cmove eax, dword [ebp - 0x404]
push edx
push ecx
push dword [ebp - 0xec]
mov dword [ebp - 0x404], eax
push eax
call fcn.0053c0cc
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0x3e8]
movzx ecx, al
imul ecx, ecx, 0x60
push 8
mov eax, dword [ecx + 0x949150]
lea ecx, [ebx + 0x10c]
add eax, dword [ebp - 0x3fc]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0x3f0]
mov dword [ebp - 0x108], eax
mov eax, dword [ebp - 0x3ec]
push ecx
mov dword [ebp - 0x10c], eax
lea eax, [ebp - 0x10c]
push eax
lea eax, [ebp - 0x108]
push eax
push dword [ebp - 0xec]
push dword [ebp - 0x404]
call fcn.0053cd88
mov eax, dword [ebp - 0xf0]
add esp, 0x28
cmp eax, 0xffffffff
push 1
pop ecx
cmove eax, ecx
cmp dword [edi + 0x230], 0x38
mov dword [ebp - 0xf0], eax
jne 0x71370f
cmp word [edi + 0x172], si
jne 0x71370f
cvttss2si eax, dword [edi + 0x28]
mov ecx, dword [ebp - 0xe8]
mov dword [ebp - 0x108], eax
cvttss2si eax, dword [edi + 0x2c]
mov dword [ebp - 0x10c], eax
xor eax, eax
add ecx, 0xfffffff4
cmovns eax, ecx
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0xf4]
add eax, 0xbc
push 0x15
push eax
call fcn.0053ae2a
pop ecx
pop ecx
cmp eax, 0x64
jge 0x71375d
push 0x1b
push dword [ebp - 0xf4]
call fcn.0053b37a
add eax, dword [ebp - 0x3fc]
pop ecx
pop ecx
cmp eax, dword [ebp - 0xf0]
jle 0x71375d
push 0x1b
push dword [ebp - 0xf4]
call fcn.0053b37a
add eax, dword [ebp - 0x3fc]
pop ecx
pop ecx
jmp 0x713763
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xe8]
mov edx, dword [ebp - 0x3f0]
cmp ecx, eax
jg 0x713d58
cmp dword [ebp - 0x108], edx
jne 0x713d58
mov ebx, dword [ebp - 0x10c]
cmp ebx, dword [ebp - 0x3ec]
mov ebx, dword [ebp - 0x428]
jne 0x713d58
mov eax, dword [ebp - 0x3e8]
movzx eax, al
imul eax, eax, 0x60
cmp dword [eax + 0x949150], 0xffffffff
jne 0x7137d6
mov eax, dword [0xa6905c]
add eax, 0x910
push 0x1b
push eax
call fcn.0053b37a
add eax, dword [ebp - 0x3fc]
pop ecx
pop ecx
cmp dword [ebp - 0xe8], eax
jg 0x711c58
cmp dword [0xa684e0], 0
jne 0x71395b
mov eax, dword [ebx + 0x4c]
cmp byte [eax + 0xa7a], 0
jne 0x713848
mov eax, dword [edi + 0x20]
dec eax
cmp eax, 0x3e6
ja 0x713848
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x54]
xor edx, edx
inc edx
cmp eax, edx
mov edx, dword [0xa6905c]
jne 0x713839
mov ax, word [edx + 0x1294]
cmp ax, word [edi + 0x898]
je 0x713839
mov eax, dword [ebp - 0x3e8]
xor ecx, ecx
movzx eax, al
inc ecx
imul eax, eax, 0x60
cmp dword [eax + 0x949188], ecx
je 0x711c58
cmp dword [0xa684e0], 0
jne 0x71395b
jmp 0x71384e
mov edx, dword [0xa6905c]
cmp dword [0x20104cc], 0
jle 0x71388d
mov eax, dword [ebx + 0x4c]
mov cl, byte [eax + 0xa7a]
test cl, cl
jle 0x71388d
mov al, byte [edi + 0xa7a]
test al, al
jle 0x71388d
cmp cl, al
mov ecx, dword [ebp - 0x3e8]
jne 0x713893
movzx eax, cl
imul eax, eax, 0x60
cmp dword [eax + 0x949188], 1
je 0x711c58
jmp 0x713893
mov ecx, dword [ebp - 0x3e8]
mov ax, word [edx + 0x1294]
cmp ax, word [edi + 0x898]
je 0x7138de
mov eax, dword [edi + 0x20]
dec eax
cmp eax, 0x3e6
ja 0x7138de
movzx eax, cl
imul eax, eax, 0x60
cmp dword [eax + 0x949188], esi
je 0x7138de
cmp dword [0x20104cc], 0
je 0x711c58
mov eax, dword [ebx + 0x4c]
mov al, byte [eax + 0xa7a]
cmp al, byte [edi + 0xa7a]
je 0x711c58
cmp dword [0x20104cc], 0
jle 0x71395b
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x58]
test eax, eax
jne 0x71395b
mov ecx, dword [ebx + 0x4c]
cvttss2si eax, dword [ecx + 0x28]
sar eax, 7
cmp eax, 8
je 0x713907
cmp eax, 9
jne 0x713919
cvttss2si eax, dword [ecx + 0x2c]
sar eax, 7
cmp eax, 0xf
je 0x713920
cmp eax, 0x10
je 0x713920
xor eax, eax
mov ecx, esi
inc eax
jmp 0x713925
xor eax, eax
inc eax
mov ecx, eax
cmp dword [edi + 0x20], 0
jbe 0x713934
cmp dword [edi + 0x20], 0x3e8
jb 0x71393c
cmp byte [edi + 0x22d], al
jne 0x71395b
mov eax, dword [ebp - 0x3e8]
xor edx, edx
movzx eax, al
inc edx
imul eax, eax, 0x60
cmp dword [eax + 0x949188], edx
jne 0x71395b
test ecx, ecx
je 0x711c58
push 0xa8
lea eax, [ebp - 0x1b8]
push esi
push eax
call fcn.00538b89
mov ecx, dword [ebx + 0x4c]
add esp, 0xc
mov eax, dword [ebp - 0x42c]
mov word [ebp - 0x1b4], ax
mov ax, word [ecx + 0x20]
mov word [ebp - 0x1b2], ax
mov ax, word [ecx + 0x20]
mov word [ebp - 0x18e], ax
mov ax, word [ebx + 0x8b84c]
mov word [ebp - 0x196], ax
mov ax, word [ebx + 0x8b850]
mov word [ebp - 0x194], ax
cvttss2si eax, dword [ecx + 0x28]
mov word [ebp - 0x192], ax
cvttss2si eax, dword [ecx + 0x2c]
or ecx, 0xffffffff
mov dword [ebp - 0x184], ecx
mov byte [ebp - 0x18a], cl
mov ecx, dword [0xa6905c]
mov word [ebp - 0x190], ax
mov eax, dword [ebp - 0x3e8]
movzx eax, al
mov word [ebp - 0x180], ax
xor eax, eax
mov byte [ebp - 0x187], al
mov byte [ebp - 0x189], al
movzx edx, word [edi + 0x20]
mov word [ebp - 0x17c], dx
mov eax, dword [ecx]
push edx
mov esi, dword [eax + 0x34]
call esi
mov dword [ebp - 0x428], eax
test eax, eax
je 0x711c58
mov edx, dword [ebp - 0x3e8]
lea esi, [eax + 0x20]
movzx ecx, dl
imul ecx, ecx, 0x60
cmp dword [ecx + 0x949150], 0xffffffff
jne 0x713a7d
mov ax, word [esi]
lea ecx, [ebp - 0x170]
mov word [ebp - 0x17c], ax
mov ax, word [0xa684e4]
mov word [ebp - 0x18c], ax
lea eax, [ebp - 0x168]
mov dword [ebp - 0x100], eax
lea eax, [ebp - 0x16c]
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0x174]
mov dword [ebp - 0x178], 0xfffffffe
jmp 0x713aa1
lea eax, [ebp - 0x170]
mov dword [ebp - 0x100], eax
lea ecx, [ebp - 0x178]
lea eax, [ebp - 0x174]
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0x17c]
mov dword [ebp - 0x42c], eax
mov ax, word [esi]
mov esi, dword [ebp - 0x42c]
or dword [ecx], 0xffffffff
mov word [esi], ax
cmp dl, 0x10
je 0x713ac9
cmp dl, 0xc
je 0x713ac9
cmp dl, 0x1c
jne 0x713c48
mov ecx, dword [ebx + 0x4c]
mov esi, dword [ebp - 0x428]
cvttss2si eax, dword [ecx + 0x28]
cvttss2si edx, dword [esi + 0x28]
sub edx, eax
mov dword [ebp - 0x108], edx
cvttss2si eax, dword [ecx + 0x2c]
cvttss2si ecx, dword [esi + 0x2c]
sub ecx, eax
mov dword [ebp - 0x10c], ecx
test edx, edx
jle 0x713b11
xor eax, eax
inc eax
mov dword [ebp - 0x108], eax
mov edx, eax
or eax, 0xffffffff
test ecx, ecx
jle 0x713b20
xor eax, eax
inc eax
jmp 0x713b22
jns 0x713b05
or eax, 0xffffffff
mov dword [ebp - 0x108], eax
mov edx, eax
jmp 0x713b08
jns 0x713b2a
mov ecx, eax
mov dword [ebp - 0x10c], eax
cvttss2si eax, dword [esi + 0x28]
add eax, edx
cvttss2si edx, dword [esi + 0x2c]
mov dword [ebp - 0x404], eax
mov eax, dword [ebx + 0x34]
mov esi, dword [eax + 0x10]
add edx, ecx
cmp dword [esi + 0xc], 0
mov dword [ebp - 0xf4], edx
je 0x713c48
cmp esi, dword [ebx + 0x4c]
je 0x713c21
cmp esi, dword [ebp - 0x428]
je 0x713c21
cvttss2si eax, dword [esi + 0x28]
cmp eax, dword [ebp - 0x404]
jne 0x713c21
cvttss2si eax, dword [esi + 0x2c]
cmp eax, edx
jne 0x713c21
mov eax, dword [esi + 0x20]
dec eax
cmp eax, 0x3e6
ja 0x713bb1
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x54]
test eax, eax
je 0x713c1b
cmp dword [0xa684e0], 0
je 0x713c1b
xor eax, eax
inc eax
cmp byte [esi + 0x22c], al
jmp 0x713c19
xor eax, eax
inc eax
cmp dword [0xa684e0], 0
jne 0x713c32
cmp byte [esi + 0x22d], al
jne 0x713be7
mov eax, dword [0xa6905c]
movzx ecx, word [esi + 0x898]
cmp word [eax + 0x1294], cx
je 0x713bdf
test cx, cx
jne 0x713c03
test cx, cx
je 0x713c03
xor eax, eax
inc eax
cmp dword [0xa684e0], 0
jne 0x713c32
cmp byte [esi + 0x22d], al
jne 0x713c32
xor eax, eax
cmp word [esi + 0x898], ax
je 0x713c32
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x58]
test eax, eax
mov eax, dword [0x20104cc]
jne 0x713c17
test eax, eax
jg 0x713c1b
test eax, eax
jne 0x713c32
mov edx, dword [ebp - 0xf4]
mov eax, dword [esi + 0xc]
mov esi, eax
cmp dword [eax + 0xc], 0
jne 0x713b54
jmp 0x713c48
mov ecx, dword [ebp - 0xfc]
mov ax, word [esi + 0x20]
mov word [ecx], ax
mov eax, dword [ebp - 0x100]
or dword [eax], 0xffffffff
cvttss2si eax, dword [edi + 0x28]
mov edx, dword [ebp - 0x3e8]
mov word [ebp - 0x192], ax
cvttss2si eax, dword [edi + 0x2c]
mov word [ebp - 0x190], ax
test dl, dl
je 0x713c94
movzx ecx, word [ebx + 0x8b84c]
movzx eax, word [ebx + 0x8b850]
mov word [ebp - 0x196], cx
mov word [ebp - 0x194], ax
mov word [ebp - 0x192], cx
mov word [ebp - 0x190], ax
movzx eax, dl
xor ecx, ecx
imul eax, eax, 0x60
inc ecx
mov eax, dword [eax + 0x94918c]
cmp eax, ecx
jne 0x713cb5
mov eax, dword [ebp - 0x420]
mov ecx, dword [ebp - 0x424]
jmp 0x713cc8
mov ecx, 0xa8
cmp eax, 2
jne 0x713ccf
mov eax, dword [ebp - 0x40c]
push 0x50
pop ecx
mov word [ebp - 0x1b4], ax
push ecx
lea eax, [ebp - 0x1b8]
push eax
call fcn.00536b6d
pop ecx
pop ecx
mov ecx, ebx
call fcn.0053970a
mov ax, word [ebx + 0x20]
lea esi, [ebp - 0x1b8]
push 0x2a
pop ecx
lea edi, [ebp - 0x33c]
rep movsd dword es:[edi], dword [esi]
mov word [ebp - 0x336], ax
xor eax, eax
inc eax
cmp dword [ebp - 0x3fc], 0
mov byte [ebp - 0x30d], al
je 0x713d1a
or byte [ebp - 0x30c], 8
mov edx, dword [ebx]
lea eax, [ebp - 0x33c]
push eax
movzx eax, word [ebp - 0x1b4]
mov ecx, ebx
push eax
call dword [edx + 4]
mov eax, dword [ebp - 0x3e8]
mov ecx, dword [ebp + 0x1c]
movzx eax, al
mov dword [ebx + 0x27604], ecx
mov dword [ebx + eax*4 + 0x8c5e0], ecx
mov eax, dword [ebx + 0x4c]
and dword [eax + 0xa24], 0
jmp 0x713fd3
cmp dword [ebp + 0x20], 1
jne 0x713f9e
cmp ecx, eax
jl 0x713f9e
cmp dword [ebp - 0x108], edx
jne 0x713f9e
mov eax, dword [ebp - 0x10c]
cmp eax, dword [ebp - 0x3ec]
jne 0x713f9e
mov edx, dword [ebx + 0x4c]
mov eax, dword [edx + 0x9f8]
sub eax, 4
cmp eax, 5
ja 0x713deb
imul eax, dword [edx + 0x5c], 0xe1
mov ecx, dword [edx + 0x60]
add eax, dword [ecx + 0x2d0]
mov eax, dword [eax*4 + 0x997a68]
mov dword [ebp - 0x404], eax
mov eax, dword [0xa69060]
cmp dword [eax + 0x1c], esi
je 0x713deb
mov eax, dword [ebp - 0x404]
cmp eax, 2
lea ecx, [eax - 2]
cmovbe ecx, eax
mov eax, dword [edx + 0x60]
imul ecx, dword [eax + 0x2e4]
mov eax, dword [edx + 0x810]
lea eax, [eax + ecx*4]
cmp dword [ebp + 0x1c], eax
jb 0x711c58
cmp dword [ebx + 0x40], esi
je 0x711028
movss xmm0, dword [0x7c514c]
comiss xmm0, dword [ebp + 0x14]
jbe 0x713e20
movss xmm0, dword [edi + 0x28]
movss dword [ebp + 0x10], xmm0
movss xmm0, dword [edi + 0x2c]
movss dword [ebp + 0x18], xmm0
movss xmm0, dword [edi + 0x30]
movss dword [ebp + 0x14], xmm0
push dword [ebx + 0x26edc]
mov ecx, edx
call fcn.0053c112
mov ecx, dword [ebx + 0x4c]
movss xmm0, dword [ebp + 0x10]
ucomiss xmm0, dword [ecx + 0x28]
lahf
test ah, 0x44
jp 0x713e52
movss xmm0, dword [ebp + 0x18]
ucomiss xmm0, dword [ecx + 0x2c]
lahf
test ah, 0x44
jnp 0x711c58
mov eax, dword [ebp + 0x1c]
mov dword [ebx + 0x26efc], esi
mov dword [ecx + 0xa24], edi
mov dword [ebx + 0x276b8], eax
mov eax, dword [ebx + 0x4c]
cmp byte [eax + 0xa4c], 0
jne 0x711028
cvttss2si ecx, dword [eax + 0x2c]
cvttss2si edx, dword [eax + 0x28]
mov eax, dword [ebx + 0x8b84c]
mov dword [ebp - 0xf0], ecx
test eax, eax
je 0x713e9d
mov ecx, dword [ebx + 0x8b850]
mov dword [ebp - 0xf0], ecx
cmove eax, edx
cvttss2si edx, dword [edi + 0x2c]
mov dword [ebp - 0x404], eax
cvttss2si eax, dword [edi + 0x28]
mov edi, dword [ebp - 0x404]
push edx
mov dword [ebp - 0x424], edx
push eax
push ecx
push edi
mov dword [ebp - 0x40c], eax
call fcn.0053c0cc
mov ecx, eax
or edx, 0xffffffff
add esp, 0x10
mov eax, edx
cmp edi, dword [ebp - 0x40c]
cmovle eax, dword [ebp - 0x418]
mov dword [ebp - 0x418], eax
mov eax, dword [ebp - 0x424]
cmp dword [ebp - 0xf0], eax
push 1
pop eax
cmovle edx, eax
mov dword [ebp - 0x420], edx
mov edx, dword [ebp - 0x3e8]
movzx eax, dl
imul eax, eax, 0x60
mov eax, dword [eax + 0x949150]
add eax, dword [ebp - 0x3fc]
cmp ecx, eax
jle 0x713f83
movzx eax, dl
imul eax, eax, 0x60
mov dword [ebp - 0x404], eax
cmp esi, 0x1f4
jg 0x711c58
mov ecx, dword [ebp - 0x40c]
cmp edi, ecx
je 0x713f44
add edi, dword [ebp - 0x418]
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x424]
cmp eax, edx
je 0x713f60
add eax, dword [ebp - 0x420]
mov dword [ebp - 0xf0], eax
push edx
push ecx
push eax
push edi
call fcn.0053c0cc
mov ecx, dword [ebp - 0x404]
add esp, 0x10
inc esi
mov ecx, dword [ecx + 0x949150]
add ecx, dword [ebp - 0x3fc]
cmp eax, ecx
jg 0x713f28
mov eax, dword [ebp - 0xf0]
mov dword [ebx + 0x27794], edi
mov dword [ebx + 0x27798], eax
jmp 0x713f9e
and dword [ebx + 0xf4], 0
push dword [ebp + 0x1c]
mov ecx, ebx
call fcn.0053d5b2
jmp 0x71102a
xor eax, eax
lea ecx, [ebx + 0x27e40]
push eax
push eax
push eax
call fcn.0053d5f3
mov eax, dword [ebx + 0x6a598]
xor ecx, ecx
cmp dword [eax + 0x28], ecx
sete cl
push ecx
mov ecx, ebx
call fcn.0053c05e
xor eax, eax
inc eax
jmp 0x71102a