Function at 0x411c88
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov eax, 0x177c
mov ebp, esp
push edi
push esi
push ebx
call fcn.00a51dc8
mov eax, 0x10
and esp, 0xfffffff0
call fcn.00a51dc8
call fcn.00a51948
mov dword [ebp - 0x15ac], 0
mov dword [esp + 4], 0xb62421
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
mov dword [esp], eax
call fcn.00a5b588
mov ebx, eax
xor eax, eax
test ebx, ebx
je 0x4152b3
lea ecx, [ebp - 0x38]
lea esi, [ebp - 0x15ac]
mov dword [esp], ebx
mov dword [esp + 8], esi
mov dword [esp + 4], ecx
call fcn.00522f40
test eax, eax
jne 0x411cfe
mov edi, dword [ebp + 0xc]
add dword [ebp + 8], 1
mov edx, dword [edi]
mov dword [edi + 4], edx
mov dword [esp], ebx
call fcn.00a5b578
call fcn.00525c6b
call fcn.00525fb4
test eax, eax
je 0x41577d
call fcn.00526147
test eax, eax
je 0x415751
mov dword [ebp - 0x1698], 0
mov dword [ebp - 0x15fc], 0
call fcn.0051d4c8
call fcn.0051d45e
mov dword [esp], eax
call fcn.00a5b608
call fcn.0040f219
call fcn.00461286
mov dword [0x128b9f0], eax
mov dword [esp + 4], 0xb5cd60
mov edx, dword [0x128b9f0]
mov dword [esp], edx
call fcn.00461246
mov edi, dword [0x128b9f0]
mov dword [esp], edi
call fcn.0041b861
mov esi, dword [ebp + 0xc]
mov dword [esp + 8], esi
mov ecx, dword [ebp + 8]
mov dword [esp + 4], ecx
mov eax, dword [0x128b9f0]
mov dword [esp], eax
call fcn.004681bc
call fcn.00460b97
mov ebx, dword [0xd86868]
mov edx, dword [0x128b9f0]
test ebx, ebx
mov dword [0xb40f9c], 1
mov dword [0xd830f8], 1
mov dword [ebp - 0x1600], edx
je 0x415720
mov dword [esp], 0xb62424
call fcn.00460a4c
test eax, eax
mov ebx, eax
je 0x41570e
mov dword [esp], eax
call fcn.00a52558
mov dword [esp], ebx
call fcn.00a5b590
mov dword [esp], 0xb62425
call fcn.00460a4c
test eax, eax
mov esi, eax
je 0x4156ed
mov dword [esp + 8], 0x1b6
mov dword [esp + 4], 0x501
mov dword [esp], eax
call fcn.00a52550
cmp eax, 0xffffffff
mov ebx, eax
je 0x411e79
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0xb6242c
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.0040f28e
mov edi, dword [0xa747f8]
cld
xor eax, eax
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub ecx, 1
mov dword [esp + 8], ecx
mov eax, dword [0xa747f8]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00a52548
mov dword [esp], ebx
call fcn.00a52540
mov ebx, dword [0xd86864]
test ebx, ebx
je 0x4156ba
mov dword [esp], esi
call fcn.00a5b590
mov esi, dword [0xd830f8]
test esi, esi
jne 0x4156b0
mov ebx, dword [ebp + 0xc]
mov edi, dword [0xa747f4]
mov dword [esp + 8], ebx
mov eax, dword [ebp + 8]
mov dword [esp + 4], eax
mov ecx, dword [0x128b9f0]
mov dword [esp], ecx
call fcn.00417e04
mov ebx, dword [0xa747f4]
mov dword [edi + 0xc], eax
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x415600
mov dword [ebp - 0x1698], 1
mov dword [esp + 4], 0xb62446
mov dword [esp], 0xb62453
call fcn.00a5b8e4
sub esp, 8
test eax, eax
mov ebx, eax
je 0x411f11
mov eax, dword [0xd830cc]
test eax, eax
je 0x411f11
mov esi, dword [0xd830f8]
test esi, esi
jne 0x4157a9
mov dword [esp], 0x8003
call fcn.00993890
sub esp, 4
mov dword [esp], 1
call fcn.009937b8
sub esp, 4
call fcn.005d09a8
mov ebx, dword [0xd830f8]
test ebx, ebx
je 0x411f4f
mov esi, dword [0xa747f4]
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x41557c
mov eax, dword [0xd830ac]
test eax, eax
je 0x411f79
mov esi, dword [eax]
cld
mov ecx, 5
mov edi, 0xb5cd46
repe cmpsb byte [esi], byte es:[edi]
jne 0x411f79
call fcn.0041da24
mov dword [ebp - 0x1698], 1
mov eax, dword [0xd830a8]
test eax, eax
je 0x411fa3
mov esi, dword [eax]
cld
mov ecx, 5
mov edi, 0xb5cd46
repe cmpsb byte [esi], byte es:[edi]
jne 0x411fa3
call fcn.0041c6a0
mov dword [ebp - 0x1698], 1
mov eax, dword [0xd86738]
test eax, eax
je 0x411fb8
mov dword [esp], eax
call fcn.0045e587
test eax, eax
jne 0x411fde
mov dword [esp], 0xb6246d
call fcn.00460a4c
mov dword [esp], eax
mov ebx, eax
call fcn.0045e587
test eax, eax
je 0x415522
mov dword [esp], ebx
call fcn.00a5b590
mov eax, dword [0xd830e4]
test eax, eax
je 0x412063
mov esi, dword [eax]
cld
mov ecx, 5
mov edi, 0xb5cd46
repe cmpsb byte [esi], byte es:[edi]
jne 0x412063
mov dword [esp + 8], 0xb62479
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.0040f28e
mov dword [esp + 8], 0xb62492
mov dword [esp + 4], 4
mov dword [esp], 0x29
call fcn.0040f28e
mov dword [esp], 1
call fcn.0045fa93
mov dword [esp + 8], 0xb624a3
mov dword [esp + 4], 1
mov dword [esp], 0
call fcn.0040f28e
mov dword [ebp - 0x1698], 1
mov eax, dword [0xd830e0]
test eax, eax
je 0x4120e8
mov esi, dword [eax]
cld
mov ecx, 5
mov edi, 0xb5cd46
repe cmpsb byte [esi], byte es:[edi]
jne 0x4120e8
mov dword [esp + 8], 0xb624a5
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.0040f28e
mov dword [esp + 8], 0xb624be
mov dword [esp + 4], 4
mov dword [esp], 0x29
call fcn.0040f28e
mov dword [esp], 0
call fcn.0045fa93
mov dword [esp + 8], 0xb624a3
mov dword [esp + 4], 1
mov dword [esp], 0
call fcn.0040f28e
mov dword [ebp - 0x1698], 1
mov eax, dword [0xd830d8]
test eax, eax
je 0x41212e
mov esi, dword [eax]
cld
mov ecx, 5
mov edi, 0xb5cd46
repe cmpsb byte [esi], byte es:[edi]
jne 0x41212e
call fcn.0048efad
mov dword [esp + 8], 0xb624a3
mov dword [esp + 4], 1
mov dword [esp], 0
call fcn.0040f28e
mov dword [ebp - 0x1698], 1
mov eax, dword [0xd830dc]
test eax, eax
je 0x412174
mov esi, dword [eax]
cld
mov ecx, 5
mov edi, 0xb5cd46
repe cmpsb byte [esi], byte es:[edi]
jne 0x412174
call fcn.0048df84
mov dword [esp + 8], 0xb624a3
mov dword [esp + 4], 1
mov dword [esp], 0
call fcn.0040f28e
mov dword [ebp - 0x1698], 1
mov eax, dword [0xa7f3ac]
test eax, eax
je 0x4121aa
mov esi, dword [eax]
cld
mov ecx, 5
mov edi, 0xb5cd46
repe cmpsb byte [esi], byte es:[edi]
jne 0x4121aa
call fcn.0047cd1f
mov dword [esp], 0xa
call fcn.00a5b5e8
mov dword [ebp - 0x1698], 1
mov eax, dword [0xd8c3d0]
test eax, eax
je 0x4121c4
cld
mov ecx, 5
mov edi, 0xb5cd46
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x4121f8
mov eax, dword [0xd8c3cc]
test eax, eax
je 0x4121de
cld
mov ecx, 5
mov edi, 0xb5cd46
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x4121f8
mov eax, dword [0xd8c3c8]
test eax, eax
je 0x412223
cld
mov ecx, 5
mov edi, 0xb5cd46
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x412223
call fcn.004d07c5
mov dword [esp + 8], 0xb624a3
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.0040f28e
mov dword [ebp - 0x1698], 1
mov eax, dword [0xd83130]
test eax, eax
jne 0x415518
mov ebx, dword [ebp - 0x1698]
test ebx, ebx
je 0x41224e
mov dword [esp + 4], 1
mov dword [esp], 0
call fcn.0040fd5e
mov edx, dword [0xd83128]
test edx, edx
je 0x412293
mov edi, dword [0xd830f8]
test edi, edi
je 0x412293
mov dword [esp + 8], 0xb624d0
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.0040f28e
mov dword [esp + 4], 1
mov dword [esp], 0
call fcn.0040fd5e
mov esi, dword [0xd830cc]
test esi, esi
jne 0x4122be
mov ecx, dword [0xd83128]
test ecx, ecx
jne 0x4122be
mov eax, dword [0xd830f8]
test eax, eax
je 0x4154e3
mov dword [ebp - 0x15fc], 1
mov dword [esp + 8], 0xb62500
mov dword [esp + 4], 6
mov dword [esp], 1
call fcn.0040f28e
mov dword [esp + 4], 6
mov dword [esp], 1
call fcn.0040f25c
test eax, eax
jne 0x415471
mov ebx, dword [0xd830a4]
test ebx, ebx
je 0x412803
xor eax, eax
cmp dword [0xd83070], 1
setg al
mov dword [esp + 8], eax
mov ecx, dword [0xa747b8]
mov dword [esp + 4], ecx
mov esi, dword [0xd830a4]
mov dword [esp], esi
call fcn.005275f4
test eax, eax
mov dword [0xd8ff68], eax
jne 0x412364
mov edx, dword [0xd830a4]
mov dword [esp], edx
call fcn.0040f214
mov dword [esp + 8], 0xb6251d
mov dword [esp + 4], 1
mov dword [esp + 0xc], eax
mov dword [esp], 1
call fcn.0040f28e
mov edi, dword [0xd830a0]
test edi, edi
jne 0x415444
mov eax, dword [0xd8ff68]
mov dword [0xd8ff64], eax
call fcn.0051cbba
mov ebx, dword [0xd831a0]
test ebx, ebx
mov edi, 0xb6253a
cmove edi, dword [0xa804c8]
mov dword [esp + 8], 0xb62543
mov dword [esp + 4], 6
mov dword [esp + 0xc], edi
mov dword [esp], 1
call fcn.0040f28e
mov edx, dword [0xd830f8]
mov dword [0xd83088], 0xb62554
mov dword [esp], edx
call fcn.0041b531
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x4091fc
mov dword [esp + 4], 0
mov dword [esp], 0xffffffff
call fcn.00418844
mov eax, dword [0xd8312c]
test eax, eax
jne 0x4153ad
mov esi, dword [0xd8311c]
test esi, esi
jne 0x41241d
mov dword [esp + 4], 0x5174a8
mov dword [esp], 0
call fcn.0041892f
mov dword [esp], 0x415bae
call fcn.0051e412
or dword [0xd83220], 0x80
mov dword [0xd83088], 0
mov dword [esp + 4], 0x40a184
mov dword [esp], 0xf
call fcn.00a5b538
mov dword [esp + 4], 0x40a184
mov dword [esp], 1
call fcn.00a5b538
mov dword [esp + 4], 0x40a184
mov dword [esp], 2
call fcn.00a5b538
mov dword [esp + 4], 0x40a184
mov dword [esp], 3
call fcn.00a5b538
mov dword [esp + 4], 0x40a184
mov dword [esp], 0xd
call fcn.00a5b538
mov dword [esp + 4], 0x40a184
mov dword [esp], 0xa
call fcn.00a5b538
mov dword [esp + 4], 0x40a184
mov dword [esp], 0xb
call fcn.00a5b538
mov dword [esp + 4], 0x40a184
mov dword [esp], 4
call fcn.00a5b538
mov dword [esp + 4], 0x40a184
mov dword [esp], 8
call fcn.00a5b538
mov dword [esp + 4], 0x40a184
mov dword [esp], 0x16
call fcn.00a5b538
mov ecx, dword [0xd830f8]
test ecx, ecx
jne 0x4152f2
mov edx, dword [0xa747f4]
mov dword [edx + 0x70], 0
xor eax, eax
mov dword [edx + eax*4 + 0x80], 0xffffffff
add eax, 1
cmp eax, 2
jle 0x412522
mov esi, dword [0xd830cc]
test esi, esi
je 0x41270f
mov ebx, dword [0x128b9f0]
xor eax, eax
mov dword [ebp - 0x160c], esp
mov dword [ebp - 0x1608], ebx
cld
mov edi, esi
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
lea eax, [ecx + 0x27]
and eax, 0xfffffff0
call fcn.00a51dc8
mov dword [esp + 4], 0xb6255f
mov dword [esp], esi
lea ebx, [esp + 0x43]
call fcn.00a5b638
and ebx, 0xfffffff0
test eax, eax
mov dword [ebp - 0x1610], eax
je 0x41261f
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0xb62563
mov dword [esp + 4], 0xb6256d
mov dword [esp], ebx
mov edi, esi
call fcn.00a5b560
xor eax, eax
cld
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov edi, dword [ebp - 0x1610]
mov edx, ecx
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not edx
not ecx
sub edx, ecx
mov byte [ebx + edx + 9], 0
mov dword [esp + 4], ebx
mov esi, dword [ebp - 0x1608]
mov dword [esp], esi
call fcn.00461a4c
test eax, eax
mov esi, eax
je 0x41261f
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0xb62574
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.0040f28e
mov dword [esp + 4], esi
mov ebx, dword [ebp - 0x1608]
mov dword [esp], ebx
call fcn.00461c60
mov esp, dword [ebp - 0x160c]
mov edi, dword [0x128b9f0]
mov dword [esp + 4], 0x2e
mov esi, dword [0xd830cc]
mov dword [esp], esi
call fcn.00a5b570
test eax, eax
je 0x4126c4
add eax, 1
lea ebx, [ebp - 0x288]
mov dword [ebp - 0x288], 0x65747865
mov dword [ebp - 0x284], 0x6f69736e
mov word [ebp - 0x280], 0x2e6e
mov byte [ebp - 0x27e], 0
mov dword [esp + 8], 7
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00a5b630
mov dword [esp + 4], ebx
mov dword [esp], edi
call fcn.00461a4c
test eax, eax
mov esi, eax
je 0x4126c4
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0xb6259c
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.0040f28e
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.00461c60
mov edx, dword [0x128b9f0]
xor eax, eax
cld
mov dword [ebp - 0x1614], edx
mov edx, dword [0xd830cc]
mov ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
sub ecx, 1
cmp ecx, 0xf5
jbe 0x414b44
mov dword [esp + 8], 0xb625c4
mov dword [esp + 4], 2
mov dword [esp], 1
call fcn.0040f28e
mov eax, dword [0xd830ac]
test eax, eax
jne 0x41461c
mov eax, dword [0xd830a8]
test eax, eax
jne 0x4146dc
mov eax, dword [0xd8311c]
test eax, eax
jne 0x412788
mov ecx, dword [0xd8312c]
test ecx, ecx
jne 0x412788
test byte [0xd83220], 8
je 0x415122
mov dword [esp + 8], 0xb62610
mov dword [esp + 4], 2
mov dword [esp], 1
call fcn.0040f28e
or dword [0xd83220], 8
mov dword [esp + 8], 0xb62634
mov dword [esp + 4], 7
mov dword [esp], 1
call fcn.0040f28e
mov edi, dword [0xd830f8]
test edi, edi
jne 0x414794
mov ecx, dword [0xd83128]
test ecx, ecx
je 0x41287d
mov eax, dword [0xd830cc]
test eax, eax
jne 0x412886
xor esi, esi
jmp 0x4127c1
mov dword [esp], 0x4e20
call fcn.0051d463
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], 0
call fcn.00419a00
test eax, eax
mov ebx, eax
jne 0x4164ac
mov edi, dword [0xa747f4]
mov eax, dword [edi + 0x54]
test eax, eax
je 0x4127b5
mov edx, dword [0xd83a1c]
test edx, edx
je 0x4127b5
call dword [eax + 0x20]
jmp 0x4127b5
mov dword [esp], 0xb62648
call fcn.00460a4c
xor ecx, ecx
cmp dword [0xd83070], 1
setg cl
mov ebx, eax
mov dword [esp + 8], ecx
mov esi, dword [0xa747b8]
mov dword [esp], eax
mov dword [esp + 4], esi
call fcn.005275f4
mov dword [0xd8ff68], eax
mov dword [esp], ebx
call fcn.00a5b590
mov edi, dword [0xd8ff68]
test edi, edi
jne 0x412364
xor edx, edx
cmp dword [0xd83070], 1
setg dl
mov dword [esp + 8], edx
mov eax, dword [0xa747b8]
mov dword [esp], 0xb62658
mov dword [esp + 4], eax
call fcn.005275f4
mov dword [0xd8ff68], eax
jmp 0x412364
mov eax, dword [0xd830cc]
test eax, eax
je 0x4128ae
mov dword [esp], eax
call fcn.0040f214
mov dword [esp + 8], 0xb62680
mov dword [esp + 4], 4
mov dword [esp + 0xc], eax
mov dword [esp], 1
call fcn.0040f28e
mov ebx, dword [0x128c4c0]
test ebx, ebx
je 0x4128d9
mov eax, dword [0xd83084]
test eax, eax
je 0x4128ca
mov dword [esp], eax
call fcn.00460258
call fcn.00460278
mov dword [0xd83084], eax
mov dword [0xd83080], eax
mov edi, dword [0x128c4d0]
test edi, edi
je 0x412942
mov eax, dword [0xd83078]
test eax, eax
je 0x4128f5
mov dword [esp], eax
call fcn.00a5b578
mov dword [esp + 4], 0xb61229
mov eax, dword [0x128c4d0]
mov dword [esp], eax
call fcn.00a5b588
test eax, eax
mov dword [0xd83078], eax
jne 0x412942
mov ecx, dword [0x128c4d0]
mov dword [esp], ecx
call fcn.0040f214
mov dword [esp + 8], 0xb62690
mov dword [esp + 4], 1
mov dword [esp + 0xc], eax
mov dword [esp], 1
call fcn.0040f28e
mov edx, dword [0xd83090]
mov dword [0xd83088], 0xb5c27f
test edx, edx
jne 0x414adc
mov eax, dword [0xa747b4]
test eax, eax
je 0x412970
mov eax, dword [0xd830cc]
test eax, eax
jne 0x4151fd
mov ebx, dword [0xd8ff40]
test ebx, ebx
je 0x4129e1
mov ebx, dword [0xd830d0]
or dword [0xd83220], 0x100
mov dword [esp + 4], ebx
mov esi, dword [0xd8ff40]
mov dword [esp], esi
call fcn.0047ae9c
mov edx, dword [0xa747f4]
mov dword [esp + 8], 0xd830c8
mov dword [esp + 0xc], edx
mov dword [esp + 4], 2
mov dword [esp], 0xb62061
call fcn.0040a6ae
mov edi, dword [0xa747f4]
mov eax, dword [0xd8ff40]
mov ecx, dword [edi + 0x70]
mov dword [edi + 0x84], ecx
mov dword [esp], eax
call fcn.0047ad81
add dword [edi + 0x70], eax
mov ebx, dword [0xa747f4]
mov edi, dword [ebx + 0x30]
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x24], 0
test edi, edi
je 0x412a03
mov dword [ebx + 0x30], 0
mov eax, dword [ebx + 0x34]
test eax, eax
je 0x412a11
mov dword [ebx + 0x34], 0
lea edx, [ebx + 0x28c]
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x2c], 0
mov dword [0xd83088], 0xb626b7
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov ecx, dword [0xd830cc]
mov dword [esp], ecx
call fcn.0051d4e0
mov esi, dword [0xa747f4]
mov dword [ebx + 0x20], eax
mov eax, dword [esi + 0x20]
test eax, eax
je 0x4172da
mov ebx, dword [0xd830f8]
or dword [0xd83220], 0x40
test ebx, ebx
jne 0x41506c
cmp dword [esi + 0x28c], 0x20000
je 0x415092
mov edx, dword [esi + 0x20]
mov ecx, dword [0xd83180]
add dword [edx + 0x30], ecx
cmp dword [0xd830c4], 5
je 0x414dc7
mov edi, dword [esi + 0x20]
cmp dword [edi + 0x18], 3
je 0x414d5e
mov edx, dword [esi + 0x20]
cmp dword [edx + 0x18], 9
je 0x414cfc
mov eax, dword [0xa747c4]
test eax, eax
jle 0x412b50
shl eax, 0xa
mov dword [0xd83088], 0xb626c3
fld dword [0xa747bc]
push eax
fld qword [0xb63410]
fxch st(1)
fimul dword [esp]
add esp, 4
fmul st(1)
fstp qword [ebp - 0x1740]
movsd xmm1, qword [ebp - 0x1740]
cvttsd2si eax, xmm1
mov dword [esp + 0xc], eax
mov esi, dword [0xa747c4]
fld dword [0xa747c0]
shl esi, 0xa
push esi
fimul dword [esp]
add esp, 4
fmulp st(1)
fstp qword [ebp - 0x1740]
movsd xmm0, qword [ebp - 0x1740]
cvttsd2si ebx, xmm0
mov dword [esp + 8], ebx
mov edi, dword [0xa747c4]
shl edi, 0xa
mov dword [esp + 4], edi
mov ecx, dword [0xa747f4]
mov edx, dword [ecx + 0x20]
mov dword [esp], edx
call fcn.005d3589
test eax, eax
je 0x413f59
mov eax, dword [0xd830cc]
mov edi, dword [0xa747f4]
mov dword [0xd83088], 0xb626d0
mov dword [esp + 0x14], eax
mov esi, dword [0xa747d0]
mov dword [esp + 0x10], esi
mov ebx, dword [0xa747d4]
mov dword [esp + 0xc], ebx
mov ecx, dword [0xa747d8]
mov dword [esp + 8], ecx
mov edx, dword [0xa747f4]
mov eax, dword [edx + 0x28c]
mov dword [esp + 4], eax
mov esi, dword [0xa747f4]
mov ebx, dword [esi + 0x20]
mov dword [esp], ebx
call fcn.004d0e0d
mov esi, dword [0xa747f4]
mov dword [edi + 0x24], eax
mov eax, dword [esi + 0x24]
test eax, eax
je 0x413cdd
cmp dword [eax + 0x30], 0x20000
je 0x41417d
mov eax, dword [esi + 0x24]
test eax, eax
je 0x413cdd
cmp dword [0xa804cc], 1
jg 0x413ed2
mov ebx, dword [esi + 0x20]
or dword [0xd83220], 0x200
mov edi, dword [ebx + 0x18]
cmp edi, 3
setne cl
cmp edi, 9
setne dl
movzx eax, dl
test eax, ecx
je 0x412c3d
mov ecx, dword [esi + 0x70]
mov ebx, 0xffffffff
xor edx, edx
mov dword [esi + 0x88], ecx
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx + edx*4 + 0x848]
test eax, eax
je 0x412c29
mov eax, dword [eax]
cmp ebx, eax
cmovl ebx, eax
add edx, 1
cmp edx, 0xff
jle 0x412c17
add ebx, dword [esi + 0x70]
lea edx, [ebx + 1]
mov dword [esi + 0x70], edx
mov eax, dword [0xa747d0]
add eax, dword [esi + 0x88]
cmp dword [esi + 0x70], eax
jg 0x412c53
add eax, 1
mov dword [esi + 0x70], eax
mov edi, dword [esi + 0x24]
mov edx, dword [0xd830d4]
mov dword [0xd83088], 0xb626db
mov ecx, dword [edi + 0x3c]
mov dword [esi + 0x30], ecx
mov eax, dword [edi + 0x40]
mov dword [esi + 0x34], eax
mov ebx, dword [edi + 0x44]
mov dword [esi + 0x38], ebx
mov dword [esp + 8], edx
mov ecx, dword [0xa747d8]
mov dword [esp + 4], ecx
mov edi, dword [0xa747f4]
mov esi, dword [edi + 0x24]
mov dword [esp], esi
call fcn.0046781f
mov ecx, dword [0xd830c4]
test ecx, ecx
setne bl
xor eax, eax
cmp ecx, 3
setle al
test eax, ebx
je 0x412e7d
xor edi, edi
cmp ecx, 2
mov dword [0xd83088], 0xb626e7
je 0x4144cc
jg 0x413fb8
sub ecx, 1
je 0x414ace
mov dword [esp + 8], 0xb626ec
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.0040f28e
mov dword [esp + 4], 1
mov dword [esp], 3
call fcn.0040fd5e
mov edx, dword [0xa747f4]
mov eax, dword [edx + 0x30]
test eax, eax
je 0x412d2f
cmp eax, edi
je 0x412d2f
mov dword [esp], eax
call fcn.004cf3f7
mov edx, dword [0xa747f4]
mov eax, dword [edx + 0x30]
mov dword [eax + 0x44], 0xfffffffe
mov eax, dword [edx + 0x34]
test eax, eax
je 0x412d52
cmp eax, edi
je 0x412d52
mov dword [esp], eax
call fcn.004cf3f7
mov edx, dword [0xa747f4]
mov ecx, dword [edx + 0x34]
mov dword [ecx + 0x44], 0xfffffffe
mov eax, dword [edx + 0x38]
test eax, eax
je 0x412d75
cmp eax, edi
je 0x412d75
mov dword [esp], eax
call fcn.004cf3f7
mov edx, dword [0xa747f4]
mov esi, dword [edx + 0x38]
mov dword [esi + 0x44], 0xfffffffe
mov dword [esp + 4], 0xb62713
mov ebx, dword [0xa747a8]
mov dword [esp], ebx
call fcn.00a5b588
test eax, eax
mov esi, eax
je 0x416f8b
mov eax, dword [edi + 0x1c]
test eax, eax
jne 0x412e45
lea ebx, [ebp - 0x15c4]
mov dword [esp], edi
mov dword [esp + 4], ebx
call fcn.004d059c
mov ecx, dword [0xa747f4]
mov ebx, eax
mov dword [ebp - 0x15c8], eax
mov eax, dword [ecx + 0x24]
mov ecx, dword [eax + 0x34]
cmp ecx, 3
sete dl
cmp ecx, 6
sete al
or eax, edx
test al, 1
jne 0x413b04
cmp ecx, 7
je 0x413b04
test ebx, ebx
jle 0x412e0d
mov dword [esp + 0xc], esi
mov dword [esp + 8], 1
mov ecx, dword [ebp - 0x15c8]
mov dword [esp + 4], ecx
mov eax, dword [ebp - 0x15c4]
mov dword [esp], eax
call fcn.00a5b558
mov ebx, dword [0xd8ffe0]
test ebx, ebx
jle 0x412d95
mov eax, dword [0xa747f4]
mov edx, dword [eax + 0x24]
mov dword [esp], edx
call fcn.004d21fe
cmp eax, 0xffffffff
je 0x412d95
add eax, 1
cmp eax, dword [0xd8ffe0]
jle 0x412d95
mov dword [esp], esi
call fcn.00a5b578
mov dword [esp + 8], 0xb62716
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.0040f28e
mov dword [esp + 4], 0
mov dword [esp], 2
call fcn.0040fd5e
mov edx, dword [0xa747f4]
mov edi, dword [edx + 0x34]
mov ecx, dword [edx + 0x30]
mov eax, dword [edi + 0x5c]
mov esi, dword [ecx + 0x5c]
test eax, eax
mov dword [edx + 0x28], esi
mov dword [edx + 0x2c], eax
jne 0x413c5e
mov edi, dword [edx + 0x28]
test edi, edi
je 0x413cc1
mov esi, dword [edx + 0x24]
mov dword [esp], esi
call fcn.004d180e
mov edx, dword [0xd8ff44]
test edx, edx
jne 0x413b43
mov ecx, dword [0xa747f4]
mov ebx, dword [ecx + 0x2c]
test ebx, ebx
je 0x412f72
mov esi, dword [ecx + 0x20]
mov edi, dword [esi + 0x18]
cmp edi, 3
sete dl
cmp edi, 9
sete al
or eax, edx
test al, 1
jne 0x413b3e
mov ebx, dword [ecx + 0x2c]
test ebx, ebx
je 0x412f72
mov eax, dword [0xd8309c]
mov dword [0xd83088], 0xb62726
test eax, eax
je 0x412f49
xor ebx, ebx
cmp dword [eax], 0
je 0x412f49
mov dword [esp + 8], 0
mov eax, dword [0xa747f4]
mov ecx, dword [eax + 0x2c]
mov esi, dword [ecx + 0xec]
mov dword [esp + 4], esi
mov edi, dword [0xd8309c]
mov edx, dword [edi + ebx*4]
add ebx, 1
mov dword [esp], edx
call fcn.00410113
mov eax, dword [0xd8309c]
mov ecx, dword [eax + ebx*4]
test ecx, ecx
jne 0x412f0f
mov ebx, dword [0xa747b4]
test ebx, ebx
jne 0x4140cb
mov ecx, dword [0xa747f4]
mov edx, dword [ecx + 0x7c]
test edx, edx
jle 0x412f72
mov esi, dword [ecx + 0x70]
mov dword [ecx + 0x80], esi
add esi, edx
mov dword [ecx + 0x70], esi
mov edi, dword [ecx + 0x70]
test edi, edi
jne 0x413be5
mov ebx, dword [0xd830cc]
mov dword [esp], ebx
call fcn.0040f214
mov dword [esp + 8], 0xb6273a
mov dword [esp + 4], 4
mov dword [esp + 0xc], eax
mov dword [esp], 0x29
call fcn.0040f28e
mov edi, dword [0xa747f4]
mov esi, dword [edi + 0x24]
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov dword [esp + 8], 0xb6274a
mov dword [esp + 4], 4
mov dword [esp + 0xc], ecx
mov dword [esp], 0x29
call fcn.0040f28e
mov edx, dword [0xa747f4]
mov eax, dword [edx + 0x2c]
test eax, eax
je 0x413110
mov edx, dword [eax + 0xc]
cmp edx, 0x2020201f
jbe 0x413f37
add eax, 0xc
mov dword [esp + 8], 0xb62759
mov dword [esp + 0xc], eax
mov dword [esp + 4], 4
mov dword [esp], 0x29
call fcn.0040f28e
mov edx, dword [0xa747f4]
mov ebx, dword [edx + 0x2c]
mov edi, dword [ebx + 0xfc]
mov dword [esp + 8], 0xb6276f
mov dword [esp + 4], 4
shl edi, 3
mov dword [esp], 0x29
mov dword [esp + 0xc], edi
call fcn.0040f28e
mov esi, dword [0xa747f4]
mov eax, dword [esi + 0x2c]
mov ecx, dword [eax + 0x100]
mov dword [esp + 8], 0xb62784
mov dword [esp + 4], 4
mov dword [esp + 0xc], ecx
mov dword [esp], 0x29
call fcn.0040f28e
mov edx, dword [0xa747f4]
mov ebx, dword [edx + 0x2c]
mov edi, dword [ebx + 0x104]
mov dword [esp + 8], 0xb62797
mov dword [esp + 4], 4
mov dword [esp + 0xc], edi
mov dword [esp], 0x29
call fcn.0040f28e
mov esi, dword [0xa747f4]
mov eax, dword [esi + 0x2c]
fld dword [eax + 0xec]
mov dword [esp + 8], 0xb627ab
mov dword [esp + 4], 4
fstp qword [esp + 0xc]
mov dword [esp], 0x29
call fcn.0040f28e
mov ecx, dword [0xa747f4]
mov edx, dword [ecx + 0x2c]
fld dword [edx + 0xf4]
mov dword [esp + 8], 0xb627bf
mov dword [esp + 4], 4
fstp qword [esp + 0xc]
mov dword [esp], 0x29
call fcn.0040f28e
mov edx, dword [0xa747f4]
mov eax, dword [edx + 0x28]
test eax, eax
je 0x4131da
mov edx, dword [eax + 0xc]
cmp edx, 0x2020201f
jbe 0x413f48
add eax, 0xc
mov dword [esp + 8], 0xb627d6
mov dword [esp + 0xc], eax
mov dword [esp + 4], 4
mov dword [esp], 0x29
call fcn.0040f28e
mov esi, dword [0xa747f4]
mov eax, dword [esi + 0x28]
mov ecx, dword [eax + 0x2c]
mov dword [esp + 8], 0xb627ec
mov dword [esp + 4], 4
shl ecx, 3
mov dword [esp], 0x29
mov dword [esp + 0xc], ecx
call fcn.0040f28e
mov edx, dword [0xa747f4]
mov ebx, dword [edx + 0x28]
mov edi, dword [ebx + 0x1c]
mov dword [esp + 8], 0xb62801
mov dword [esp + 4], 4
mov dword [esp + 0xc], edi
mov dword [esp], 0x29
call fcn.0040f28e
mov esi, dword [0xa747f4]
mov eax, dword [esi + 0x28]
mov ecx, dword [eax + 0x24]
mov dword [esp + 8], 0xb62813
mov dword [esp + 4], 4
mov dword [esp + 0xc], ecx
mov dword [esp], 0x29
call fcn.0040f28e
mov edx, dword [0xa747f4]
mov ecx, dword [edx + 0x24]
mov dword [esp], ecx
call fcn.004d1941
mov dword [esp + 8], 0xb62824
mov dword [esp + 4], 4
fstp qword [esp + 0xc]
mov dword [esp], 0x29
call fcn.0040f28e
mov edx, dword [0xa747f4]
xor ecx, ecx
mov ebx, dword [edx + 0x20]
mov edi, dword [ebx + 8]
test edi, edi
je 0x41322d
mov eax, dword [edx + 0x24]
test eax, eax
je 0x413bdb
mov edx, dword [eax + 0x38]
test edx, edx
jne 0x413bdb
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 0xb62835
mov dword [esp + 4], 4
mov dword [esp], 0x29
call fcn.0040f28e
mov edx, dword [0xa747f4]
mov eax, dword [edx + 0x24]
test eax, eax
je 0x413297
mov esi, dword [eax + 0xc4c]
test esi, esi
je 0x41414d
mov esi, dword [edx + 0x24]
mov ecx, dword [esi + 0xc4c]
mov dword [esp + 8], 0xb62845
mov dword [esp + 4], 4
mov dword [esp + 0xc], ecx
mov dword [esp], 0x29
call fcn.0040f28e
mov edx, dword [0xa747f4]
mov eax, dword [edx + 0x2c]
test eax, eax
je 0x4132c6
call fcn.00411795
test eax, eax
jne 0x413b4e
mov eax, dword [0xa747f4]
mov edx, dword [eax + 0x2c]
test edx, edx
jne 0x413b4e
mov edi, dword [eax + 0x28]
test edi, edi
je 0x413cdd
mov eax, dword [0xd83190]
mov dword [0xd83088], 0xb62855
test eax, eax
jne 0x413b9a
mov eax, dword [0xd83070]
xor esi, esi
mov ecx, 0
test eax, eax
mov ebx, dword [0xa747f4]
mov eax, dword [0xd83230]
cmove esi, dword [0xa747dc]
mov dword [ebp - 0x15cc], 0
mov dword [ebp - 0x15e8], ecx
mov dword [0xa747dc], esi
mov dword [ebx + 0x58], 0
jmp 0x413328
mov edi, dword [eax]
mov dword [esp], eax
call fcn.00a5b590
mov eax, edi
test eax, eax
jne 0x41331c
mov dword [0xd83230], 0
call fcn.00410e0a
mov edx, dword [0xa747f4]
mov ebx, dword [edx + 0x28]
test ebx, ebx
jne 0x41669f
mov ecx, dword [edx + 0x2c]
mov dword [0xd83088], 0xb6285a
test ecx, ecx
je 0x41337e
cmp dword [0xd830c4], 2
jne 0x412de5
lea edx, [ebp - 0x15c8]
mov dword [esp + 0xc], esi
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], edx
call fcn.00a5b558
mov ebx, dword [ebp - 0x15c8]
jmp 0x412de5
call fcn.004102a8
mov ecx, dword [0xa747f4]
jmp 0x412eee
test byte [0xd872b8], 8
je 0x4132c6
mov ebx, dword [0xd8ff44]
test ebx, ebx
je 0x4132c6
mov eax, dword [0xa747f4]
mov esi, dword [eax + 0x54]
mov dword [esp + 4], esi
mov ecx, dword [0xd8ff44]
mov dword [esp], ecx
call fcn.0046f9e6
mov eax, dword [0xd83190]
mov dword [0xd83088], 0xb62855
test eax, eax
je 0x4132dd
mov dword [esp + 4], eax
mov edx, dword [0xa747f4]
mov dword [esp], edx
call fcn.0040aa3d
mov dword [esp + 8], 0xb628a1
mov dword [esp + 4], 4
mov edi, eax
mov dword [esp + 0xc], eax
mov dword [esp], 1
call fcn.0040f28e
mov dword [esp], edi
call fcn.00a5b590
jmp 0x4132dd
mov ecx, 1
jmp 0x41322d
mov edx, dword [0xa747cc]
mov dword [esp + 4], edx
mov ebx, dword [0xd8ff40]
mov dword [esp], ebx
call fcn.0047adf9
mov edx, dword [0xa747f4]
test eax, eax
js 0x4145f2
add eax, dword [edx + 0x84]
mov dword [edx + 0x74], eax
sub dword [edx + 0x74], 1
mov dword [esp + 0xc], edx
mov dword [esp + 8], 0
mov dword [esp + 4], 4
mov dword [esp], 0xb5cb5f
call fcn.0040a6ae
mov edx, dword [0xd86870]
test edx, edx
je 0x412f7d
mov eax, dword [0xd830c4]
sub eax, 3
cmp eax, 6
ja 0x412f7d
jmp dword [eax*4 + 0xb63498]
mov dword [0xd83088], 0xb628a4
mov dword [esp], eax
call fcn.005169e4
test eax, eax
jne 0x413fd7
mov dword [esp + 8], 0xb628bc
mov dword [esp + 4], 1
mov dword [esp], 1
call fcn.0040f28e
mov edx, dword [0xa747f4]
mov ebx, dword [edx + 0x34]
mov dword [edx + 0x2c], 0
mov dword [ebx + 0x5c], 0
mov eax, dword [edx + 0x2c]
test eax, eax
jne 0x412ea8
mov edi, dword [edx + 0x28]
test edi, edi
jne 0x412ea8
mov dword [esp + 8], 0xb628dc
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.0040f28e
mov dword [esp + 8], 0xb624a3
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.0040f28e
mov edi, dword [0xd83100]
test edi, edi
jne 0x41494e
cmp dword [0xd83118], 1
sbb edx, edx
not edx
add edx, 0xff7b
mov dword [esp], edx
call fcn.0040f972
mov edx, dword [0xa747f4]
mov esi, dword [edx + 0x7c]
test esi, esi
jle 0x413d5d
mov dword [0xd83088], 0xb628ee
xor ebx, ebx
mov edi, dword [edx + ebx*4 + 0x8c]
add ebx, 1
mov dword [esp], edi
call fcn.004787e5
mov edx, dword [0xa747f4]
cmp dword [edx + 0x7c], ebx
jg 0x413d39
mov dword [edx + 0x7c], 0
mov ecx, dword [edx + 0x14]
xor ebx, ebx
mov dword [0xd8ff48], 0
cmp ecx, 1
mov dword [0xd8686c], 0
mov dword [0xd86870], 0
sete bl
xor eax, eax
cmp ecx, 0xffffffff
sete al
or eax, ebx
je 0x414561
lea edi, [ebx + ebx - 1]
mov dword [edx + 0x14], edi
mov dword [esp + 8], 0
mov edx, dword [0xa747f4]
mov esi, dword [edx + 0x18]
mov dword [esp + 4], esi
mov ecx, dword [0xa747f4]
mov ebx, dword [ecx + 0x10]
mov dword [esp], ebx
call fcn.00468d43
sub eax, 1
jne 0x414cd9
mov edx, dword [0xa747f4]
mov dword [edx + 0x14], 1
mov dword [edx + 0x18], 1
mov edi, dword [edx + 0x14]
test edi, edi
jne 0x413dee
mov dword [edx + 0x14], 1
mov eax, dword [edx + 0x10]
test eax, eax
je 0x413e6e
mov esi, dword [edx + 0x14]
mov dword [esp + 4], esi
mov ecx, dword [0xa747f4]
mov edx, dword [ecx + 0x10]
mov dword [esp], edx
call fcn.00469394
test eax, eax
mov dword [0xd830cc], eax
jne 0x4172b3
mov dword [esp + 8], 0
mov edx, dword [0xa747f4]
mov eax, dword [edx + 0x14]
mov dword [esp + 4], eax
mov edi, dword [0xa747f4]
mov ebx, dword [edi + 0x10]
mov dword [esp], ebx
call fcn.00468d43
sub eax, 1
je 0x4140c0
mov esi, dword [0xa747f4]
mov ecx, dword [esi + 0x10]
mov dword [esp], ecx
call fcn.00468b7b
mov edx, dword [0xa747f4]
mov dword [edx + 0x10], 0
mov eax, dword [edx + 0x10]
test eax, eax
jne 0x413df5
mov eax, dword [0xd830f8]
test eax, eax
je 0x413e9d
mov ebx, dword [edx + 0x10]
test ebx, ebx
jne 0x413e99
mov edi, dword [0x128bedc]
test edi, edi
jne 0x413e99
call fcn.004343cd
mov eax, dword [0xd830f8]
mov edx, dword [0xa747f4]
test eax, eax
jne 0x413eb2
mov eax, dword [edx + 0x10]
test eax, eax
jne 0x413eb2
mov ecx, dword [0xd83128]
test ecx, ecx
je 0x41529a
mov ebx, dword [edx + 0x10]
xor esi, esi
mov dword [edx + 0x14], 0
test ebx, ebx
cmovne esi, dword [0xd830cc]
mov dword [0xd830cc], esi
jmp 0x412519
lea ebx, [ebp - 0x15c0]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 1
mov edi, dword [0xa804cc]
sub edi, 1
mov dword [esp + 4], edi
mov esi, dword [0xa747f4]
mov edx, dword [esi + 0x24]
mov dword [esp], edx
call fcn.004d1ecd
test eax, eax
js 0x413f2c
fld dword [ebp - 0x15c0]
fld dword [0xb63418]
fcompi st(1)
fstp st(0)
jb 0x4144eb
mov esi, dword [0xa747f4]
jmp 0x412be1
mov dword [esp + 0xc], edx
mov dword [esp + 8], 0xb628f7
jmp 0x413008
mov dword [esp + 0xc], edx
mov dword [esp + 8], 0xb6290f
jmp 0x413139
mov edi, dword [0xa747f4]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
mov esi, 1
call fcn.00419a00
test eax, eax
mov ebx, eax
je 0x413fa8
mov eax, dword [eax]
cmp eax, 5
je 0x41453b
jg 0x4145cb
cmp eax, 2
je 0x41451f
mov dword [esp], ebx
call fcn.00418b07
test esi, esi
mov dword [edi + 0x14], esi
je 0x412b50
jmp 0x413cdd
cmp ecx, 3
jne 0x412cd6
mov ebx, dword [0xa747f4]
mov edi, dword [ebx + 0x38]
test edi, edi
jne 0x412d06
jmp 0x412cd6
mov edi, dword [0xa747f4]
mov eax, dword [edi + 0x2c]
fld dword [eax + 0xf0]
fstp qword [esp + 0x24]
mov edx, dword [0xa747f4]
mov ebx, dword [edx + 0x2c]
fld dword [ebx + 0xec]
fstp qword [esp + 0x1c]
mov ecx, dword [0xa747f4]
mov esi, dword [ecx + 0x2c]
mov edi, dword [esi + 0x104]
mov dword [esp + 0x18], edi
mov eax, dword [0xa747f4]
mov edx, dword [eax + 0x2c]
mov ebx, dword [edx + 0x100]
mov dword [esp + 0x14], ebx
mov ecx, dword [0xa747f4]
mov esi, dword [ecx + 0x2c]
mov edi, dword [esi + 0xc]
mov dword [esp + 0x10], edi
mov eax, dword [0xa747f4]
mov edx, dword [eax + 0x24]
mov ebx, dword [edx + 0x34]
mov dword [esp + 8], 0xb62924
mov dword [esp + 4], 6
mov dword [esp + 0xc], ebx
mov dword [esp], 1
call fcn.0040f28e
fld qword [0xd830b8]
fldz
fcomi st(1)
je 0x414514
mov edx, dword [0xa747f4]
fld1
fxch st(2)
mov esi, dword [edx + 0x2c]
fst dword [esi + 0xec]
fxch st(2)
fdiv dword [esi + 0xec]
fstp dword [esi + 0xf0]
mov ecx, dword [edx + 0x2c]
fldz
fld dword [ecx + 0xec]
fcomi st(1)
fstp st(1)
fstp dword [0xd839dc]
jne 0x41450b
fcompi st(1)
fstp st(0)
jne 0x413cab
mov dword [esp + 8], 0xb62968
jmp 0x413c80
mov edx, dword [0xa747f4]
jmp 0x413dee
mov dword [esp], 0xb629aa
call fcn.00460a4c
mov edx, 0xb62424
mov edi, dword [0xd830cc]
test eax, eax
mov dword [esp + 4], edi
mov ebx, eax
cmovne edx, eax
xor edi, edi
mov dword [esp], edx
call fcn.00476e64
mov dword [esp], ebx
mov esi, eax
call fcn.00a5b590
cmp dword [esi], 0
je 0x414140
mov dword [esp + 8], 1
mov eax, dword [0xa747f4]
mov ecx, dword [eax + 0x2c]
mov edx, dword [ecx + 0xec]
mov dword [esp + 4], edx
mov ebx, dword [esi + edi*4]
mov dword [esp], ebx
call fcn.00410113
mov eax, dword [esi + edi*4]
add edi, 1
mov dword [esp], eax
call fcn.00a5b590
mov ecx, dword [esi + edi*4]
test ecx, ecx
jne 0x414106
mov dword [esp], esi
call fcn.00a5b590
jmp 0x412f57
add eax, 0xc4c
mov dword [esp + 4], 4
mov dword [esp + 8], eax
mov ebx, dword [0xa747f4]
mov edi, dword [ebx + 0x24]
mov eax, dword [edi + 0x10]
mov dword [esp], eax
call fcn.0051d9e0
mov edx, dword [0xa747f4]
jmp 0x413268
mov dword [ebp - 0x1634], 0
mov dword [0xd83088], 0xb629af
lea edi, [ebp - 0x15bc]
mov dword [esp + 4], edi
mov ecx, dword [0xa747f4]
mov ebx, dword [ecx + 0x24]
mov esi, dword [ebx + 0x40]
mov dword [esp], esi
call fcn.004d059c
test eax, eax
jle 0x414433
mov edx, dword [ebp - 0x15bc]
mov dword [esp], edx
call fcn.0040f214
mov dword [esp + 8], 0xb629c8
mov dword [esp + 4], 6
mov dword [esp + 0xc], eax
mov dword [esp], 1
call fcn.0040f28e
mov dword [esp + 4], 0x5c
mov edi, dword [ebp - 0x15bc]
mov dword [esp], edi
call fcn.00a5b570
test eax, eax
lea ebx, [eax + 1]
je 0x4167c6
xor eax, eax
cld
mov ecx, 0xffffffff
mov edi, ebx
repne scasb al, byte es:[edi]
not ecx
sub ecx, 1
cmp ecx, 0xa
jbe 0x414241
mov ecx, 2
mov edi, 0xb629ea
mov esi, ebx
repe cmpsb byte [esi], byte es:[edi]
jne 0x414241
lea esi, [ebx + 3]
mov ecx, 6
mov edi, 0xb629ed
repe cmpsb byte [esi], byte es:[edi]
je 0x414191
mov ebx, dword [0xd830cc]
mov dword [esp + 4], ebx
mov edx, dword [ebp - 0x15bc]
mov dword [esp], edx
call fcn.00a5b620
test eax, eax
je 0x414191
call fcn.00468288
mov dword [ebp - 0x1638], eax
mov eax, dword [0xd830cc]
test eax, eax
je 0x41448d
mov dword [esp + 4], 0x5c
mov edi, dword [ebp - 0x15bc]
mov dword [esp], edi
call fcn.00a5b570
test eax, eax
je 0x41706b
add eax, 1
mov edx, dword [ebp - 0x15bc]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00a5b620
test eax, eax
jne 0x41448d
mov ebx, dword [0xd830cc]
cld
mov ecx, 0xffffffff
mov edi, ebx
repne scasb al, byte es:[edi]
mov dword [esp + 4], 0x5c
mov dword [esp], ebx
not ecx
lea esi, [ecx - 1]
call fcn.00a5b570
test eax, eax
lea edx, [eax + 1]
je 0x4173f8
xor eax, eax
cld
mov edi, edx
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov edi, dword [ebp - 0x15bc]
not ecx
sub esi, ecx
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
sub esi, ecx
mov dword [esp], esi
call fcn.00a5b598
test eax, eax
mov esi, eax
je 0x4144a5
mov ebx, dword [0xd830cc]
xor eax, eax
cld
mov ecx, 0xffffffff
mov edi, ebx
repne scasb al, byte es:[edi]
not ecx
sub ecx, 1
mov dword [ebp - 0x1640], ecx
mov dword [esp + 4], 0x5c
mov dword [esp], ebx
call fcn.00a5b570
test eax, eax
lea edx, [eax + 1]
je 0x417432
cld
mov edi, edx
xor eax, eax
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub ecx, 1
sub dword [ebp - 0x1640], ecx
mov ebx, dword [ebp - 0x1640]
mov dword [esp + 8], ebx
mov edx, dword [0xd830cc]
mov dword [esp], esi
mov dword [esp + 4], edx
call fcn.00a5b618
mov ebx, dword [0xd830cc]
xor eax, eax
cld
mov ecx, 0xffffffff
mov edi, ebx
repne scasb al, byte es:[edi]
not ecx
sub ecx, 1
mov dword [ebp - 0x1644], ecx
mov dword [esp + 4], 0x5c
mov dword [esp], ebx
call fcn.00a5b570
test eax, eax
lea edx, [eax + 1]
je 0x417415
cld
mov edi, edx
xor eax, eax
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub ecx, 1
sub dword [ebp - 0x1644], ecx
mov ecx, dword [ebp - 0x1644]
mov byte [esi + ecx], 0
mov ebx, dword [ebp - 0x15bc]
mov dword [esp], esi
mov dword [esp + 4], ebx
call fcn.00a5b600
mov edx, dword [0xd830cc]
mov dword [esp], esi
mov dword [esp + 4], edx
call fcn.00a5b620
test eax, eax
jne 0x414c7d
mov dword [esp], esi
lea edi, [ebp - 0x15bc]
call fcn.00a5b590
mov dword [esp + 4], edi
mov ecx, dword [0xa747f4]
mov ebx, dword [ecx + 0x24]
mov esi, dword [ebx + 0x40]
mov dword [esp], esi
call fcn.004d059c
test eax, eax
jg 0x4141b7
mov esi, dword [0xa747f4]
mov edx, dword [esi + 0x24]
mov dword [esp], edx
call fcn.004cfcc1
mov eax, dword [ebp - 0x1634]
mov esi, dword [0xa747f4]
test eax, eax
mov dword [esi + 0x24], 0
je 0x412bc9
call fcn.00468288
mov ecx, dword [ebp - 0x1634]
mov ebx, eax
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00468524
mov eax, ebx
mov edi, dword [0xa747f4]
call fcn.0040ffd4
mov dword [edi + 0x14], eax
jmp 0x413cdd
mov ebx, dword [ebp - 0x15bc]
mov dword [esp + 4], ebx
mov esi, dword [ebp - 0x1638]
mov dword [esp], esi
call fcn.00468592
mov ecx, dword [ebp - 0x1634]
test ecx, ecx
je 0x4144da
mov edx, dword [ebp - 0x1638]
mov dword [esp + 4], edx
mov eax, dword [ebp - 0x1634]
mov dword [esp], eax
call fcn.004684a6
jmp 0x414191
mov edx, dword [0xa747f4]
mov edi, dword [edx + 0x34]
jmp 0x413fca
mov edi, dword [ebp - 0x1638]
mov dword [ebp - 0x1634], edi
jmp 0x414191
mov dword [esp + 8], 1
fld dword [ebp - 0x15c0]
fstp qword [esp]
mov eax, dword [0xa747f4]
call fcn.00411a7a
jmp 0x413f2c
fstp st(0)
fstp st(0)
jmp 0x413cab
mov edx, dword [0xa747f4]
jmp 0x41408e
mov edx, dword [ebx + 8]
xor eax, eax
test edx, edx
jle 0x41452b
mov eax, dword [ebx + 0x10]
mov dword [esp + 4], eax
mov dword [esp], 1
call fcn.0040fd5e
mov edx, dword [ebx + 0x10]
xor ecx, ecx
mov eax, 1
test edx, edx
setg cl
test edx, edx
lea esi, [ecx + ecx - 1]
cmovne eax, edx
mov ecx, dword [0xa747f4]
mov dword [ecx + 0x18], eax
jmp 0x413fa0
xor ebx, ebx
cmp ecx, 3
sete bl
xor eax, eax
cmp ecx, 0xfffffffd
sete al
or eax, ebx
je 0x414cbc
mov ecx, dword [edx + 0x10]
lea esi, [ebx + ebx - 1]
test ecx, ecx
mov dword [edx + 0x14], esi
je 0x413de0
mov dword [esp + 8], 0
mov eax, dword [0xa747f4]
mov ebx, dword [eax + 0x14]
mov dword [esp + 4], ebx
mov edi, dword [0xa747f4]
mov edx, dword [edi + 0x10]
mov dword [esp], edx
call fcn.00469289
sub eax, 1
jne 0x41538a
mov edx, dword [0xa747f4]
mov dword [edx + 0x14], 1
jmp 0x413de0
cmp eax, 6
je 0x4150f5
cmp eax, 7
jne 0x413fa0
xor ecx, ecx
cmp dword [ebx + 0x10], 0
setg cl
lea esi, [ecx*4 - 2]
jmp 0x413fa0
mov eax, dword [0xa747d0]
mov dword [edx + 0x74], 0xffffffff
test eax, eax
js 0x41510c
mov ecx, dword [edx + 0x88]
test ecx, ecx
js 0x41510c
lea eax, [ecx + eax]
jmp 0x413c11
xor edx, edx
mov esi, dword [0x128b9f0]
mov ebx, dword [eax]
mov dword [ebp - 0x1618], esi
mov eax, edx
mov dword [ebp - 0x161c], esp
cld
mov edi, 0xb629f4
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov edi, ebx
mov edx, ecx
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not edx
not ecx
lea eax, [ecx + edx + 0x1d]
and eax, 0xfffffff0
call fcn.00a51dc8
lea esi, [esp + 0x43]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0xb629f4
and esi, 0xfffffff0
mov dword [esp + 4], 0xb6256d
mov dword [esp], esi
call fcn.00a5b560
mov dword [esp + 4], esi
mov eax, dword [ebp - 0x1618]
mov dword [esp], eax
call fcn.00461a4c
test eax, eax
mov ebx, eax
je 0x4146c9
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0xb6259c
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.0040f28e
mov dword [esp + 4], ebx
mov ebx, dword [ebp - 0x1618]
mov dword [esp], ebx
call fcn.00461c60
mov eax, dword [0xd830a8]
test eax, eax
mov esp, dword [ebp - 0x161c]
je 0x412729
xor edx, edx
mov esi, dword [0x128b9f0]
mov ebx, dword [eax]
mov dword [ebp - 0x1620], esi
mov eax, edx
mov dword [ebp - 0x1624], esp
cld
mov edi, 0xb629f8
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov edi, ebx
mov edx, ecx
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not edx
not ecx
lea eax, [ecx + edx + 0x1d]
and eax, 0xfffffff0
call fcn.00a51dc8
lea esi, [esp + 0x43]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0xb629f8
and esi, 0xfffffff0
mov dword [esp + 4], 0xb6256d
mov dword [esp], esi
call fcn.00a5b560
mov dword [esp + 4], esi
mov eax, dword [ebp - 0x1620]
mov dword [esp], eax
call fcn.00461a4c
test eax, eax
mov ebx, eax
je 0x414789
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0xb6259c
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.0040f28e
mov dword [esp + 4], ebx
mov ebx, dword [ebp - 0x1620]
mov dword [esp], ebx
call fcn.00461c60
mov esp, dword [ebp - 0x1624]
jmp 0x412729
mov edx, dword [0xa747f4]
mov dword [edx + 0x28c], 0
mov dword [esp + 4], 0
mov dword [esp], 0xc
call fcn.00433a80
cmp dword [0x128c314], 1
je 0x41482c
mov dword [esp], 0x4e20
call fcn.0051d463
call fcn.00434c16
mov dword [esp + 4], 0
mov dword [esp], 0xa
call fcn.00433a80
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00419a00
test eax, eax
mov ebx, eax
je 0x4147b8
mov esi, dword [eax]
mov dword [esp], 2
mov dword [esp + 4], esi
call fcn.00433a80
mov dword [esp], ebx
call fcn.00418b07
cmp dword [0x128c314], 1
jne 0x4147c1
mov dword [esp + 4], 0
mov dword [esp], 0x10
call fcn.00433a80
cmp dword [0x128c338], 2
jne 0x412796
call fcn.00468288
mov ebx, dword [0x128c354]
mov dword [esp + 4], ebx
mov dword [esp], eax
mov esi, eax
call fcn.00468592
mov ebx, dword [0xa747f4]
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x4175bd
mov dword [esp + 4], 1
mov edx, dword [0xa747f4]
mov edi, dword [edx + 0xc]
mov ecx, dword [edi + 4]
mov dword [esp], ecx
call fcn.0046846f
mov dword [esp + 4], esi
mov ebx, dword [0xa747f4]
mov eax, dword [ebx + 0xc]
mov dword [esp], eax
call fcn.00468524
mov ebx, dword [0xa747f4]
mov esi, dword [ebx + 0xc]
test esi, esi
je 0x412796
mov eax, dword [0x128b9f0]
mov dword [esp + 4], eax
mov esi, dword [0xa747f4]
mov edx, dword [esi + 0xc]
mov dword [esp], edx
call fcn.00468ae0
mov edi, dword [0xa747f4]
mov dword [ebx + 0x10], eax
mov ecx, dword [edi + 0x10]
test ecx, ecx
je 0x412796
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov ecx, dword [0xa747f4]
mov ebx, dword [ecx + 0x10]
mov dword [esp], ebx
call fcn.00468d43
sub eax, 1
je 0x41492b
mov esi, dword [0xa747f4]
mov edx, dword [esi + 0x10]
mov dword [esp], edx
call fcn.00468b7b
mov edi, dword [0xa747f4]
mov dword [edi + 0x10], 0
mov dword [esp + 4], 1
mov ebx, dword [0xa747f4]
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.00469394
mov dword [0xd830cc], eax
jmp 0x412796
fld qword [0xd83108]
fadd qword [0xd83110]
fadd qword [0xd83200]
fstp qword [ebp - 0x1718]
call fcn.0051d44c
fld qword [0xb63480]
sub eax, dword [0xd83210]
cvtsi2ss xmm1, eax
mov dword [0xd83210], eax
movss dword [ebp - 0x1744], xmm1
fld dword [ebp - 0x1744]
fmulp st(1)
fst qword [esp + 0x2c]
fld st(0)
fld qword [ebp - 0x1718]
fsubp st(1)
fst qword [esp + 0x24]
fld qword [0xd83200]
fstp qword [esp + 0x1c]
fld qword [0xd83108]
fstp qword [esp + 0x14]
fld qword [0xd83110]
mov dword [esp + 8], 0xb629fc
mov dword [esp + 4], 4
fstp qword [esp + 0xc]
mov dword [esp], 1
fstp qword [ebp - 0x1728]
fstp qword [ebp - 0x1738]
call fcn.0040f28e
fld qword [ebp - 0x1738]
fldz
fld qword [ebp - 0x1728]
fxch st(2)
fcomi st(1)
fstp st(1)
ja 0x41518a
fstp st(1)
mov eax, dword [0xd831f0]
test eax, eax
je 0x414c76
mov ecx, dword [0xd830b0]
test ecx, ecx
je 0x414c76
fld dword [0xb63460]
fldz
fxch st(2)
fcomi st(1)
jbe 0x414a3c
fstp st(2)
fld1
push eax
fdiv st(2)
fimul dword [esp]
fxch st(2)
add esp, 4
fxch st(2)
fstp qword [esp + 0x24]
fldz
fxch st(2)
mov edi, dword [0xd831f0]
mov dword [esp + 0x20], edi
mov esi, dword [0xd831e0]
lea eax, [esi + esi*2]
mov ebx, eax
shl ebx, 5
add eax, ebx
add eax, esi
cdq
idiv dword [0xd831f0]
fcomi st(1)
fstp st(1)
mov dword [esp + 0x1c], eax
mov edx, dword [0xd831e0]
mov dword [esp + 0x18], edx
jbe 0x415183
fstp st(1)
mov ecx, dword [0xd831f0]
fld1
sub ecx, dword [0xd831e0]
fdivrp st(1)
push ecx
fimul dword [esp]
add esp, 4
fstp qword [esp + 0x10]
mov eax, dword [0xd831f0]
sub eax, dword [0xd831e0]
mov dword [esp + 8], 0xb62a3c
mov dword [esp + 4], 4
mov dword [esp + 0xc], eax
mov dword [esp], 1
call fcn.0040f28e
jmp 0x413d07
mov esi, dword [0xa747f4]
mov edi, dword [esi + 0x30]
jmp 0x413fca
mov dword [esp + 0xc], 0xd8ff44
mov dword [esp + 8], 1
mov ebx, dword [0xd83140]
mov dword [esp + 4], ebx
mov esi, dword [0xd83090]
mov dword [esp], esi
call fcn.0047904c
test eax, eax
mov dword [0xd8ff40], eax
jne 0x41297a
mov edi, dword [0xd83090]
mov dword [esp], edi
call fcn.0040f214
mov dword [esp + 8], 0xb62033
mov dword [esp + 4], 1
mov dword [esp + 0xc], eax
mov dword [esp], 1
call fcn.0040f28e
jmp 0x412970
lea edi, [ebp - 0x398]
mov dword [esp + 8], edx
mov dword [esp + 4], 0xb62a86
mov dword [esp], edi
call fcn.00a5b560
mov dword [esp + 4], 0x2f
mov dword [esp], edi
call fcn.00a5b570
mov dword [esp + 4], 0x5c
mov dword [esp], edi
mov esi, eax
call fcn.00a5b570
mov dword [esp + 4], 0x3a
test esi, esi
mov ebx, eax
mov dword [esp], edi
sete dl
cmp eax, esi
seta al
or eax, edx
test al, 1
cmove ebx, esi
call fcn.00a5b570
mov esi, edi
test ebx, ebx
sete cl
cmp eax, ebx
seta dl
or edx, ecx
and dl, 1
cmove eax, ebx
mov ebx, dword [0x128b9d0]
test eax, eax
lea ecx, [eax + 1]
cmovne esi, ecx
test ebx, ebx
je 0x414c3c
lea ebx, [ebp - 0x4a8]
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.00a5b628
mov eax, esi
lea ecx, [ebp - 0x4d8]
sub eax, edi
mov dword [eax + ebp - 0x4a8], 0x616c706d
mov dword [eax + ebp - 0x4a4], 0x2e726579
mov dword [eax + ebp - 0x4a0], 0x666e6f63
mov byte [eax + ebp - 0x49c], 0
mov dword [esp + 4], ecx
mov dword [esp], ebx
call fcn.00a52538
test eax, eax
je 0x41540d
lea edx, [ebp - 0x508]
mov dword [esp], edi
mov dword [esp + 4], edx
call fcn.00a52538
test eax, eax
je 0x4153d6
mov dword [esp], esi
call fcn.00460a4c
test eax, eax
mov ebx, eax
je 0x41270f
lea esi, [ebp - 0x508]
mov dword [esp], eax
mov dword [esp + 4], esi
call fcn.00a52538
test eax, eax
je 0x4152bb
mov dword [esp], ebx
call fcn.00a5b590
jmp 0x41270f
fstp st(0)
jmp 0x413d07
mov dword [esp + 4], esi
mov edx, dword [ebp - 0x1638]
mov dword [esp], edx
call fcn.00468592
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0xb62a8e
mov dword [esp + 4], 6
mov dword [esp], 1
call fcn.0040f28e
mov dword [esp], esi
call fcn.00a5b590
jmp 0x4144a5
cmp ecx, 4
je 0x41797b
xor ebx, ebx
cmp ecx, 0xfffffffe
setne bl
lea esi, [ebx + ebx - 1]
mov dword [edx + 0x14], esi
jmp 0x413de0
mov ebx, dword [0xa747f4]
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.00468b7b
mov edx, dword [0xa747f4]
mov dword [edx + 0x10], 0
jmp 0x413dd9
cmp dword [0xa747d8], 0xffffffff
mov dword [0xd83088], 0xb62aaa
je 0x417956
mov ecx, dword [0xd830d0]
test ecx, ecx
je 0x414d3c
mov edx, dword [0xa747d0]
mov eax, 0xffffffff
cmp edx, 0xfffffffe
cmovne eax, edx
mov dword [0xa747d0], eax
add eax, 1
je 0x417937
mov ebx, dword [0xa747f4]
mov eax, dword [ebx + 0x70]
mov esi, dword [ebx + 0x20]
mov dword [ebx + 0x88], eax
mov dword [esp], esi
call fcn.00529e51
add dword [ebx + 0x70], eax
jmp 0x412ab5
cmp dword [0xa747d8], 0xffffffff
mov dword [0xd83088], 0xb62aba
je 0x417913
mov ecx, dword [0xd830d0]
test ecx, ecx
je 0x414d9f
mov edx, dword [0xa747d0]
mov esi, 0xffffffff
cmp edx, 0xfffffffe
cmovne esi, edx
mov dword [0xa747d0], esi
add esi, 1
je 0x4178c7
mov esi, dword [0xa747f4]
mov ecx, dword [esi + 0x70]
mov eax, dword [esi + 0x20]
mov dword [esi + 0x88], ecx
mov dword [esp], eax
call fcn.00539980
add dword [esi + 0x70], eax
mov esi, dword [0xa747f4]
jmp 0x412aa8
cmp dword [edx + 0x18], 2
mov dword [0xd83088], 0xb5c2f8
je 0x41513d
mov edi, dword [esi + 0x20]
mov dword [esp], edi
call fcn.0051d9a0
mov esi, dword [0xa747f4]
mov ecx, dword [esi + 0x20]
mov edx, dword [ecx + 0x30]
mov eax, dword [ecx + 0x2c]
cmp eax, edx
jle 0x41512c
sub eax, dword [ecx + 0x28]
mov ebx, edx
sub ebx, eax
js 0x41512c
mov dword [ecx + 0x24], ebx
mov dword [esp + 4], 0xb62713
mov eax, dword [0xa747a8]
mov dword [esp], eax
call fcn.00a5b588
test eax, eax
mov dword [ebp - 0x162c], eax
je 0x417892
mov eax, dword [0xa804cc]
cmp eax, 1
jle 0x414e67
sub eax, 1
lea esi, [ebp - 0x15b4]
mov dword [ebp - 0x15b4], eax
mov dword [esp + 8], esi
mov dword [esp + 4], 2
mov ecx, dword [0xa747f4]
mov edx, dword [ecx + 0x20]
mov dword [esp], edx
call fcn.0051d9e0
mov ebx, dword [0xa747f4]
mov eax, dword [ebx + 0x20]
mov edi, dword [eax + 0x38]
test edi, edi
jne 0x414fe4
mov edx, dword [0x128ba00]
test edx, edx
jne 0x414fe4
mov esi, eax
lea eax, [ebp - 0x1508]
mov edi, 0x1000
mov dword [ebp - 0x1630], eax
mov eax, dword [esi + 0x24]
jmp 0x414ed8
cmp eax, edx
ja 0x414eff
cmp ebx, edi
lea edx, [eax + esi + 0x54]
cmovg ebx, edi
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
sub edi, ebx
mov ecx, dword [ebp - 0x1630]
mov dword [esp], ecx
call fcn.00a5b5c0
mov eax, dword [esi + 0x24]
add dword [ebp - 0x1630], ebx
add eax, ebx
test edi, edi
mov dword [esi + 0x24], eax
jle 0x414f20
mov edx, dword [esi + 0x28]
mov ebx, edx
sub ebx, eax
jne 0x414ea1
mov dword [esp], esi
call fcn.005d37bb
test eax, eax
je 0x4173e4
mov edx, dword [esi + 0x28]
mov eax, dword [esi + 0x24]
mov ebx, edx
sub ebx, eax
cmp eax, edx
jbe 0x414ea5
mov dword [esp + 8], 0xb62ac8
mov dword [esp + 4], 2
mov dword [esp], 7
call fcn.0040f28e
mov eax, dword [esi + 0x24]
jmp 0x414ea5
mov eax, 0x1000
mov edi, dword [ebp - 0x162c]
lea esi, [ebp - 0x1508]
mov dword [esp + 8], 1
mov dword [esp + 0xc], edi
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00a5b558
sub eax, 1
je 0x414f88
mov ebx, dword [0xa747a8]
mov dword [esp + 8], 0xb62af5
mov dword [esp + 4], 0
mov dword [esp + 0xc], ebx
mov dword [esp], 0x16
call fcn.0040f28e
mov dword [esp + 4], 1
mov dword [esp], 3
call fcn.0040fd5e
mov eax, dword [0xd8ffe0]
test eax, eax
jle 0x414fc7
lea esi, [ebp - 0x15b8]
mov dword [ebp - 0x15b8], 0xffffffff
mov dword [esp + 4], 3
mov dword [esp + 8], esi
mov edx, dword [0xa747f4]
mov ecx, dword [edx + 0x20]
mov dword [esp], ecx
call fcn.0051d9e0
sub eax, 1
je 0x41755a
mov eax, dword [0xa747f4]
mov esi, dword [eax + 0x20]
mov ebx, dword [esi + 0x38]
test ebx, ebx
jne 0x414fe4
mov ecx, dword [0x128ba00]
test ecx, ecx
je 0x414e8b
mov edx, dword [ebp - 0x162c]
mov dword [esp], edx
call fcn.00a5b578
test eax, eax
je 0x415031
mov esi, dword [0xa747a8]
mov dword [esp + 8], 0xb62af5
mov dword [esp + 4], 0
mov dword [esp + 0xc], esi
mov dword [esp], 0x16
call fcn.0040f28e
mov dword [esp + 4], 1
mov dword [esp], 3
call fcn.0040fd5e
mov dword [esp + 8], 0xb62716
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.0040f28e
mov dword [esp + 4], 0
mov dword [esp], 2
call fcn.0040fd5e
mov esi, dword [0xa747f4]
jmp 0x412a9b
mov dword [esp + 4], eax
mov dword [esp], 9
call fcn.00433a80
mov esi, dword [0xa747f4]
cmp dword [esi + 0x28c], 0x20000
jne 0x412a82
mov edx, dword [0xd830cc]
mov dword [0xd83088], 0xb62b0e
mov dword [esp], edx
call fcn.0040f214
mov dword [esp + 8], 0xb62b1e
mov dword [esp + 4], 6
mov dword [esp + 0xc], eax
mov dword [esp], 1
call fcn.0040f28e
mov dword [esp + 4], 0
mov eax, dword [0xa747f4]
mov edi, dword [eax + 0x20]
mov dword [esp], edi
call fcn.0046c03a
mov esi, dword [0xa747f4]
call fcn.0040ffd4
mov dword [esi + 0x14], eax
jmp 0x413cdd
mov edx, dword [ebx + 0x10]
mov esi, 3
mov eax, 0xfffffffd
test edx, edx
cmovle esi, eax
jmp 0x413fa0
mov ecx, dword [edx + 0x80]
test ecx, ecx
js 0x415335
mov dword [edx + 0x74], ecx
jmp 0x413c14
call fcn.0051d3e1
jmp 0x412765
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.005d3850
jmp 0x414e0d
mov ebx, dword [edx + 0x14]
test ebx, ebx
jns 0x414ddb
mov dword [esp + 8], 0xb62b38
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.0040f28e
mov dword [esp + 4], 1
mov dword [esp], 3
call fcn.0040fd5e
mov esi, dword [0xa747f4]
jmp 0x414ddb
fstp st(0)
jmp 0x414a9a
fld dword [0xb6348c]
fld1
fdiv st(2)
fxch st(3)
fmul st(1)
fxch st(1)
fst qword [esp + 0x2c]
fxch st(1)
fmul st(3)
fstp qword [esp + 0x24]
fld qword [0xd83200]
fmul st(1)
fmul st(3)
fstp qword [esp + 0x1c]
fld qword [0xd83108]
fmul st(1)
fmul st(3)
fstp qword [esp + 0x14]
fmul qword [0xd83110]
mov dword [esp + 8], 0xb62b74
mov dword [esp + 4], 4
fmulp st(2)
fxch st(1)
mov dword [esp], 1
fstp qword [esp + 0xc]
fstp qword [ebp - 0x1738]
call fcn.0040f28e
fld qword [ebp - 0x1738]
jmp 0x414a04
mov dword [esp], eax
call fcn.00a52528
mov dword [ebp - 0x1628], eax
mov dword [esp + 4], 0x2e
mov dword [esp], eax
call fcn.00a5b570
mov dword [esp + 4], 0x2f
mov ecx, dword [ebp - 0x1628]
mov ebx, eax
mov dword [esp], ecx
call fcn.00a5b570
test eax, eax
je 0x417877
test ebx, ebx
je 0x415252
test eax, eax
sete cl
cmp ebx, eax
seta al
or eax, ecx
test al, 1
je 0x415252
mov byte [ebx], 0
mov dword [esp + 0xc], 0xd8ff44
mov dword [esp + 8], 0
mov ebx, dword [0xd83140]
mov dword [esp + 4], ebx
mov esi, dword [ebp - 0x1628]
mov dword [esp], esi
call fcn.0047904c
test eax, eax
mov dword [0xd8ff40], eax
je 0x415826
mov esi, dword [ebp - 0x1628]
mov dword [esp], esi
call fcn.00a5b590
jmp 0x412970
mov dword [esp + 4], 0
mov dword [esp], 2
call fcn.0040fd5e
mov eax, 1
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0xb62bb8
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.0040f28e
mov dword [esp + 4], ebx
mov ecx, dword [ebp - 0x1614]
mov dword [esp], ecx
call fcn.004678c0
jmp 0x414c69
call fcn.00432f1a
mov edx, dword [0xa747f4]
mov dword [esp], 0x12
mov dword [esp + 4], edx
call fcn.00433a80
or dword [0xd83220], 4
xor eax, eax
cmp dword [ebp - 0x15fc], 0
mov dword [esp], 1
sete al
mov dword [esp + 4], eax
call fcn.00433a80
jmp 0x412513
test eax, eax
jns 0x413c14
mov ecx, dword [edx + 0x88]
test ecx, ecx
js 0x413c14
mov ecx, dword [0xd830d0]
test ecx, ecx
je 0x415377
mov dword [esp + 4], ecx
mov esi, dword [0xa747f4]
mov eax, dword [esi + 0x24]
mov dword [esp], eax
call fcn.004d27fd
mov edx, dword [0xa747f4]
mov dword [0xa747d0], eax
test eax, eax
js 0x4179ac
add eax, dword [edx + 0x88]
jmp 0x413c11
mov ecx, dword [0xa747f4]
mov eax, dword [ecx + 0x10]
mov dword [esp], eax
call fcn.00468b7b
mov edx, dword [0xa747f4]
mov dword [edx + 0x10], 0
jmp 0x413de0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x5173e4
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00418604
jmp 0x41241d
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0xb62bb8
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.0040f28e
mov dword [esp + 4], edi
mov edi, dword [ebp - 0x1614]
mov dword [esp], edi
call fcn.004678c0
jmp 0x41270f
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0xb62bb8
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.0040f28e
mov dword [esp + 4], ebx
mov ebx, dword [ebp - 0x1614]
mov dword [esp], ebx
call fcn.004678c0
jmp 0x414c22
xor ecx, ecx
cmp dword [0xd83070], 1
setg cl
mov dword [esp + 8], ecx
mov esi, dword [0xa747b8]
mov dword [esp + 4], esi
mov ebx, dword [0xd830a0]
mov dword [esp], ebx
call fcn.005275f4
jmp 0x412377
mov dword [esp + 8], 0xb62bcd
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.0040f28e
mov ebx, 1
jmp 0x4154bd
mov edi, dword [ebp + 0xc]
mov edx, dword [edi + ebx*4]
mov dword [esp + 8], 0xb62bda
mov dword [esp + 4], 4
mov dword [esp + 0xc], edx
mov dword [esp], 1
add ebx, 1
call fcn.0040f28e
cmp ebx, dword [ebp + 8]
jl 0x415494
mov dword [esp + 8], 0xb624a3
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.0040f28e
jmp 0x4122f6
mov dword [esp + 8], 0xb5fae0
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.0040f28e
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.0040fd5e
jmp 0x4122be
call fcn.0040aa60
jmp 0x41223a
mov dword [esp], 0xb62be0
call fcn.0045e587
test eax, eax
jne 0x411fd6
mov dword [esp], 0
call fcn.0045e587
test eax, eax
jne 0x41555b
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.0040fd5e
mov dword [esp + 8], 0xb62c04
mov dword [esp + 4], 6
mov dword [esp], 1
call fcn.0040f28e
jmp 0x411fd6
mov dword [esp], eax
lea ebx, [ebp - 0x268]
call fcn.00468b7b
mov edx, dword [0xa747f4]
mov dword [edx + 0x10], 0
mov dword [esp + 4], 0x103
mov dword [esp], ebx
call fcn.00a52530
test eax, eax
je 0x4155d6
mov edi, ebx
cld
mov ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
mov word [ebx + ecx - 1], 0x2f
mov dword [esp + 4], ebx
mov edi, dword [0xa747f4]
mov ecx, dword [edi + 0xc]
mov dword [esp], ecx
call fcn.0046a42c
mov ecx, dword [0xd830f4]
mov dword [esp + 8], ecx
mov edx, dword [0x128b9f0]
mov dword [esp + 4], edx
mov esi, dword [0xa747f4]
mov ebx, dword [esi + 0xc]
mov dword [esp], ebx
call fcn.004333be
jmp 0x411f4f
mov dword [esp], eax
call fcn.004693f3
mov dword [ebx + 0xc], eax
mov ebx, dword [0xa747f4]
mov edx, dword [ebx + 0xc]
test edx, edx
je 0x411edd
mov edx, dword [0x128b9f0]
mov dword [esp + 4], edx
mov eax, dword [0xa747f4]
mov ecx, dword [eax + 0xc]
mov dword [esp], ecx
call fcn.00468ae0
mov edi, dword [0xa747f4]
mov dword [ebx + 0x10], eax
mov esi, dword [edi + 0x10]
test esi, esi
je 0x411edd
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov esi, dword [0xa747f4]
mov ebx, dword [esi + 0x10]
mov dword [esp], ebx
call fcn.00468d43
sub eax, 1
je 0x41568d
mov eax, dword [0xa747f4]
mov ecx, dword [eax + 0x10]
mov dword [esp], ecx
call fcn.00468b7b
mov edi, dword [0xa747f4]
mov dword [edi + 0x10], 0
mov dword [esp + 4], 1
mov ebx, dword [0xa747f4]
mov edx, dword [ebx + 0x10]
mov dword [esp], edx
call fcn.00469394
mov dword [0xd830cc], eax
jmp 0x411edd
call fcn.0043b81a
jmp 0x411e9d
mov dword [esp + 4], esi
mov edx, dword [ebp - 0x1600]
mov dword [esp], edx
call fcn.004678c0
test eax, eax
jns 0x411e87
mov dword [esp + 4], 1
mov dword [esp], 0
call fcn.0040fd5e
jmp 0x411e87
mov dword [esp + 8], 0xb62c29
mov dword [esp + 4], 1
mov dword [esp], 1
call fcn.0040f28e
jmp 0x411e8f
mov dword [esp + 8], 0xb62c45
mov dword [esp + 4], 2
jmp 0x4156fd
mov dword [esp + 4], 0xb62c64
mov dword [esp], edx
call fcn.004678c0
test eax, eax
jns 0x411dcc
mov dword [esp + 4], 1
mov dword [esp], 0
call fcn.0040fd5e
jmp 0x411dcc
mov dword [esp + 0xc], 0x40
mov dword [esp + 8], 0xb62c88
mov dword [esp + 4], 0xb62c8d
mov dword [esp], 0
call fcn.00a5b8ec
sub esp, 0x10
jmp 0x411d25
mov dword [esp + 0xc], 0x40
mov dword [esp + 8], 0xb62c88
mov dword [esp + 4], 0xb62ca6
mov dword [esp], 0
call fcn.00a5b8ec
sub esp, 0x10
jmp 0x411d18
lea ecx, [ebp - 0x15b0]
lea esi, [ebp - 0x158]
mov dword [ebp - 0x15b0], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 8], esi
mov dword [esp + 4], 0x104
mov edi, dword [0xd830cc]
mov dword [esp], edi
call fcn.00993898
sub esp, 0x10
test eax, eax
je 0x411f11
mov dword [ebp - 0x48], 0
cld
xor eax, eax
mov ecx, 0xffffffff
mov edi, esi
repne scasb al, byte es:[edi]
lea eax, [ebp - 0x48]
mov dword [ebp - 0x40], esi
not ecx
lea edx, [ecx + ecx - 2]
mov dword [ebp - 0x44], edx
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x4a
mov dword [esp], ebx
call fcn.00a5b8dc
sub esp, 0x10
jmp 0x411f11
mov dword [esp], 0xb629aa
call fcn.00460a4c
test eax, eax
mov ebx, eax
je 0x415287
mov dword [esp + 4], 0x2f
mov edi, dword [ebp - 0x1628]
mov dword [esp], edi
call fcn.00a5b570
test eax, eax
je 0x417983
lea esi, [eax + 1]
xor edx, edx
cld
mov edi, ebx
mov eax, edx
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov edi, esi
not ecx
mov dword [ebp - 0x1748], ecx
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov edi, dword [ebp - 0x1748]
mov dword [esp], ebx
not ecx
lea ecx, [ecx + edi - 1]
mov dword [esp + 4], ecx
call fcn.00a5b5a8
mov dword [esp + 4], esi
mov dword [esp], eax
mov ebx, eax
call fcn.00a5b600
mov dword [esp + 0xc], 0xd8ff44
mov dword [esp + 8], 0
mov eax, dword [0xd83140]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.0047904c
mov dword [0xd8ff40], eax
mov dword [esp], ebx
call fcn.00a5b590
jmp 0x415287
mov eax, dword [eax]
cmp eax, 0x1b
je 0x416f79
jg 0x4169ca
cmp eax, 2
je 0x41702b
cmp eax, 0x1a
je 0x41753f
mov dword [esp], ebx
call fcn.00418b07
test esi, esi
je 0x412796
mov ebx, dword [0xa747f4]
mov edx, dword [ebx + 0xc]
test edx, edx
je 0x4169bd
mov dword [esp + 4], 1
mov ecx, dword [0xa747f4]
mov eax, dword [ecx + 0xc]
mov ebx, dword [eax + 4]
mov dword [esp], ebx
call fcn.0046846f
mov edx, dword [0xa747f4]
mov edi, dword [edx + 0xc]
test edi, edi
je 0x412796
mov dword [esp + 4], esi
mov ebx, dword [0xa747f4]
mov esi, dword [ebx + 0xc]
mov dword [esp], esi
call fcn.00468524
mov edx, dword [0x128b9f0]
mov edi, dword [0xa747f4]
mov dword [esp + 4], edx
mov ecx, dword [0xa747f4]
mov eax, dword [ecx + 0xc]
mov dword [esp], eax
call fcn.00468ae0
mov ebx, dword [0xa747f4]
mov dword [edi + 0x10], eax
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x412796
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [0xa747f4]
mov edi, dword [eax + 0x10]
mov dword [esp], edi
call fcn.00468d43
sub eax, 1
je 0x41492b
mov esi, dword [0xa747f4]
mov edx, dword [esi + 0x10]
mov dword [esp], edx
call fcn.00468b7b
mov ecx, dword [0xa747f4]
mov dword [ecx + 0x10], 0
jmp 0x412796
call fcn.00411284
mov edx, dword [0xa747f4]
mov eax, dword [edx + 0x28]
test eax, eax
je 0x41334c
mov eax, dword [eax + 8]
test eax, eax
je 0x41334c
mov dword [esp + 4], 0x2f
mov ebx, dword [ebp - 0x15bc]
mov dword [esp], ebx
call fcn.00a5b570
mov ebx, dword [ebp - 0x15bc]
lea ecx, [eax + 1]
test eax, eax
cmovne ebx, ecx
jmp 0x414206
call fcn.00468288
mov dword [ebx + 0xc], eax
jmp 0x41650d
cmp eax, 0x44
jl 0x4164cf
cmp eax, 0x45
jle 0x4169e1
cmp eax, 0x5b
jne 0x4164cf
mov dword [esp + 4], ebx
mov edi, dword [0xa747f4]
mov dword [esp], edi
call fcn.0040aa73
jmp 0x4164cf
mov esi, dword [ebx + 0x10]
mov dword [esp], esi
call fcn.0046c0c9
mov esi, eax
jmp 0x4164cf
mov dword [esp + 8], 0xb62f36
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.0040f28e
mov dword [esp + 4], 1
mov dword [esp], 3
call fcn.0040fd5e
jmp 0x412d95
mov ecx, dword [ebx + 8]
xor eax, eax
test ecx, ecx
jle 0x417037
mov eax, dword [ebx + 0x10]
mov dword [esp + 4], eax
mov dword [esp], 1
call fcn.0040fd5e
jmp 0x4164cf
mov dword [esp + 4], 0x2f
mov esi, dword [ebp - 0x15bc]
mov dword [esp], esi
call fcn.00a5b570
test eax, eax
jne 0x414297
mov eax, dword [ebp - 0x15bc]
mov edx, eax
jmp 0x4142a0
mov edx, dword [0xa747f4]
jmp 0x413e6e
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00419a00
mov edi, 1
test eax, eax
mov ebx, eax
je 0x41731f
mov eax, dword [eax]
cmp eax, 5
je 0x4173be
jg 0x41737f
cmp eax, 2
je 0x4173a2
mov dword [esp], ebx
call fcn.00418b07
mov dword [esi + 0x14], edi
jmp 0x413cdd
cmp eax, 6
je 0x4175ca
cmp eax, 7
jne 0x417317
xor ecx, ecx
cmp dword [ebx + 0x10], 0
setg cl
lea edi, [ecx*4 - 2]
jmp 0x417317
mov edi, dword [ebx + 8]
xor eax, eax
test edi, edi
jle 0x4173ae
mov eax, dword [ebx + 0x10]
mov dword [esp + 4], eax
mov dword [esp], 1
call fcn.0040fd5e
mov edx, dword [ebx + 0x10]
xor ecx, ecx
mov eax, 1
test edx, edx
setg cl
test edx, edx
lea edi, [ecx + ecx - 1]
cmovne eax, edx
mov ecx, dword [0xa747f4]
mov dword [ecx + 0x18], eax
jmp 0x417317
mov eax, 0x1000
sub eax, edi
test eax, eax
jg 0x414f25
jmp 0x414f88
mov dword [esp + 4], 0x2f
mov dword [esp], ebx
call fcn.00a5b570
lea edx, [eax + 1]
test eax, eax
cmove edx, ebx
jmp 0x4142e4
mov dword [esp + 4], 0x2f
mov dword [esp], ebx
call fcn.00a5b570
lea edx, [eax + 1]
test eax, eax
cmove edx, ebx
jmp 0x4143b8
mov dword [esp + 4], 0x2f
mov dword [esp], ebx
call fcn.00a5b570
lea edx, [eax + 1]
test eax, eax
cmove edx, ebx
jmp 0x41434d
call fcn.00468288
mov esi, eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00468592
jmp 0x4164cf
mov edi, dword [ebp - 0x15b8]
add edi, 1
cmp edi, dword [0xd8ffe0]
jle 0x414fc7
jmp 0x414fe4
call fcn.00468288
mov dword [ebx + 0xc], eax
jmp 0x414893
mov edx, dword [ebx + 0x10]
mov edi, 3
mov eax, 0xfffffffd
test edx, edx
cmovle edi, eax
jmp 0x417317
mov dword [esp + 4], 0x5c
mov edx, dword [ebp - 0x1628]
mov dword [esp], edx
call fcn.00a5b570
jmp 0x41523b
mov dword [esp + 8], 0xb62f36
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.0040f28e
mov dword [esp + 4], 1
mov dword [esp], 3
call fcn.0040fd5e
jmp 0x414e30
mov dword [esp + 4], ecx
mov ebx, dword [0xa747f4]
mov edi, dword [ebx + 0x20]
mov dword [esp], edi
call fcn.00539a0f
mov dword [0xa747d0], eax
jmp 0x414d9f
mov ecx, dword [0xd830d4]
mov dword [esp + 4], ecx
mov eax, dword [0xa747f4]
mov ebx, dword [eax + 0x20]
mov dword [esp], ebx
call fcn.0053987c
mov dword [0xa747d8], eax
jmp 0x414d75
mov dword [esp + 4], ecx
mov edi, dword [0xa747f4]
mov ecx, dword [edi + 0x20]
mov dword [esp], ecx
call fcn.00529d0b
mov dword [0xa747d0], eax
jmp 0x414d3c
mov esi, dword [0xd830d4]
mov dword [esp + 4], esi
mov ebx, dword [0xa747f4]
mov edi, dword [ebx + 0x20]
mov dword [esp], edi
call fcn.00529b60
mov dword [0xa747d8], eax
jmp 0x414d13
mov eax, dword [edx + 0x10]
jmp 0x415393
mov dword [esp + 4], 0x5c
mov edx, dword [ebp - 0x1628]
mov dword [esp], edx
call fcn.00a5b570
mov esi, dword [ebp - 0x1628]
test eax, eax
jne 0x41585b
jmp 0x41585e
mov edi, dword [edx + 0x24]
mov dword [esp], edi
call fcn.004d28da
mov edx, dword [0xa747f4]
test eax, eax
mov dword [0xa747d0], eax
jns 0x41537f
jmp 0x413c14