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

Disassembly:
push 0xffffffffffffffff
push 0x72d498
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xe8
push ebx
push ebp
push esi
push edi
mov edi, ecx
lea ecx, [esp + 0xcc]
call fcn.00405ed0
mov eax, dword [0x7a39fc]
mov edx, dword [esp + 0x108]
xor ebp, ebp
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov ecx, dword [eax + 4]
push edx
mov dword [esp + 0x38], ebp
mov dword [esp + 0x54], ebp
mov dword [esp + 0x94], 0x3f800000
mov byte [esp + 0x1f], 0
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], ebp
mov dword [esp + 0x68], ebp
call fcn.005ed5b0
mov esi, eax
cmp esi, ebp
je 0x66568a
mov eax, dword [esi + 0x2f8]
mov dword [esp + 0x68], eax
jmp 0x66568e
mov dword [esp + 0x68], ebp
mov ebx, dword [esp + 0x10c]
mov eax, ebx
and eax, 1
mov dword [esp + 0x94], eax
je 0x6656db
push 0x20
push 0x3f800000
mov ecx, edi
call fcn.004d67b0
fstp dword [esp + 0x44]
push 0x20
push 0x3f800000
mov ecx, edi
call fcn.004d67b0
fstp dword [esp + 0x48]
push 0x20
push 0x3f800000
mov ecx, edi
call fcn.004d67b0
fstp dword [esp + 0x4c]
jmp 0x6656f6
test esi, esi
je 0x6656f6
lea ecx, [esi + 0x24]
mov edx, dword [ecx]
mov dword [esp + 0x44], edx
mov eax, dword [ecx + 4]
mov dword [esp + 0x48], eax
mov ecx, dword [ecx + 8]
mov dword [esp + 0x4c], ecx
mov eax, ebx
and eax, 2
mov dword [esp + 0x30], eax
je 0x665798
push 0x20
push 0x3f800000
mov ecx, edi
call fcn.004d67b0
fstp dword [esp + 0x6c]
push 0x20
push 0x3f800000
mov ecx, edi
call fcn.004d67b0
fstp dword [esp + 0x70]
push 0x20
push 0x3f800000
mov ecx, edi
call fcn.004d67b0
fstp dword [esp + 0x74]
push 8
mov ecx, edi
call fcn.004d6720
test al, al
je 0x665758
mov ecx, edi
call fcn.00692630
mov dword [esp + 0x9c], eax
jmp 0x665765
mov edx, dword [0x746644]
mov dword [esp + 0x9c], edx
fld dword [esp + 0x74]
fmul dword [esp + 0x74]
fld dword [esp + 0x70]
fmul dword [esp + 0x70]
faddp st(1)
fld dword [esp + 0x6c]
fmul dword [esp + 0x6c]
faddp st(1)
fcomp dword [0x747504]
fnstsw ax
test ah, 5
jp 0x6657b3
mov dword [esp + 0x6c], 0x3f800000
jmp 0x6657b3
test esi, esi
je 0x6657b3
lea eax, [esi + 0x30]
mov ecx, dword [eax]
mov dword [esp + 0x6c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x70], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x74], eax
test bl, 0x20
je 0x665994
lea ecx, [esp + 0x54]
call fcn.005b3190
lea ecx, [esp + 0x1c]
mov dword [esp + 0x100], 0
call fcn.005b3190
push 0x10
mov ecx, edi
mov byte [esp + 0x104], 1
call fcn.004d6750
push 1
mov ecx, edi
mov ebx, eax
call fcn.004d6230
test eax, eax
jne 0x665846
test esi, esi
je 0x665808
mov edx, dword [esi]
push ebx
mov ecx, esi
call dword [edx + 0xf4]
cmp bx, 0xfffe
jb 0x6658ac
push 0x10
lea eax, [esp + 0xa8]
push eax
mov ecx, edi
call fcn.004d6180
push eax
lea ecx, [esp + 0xe0]
push ecx
lea ecx, [esp + 0xd4]
call fcn.00406120
push 1
mov ecx, edi
call fcn.004d6230
test eax, eax
je 0x665872
mov byte [esp + 0x100], 0
lea ecx, [esp + 0x1c]
call fcn.005e5c20
lea ecx, [esp + 0x54]
mov dword [esp + 0x100], 0xffffffff
call fcn.005e5c20
xor eax, eax
jmp 0x667c7e
test esi, esi
je 0x665968
xor edx, edx
cmp bx, 0xfffe
sete dl
lea eax, [esp + 0xcc]
push edx
push eax
call fcn.00647c10
mov edx, dword [esi]
add esp, 8
lea eax, [esp + 0xcc]
push eax
mov ecx, esi
call dword [edx + 0xec]
jmp 0x665968
push 0x745e4c
lea ecx, [esp + 0x58]
call fcn.005e5140
push str.BaseResRef
lea ecx, [esp + 0x8c]
call fcn.005e5a90
mov ecx, dword [0x7a3a28]
mov eax, dword [ecx + 0xb8]
mov eax, dword [eax + 0x38]
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x8c]
movzx edx, bx
push ecx
push edx
mov ecx, eax
mov byte [esp + 0x10c], 2
call fcn.00413270
lea ecx, [esp + 0x88]
mov byte [esp + 0x100], 1
call fcn.005e5c20
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x8c]
push ecx
lea ecx, [esp + 0x5c]
call fcn.005e5d10
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x104], 3
call fcn.005e5c50
lea ecx, [esp + 0x88]
mov byte [esp + 0x100], 1
call fcn.005e5c20
lea ecx, [esp + 0x1c]
call fcn.005e5670
push eax
lea edx, [esp + 0xa8]
push edx
lea ecx, [esp + 0xd4]
call fcn.00406290
lea ecx, [esp + 0x1c]
mov byte [esp + 0x100], 0
call fcn.005e5c20
lea ecx, [esp + 0x54]
mov dword [esp + 0x100], 0xffffffff
call fcn.005e5c20
mov ebx, dword [esp + 0x10c]
test esi, esi
je 0x6659a5
mov ecx, esi
call fcn.0063c060
mov ebp, eax
mov dword [esp + 0x34], ebp
and ebx, 4
mov dword [esp + 0x40], ebx
je 0x6659dc
push 0x20
push 0x3f800000
mov ecx, edi
call fcn.004d67b0
fstp dword [esp + 0x28]
push 1
mov ecx, edi
call fcn.004d6230
test eax, eax
jne 0x667cb0
test esi, esi
je 0x6659dc
mov eax, dword [esp + 0x28]
mov dword [esi + 0x4c], eax
mov eax, dword [esp + 0x40]
test eax, eax
mov dword [esp + 0x78], 1
je 0x665c3d
push 0x10
mov ecx, edi
call fcn.004d6750
mov ebp, eax
cmp bp, 0x2719
mov dword [esp + 0x34], ebp
je 0x665a11
cmp bp, 0x277d
jne 0x665ae7
push 2
mov ecx, edi
call fcn.004d6720
movzx ebp, al
xor ebx, ebx
test ebp, ebp
mov byte [esp + 0x1b], al
jle 0x665ad2
jmp 0x665a30
mov ecx, edi
call fcn.00692630
push 0x10
mov ecx, edi
mov dword [esp + ebx*4 + 0xf0], eax
call fcn.004d6750
push 0x10
mov ecx, edi
mov word [esp + ebx*2 + 0x8c], ax
call fcn.004d6750
push 0x10
mov ecx, edi
mov word [esp + ebx*2 + 0x58], ax
call fcn.004d6750
push 4
mov ecx, edi
mov word [esp + ebx*2 + 0xc8], ax
call fcn.004d6720
push 0x10
mov ecx, edi
mov byte [esp + ebx + 0xb8], al
call fcn.004d6750
push 9
mov ecx, edi
mov word [esp + ebx*2 + 0xc0], ax
call fcn.004d6750
mov ecx, edi
mov word [esp + ebx*2 + 0x1c], ax
call fcn.004d66f0
mov ecx, edi
mov dword [esp + ebx*4 + 0xdc], eax
call fcn.004d66f0
push 4
mov ecx, edi
mov dword [esp + ebx*4 + 0xa8], eax
call fcn.004d6720
mov byte [esp + ebx + 0xb8], al
inc ebx
cmp ebx, ebp
jl 0x665a30
push 1
mov ecx, edi
call fcn.004d6230
test eax, eax
jne 0x667cb0
mov ebp, dword [esp + 0x34]
cmp bp, 0x271f
je 0x665b26
cmp bp, 0x2720
je 0x665b26
cmp bp, 0x2af8
je 0x665b26
cmp bp, 0x2721
je 0x665b26
cmp bp, 0x2722
je 0x665b26
cmp bp, 0x2723
je 0x665b26
cmp bp, 0x2724
je 0x665b26
cmp bp, 0x274d
je 0x665b26
cmp bp, 0x28a1
jne 0x665b61
push 0x20
mov ecx, edi
call fcn.004d6780
mov ecx, edi
mov dword [esp + 0x28], eax
call fcn.00692630
push 1
mov ecx, edi
mov ebx, eax
call fcn.004d6230
test eax, eax
jne 0x667cb0
test esi, esi
je 0x665b61
mov ecx, dword [esp + 0x28]
mov dword [esi + 0x2c4], ecx
mov dword [esi + 0x2c8], ebx
cmp bp, 0x2721
je 0x665b8f
cmp bp, 0x2722
je 0x665b8f
cmp bp, 0x2723
je 0x665b8f
cmp bp, 0x2724
je 0x665b8f
cmp bp, 0x274d
je 0x665b8f
cmp bp, 0x28a1
jne 0x665c56
push 8
mov ecx, edi
call fcn.004d6720
cmp al, 1
mov byte [esp + 0x3c], al
jne 0x665bad
mov ecx, edi
call fcn.00692630
mov dword [esp + 0x38], eax
jmp 0x665c1c
cmp al, 2
jne 0x665c1c
push 0x20
push 0x3f800000
mov ecx, edi
mov dword [esp + 0x40], 0x7f000000
call fcn.004d67b0
fstp dword [esp + 0x2c]
push 0x20
push 0x3f800000
mov ecx, edi
call fcn.004d67b0
fstp dword [esp + 0x14]
push 0x20
push 0x3f800000
mov ecx, edi
call fcn.004d67b0
fstp dword [esp + 0x84]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
mov ecx, edx
mov dword [esp + 0x7c], edx
mov edx, eax
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], eax
push 0x20
mov ecx, edi
call fcn.004d6780
push 1
mov ecx, edi
mov dword [esp + 0x18], eax
call fcn.004d6230
test eax, eax
je 0x665c56
xor eax, eax
jmp 0x667c7e
test esi, esi
je 0x665c56
mov ecx, esi
mov dword [esp + 0x78], 0
call fcn.0063c060
mov ebp, eax
mov dword [esp + 0x34], ebp
test byte [esp + 0x10c], 8
je 0x665c70
push esi
mov ecx, edi
call fcn.0064dbc0
test eax, eax
je 0x667cb0
mov eax, dword [esp + 0x40]
test eax, eax
je 0x665c95
push 8
mov ecx, edi
call fcn.004d6720
test esi, esi
mov byte [esp + 0x13], al
je 0x6665ac
mov byte [esi + 0x1f0], al
jmp 0x665ca2
test esi, esi
mov byte [esp + 0x13], 0
je 0x6665ac
mov eax, dword [esp + 0x30]
test eax, eax
je 0x665cf2
lea ecx, [esp + 0x6c]
push ecx
mov ecx, esi
call fcn.0060b3c0
mov eax, dword [esi + 0x214]
test eax, eax
je 0x665ce1
mov edx, dword [0x7a39fc]
mov ecx, dword [edx + 4]
mov ebx, dword [esi + 4]
call fcn.005ed550
cmp ebx, eax
je 0x665ce1
lea eax, [esp + 0x6c]
push eax
mov ecx, esi
call fcn.0060b380
mov ecx, dword [esp + 0x9c]
push 0
push ecx
mov ecx, esi
call fcn.00610950
mov ecx, esi
call fcn.0063c060
mov ecx, esi
mov ebx, eax
push ebx
call fcn.0063c170
test eax, eax
jne 0x665e00
push ebp
mov ecx, esi
call fcn.0063c170
cmp eax, 1
jne 0x665e00
push ebp
mov ecx, esi
call fcn.0063c300
cmp eax, 1
jne 0x665e00
cmp bp, 0x2716
je 0x665e00
cmp bp, 0x2718
je 0x665e00
cmp bp, 0x27ac
je 0x665e00
cmp bp, 0x272e
je 0x665e00
cmp bp, 0x27ab
je 0x665e00
cmp bp, 0x2736
je 0x665e00
cmp bp, 0x27aa
je 0x665e00
cmp bp, 0x2737
je 0x665e00
cmp bp, 0x2738
je 0x665e00
cmp bp, 0x2739
je 0x665e00
cmp bp, 0x273a
je 0x665e00
push ebp
mov ecx, esi
call fcn.0063d830
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x150]
test eax, eax
je 0x665e00
mov ecx, dword [esp + 0x94]
test ecx, ecx
je 0x6665ac
lea ecx, [esp + 0x44]
push ecx
push eax
lea edx, [esp + 0x84]
push edx
call fcn.00423bc0
fld dword [esp + 0x88]
fmul dword [esp + 0x88]
add esp, 0xc
fld dword [esp + 0x80]
fmul dword [esp + 0x80]
faddp st(1)
fcomp dword [0x747504]
fnstsw ax
test ah, 0x41
jnp 0x6665ac
push ebx
mov ecx, esi
call fcn.0063c170
cmp eax, 1
jne 0x665e33
push ebp
mov ecx, esi
call fcn.0063c170
test eax, eax
jne 0x665e33
lea eax, [esi + 0x24]
push eax
push eax
call fcn.00423c20
fcomp dword [0x747504]
add esp, 8
fnstsw ax
test ah, 0x41
jnp 0x665e3c
cmp dword [esi + 0x9c], 1
jne 0x665e7a
mov eax, dword [esp + 0x94]
test eax, eax
je 0x665e70
mov eax, dword [esi]
lea ecx, [esp + 0x44]
push ecx
mov ecx, esi
call dword [eax + 0x8c]
mov eax, dword [esp + 0x44]
lea edx, [esi + 0x1dc]
mov dword [edx], eax
mov ecx, dword [esp + 0x48]
mov dword [edx + 4], ecx
mov eax, dword [esp + 0x4c]
mov dword [edx + 8], eax
mov dword [esi + 0x9c], 0
push ebp
mov ecx, esi
call fcn.0063c380
test eax, eax
jne 0x665ea6
mov eax, dword [esp + 0x78]
test eax, eax
je 0x666129
mov edx, dword [esi]
push 0
push 0
push ebp
mov ecx, esi
call dword [edx + 0x9c]
jmp 0x666129
mov eax, dword [esp + 0x40]
test eax, eax
je 0x666129
cmp bp, 0x2719
je 0x665ff4
cmp bp, 0x277d
je 0x665ff4
cmp bp, 0x2721
je 0x665f12
cmp bp, 0x2722
je 0x665f27
cmp bp, 0x2723
je 0x665efd
cmp bp, 0x2724
je 0x665ef6
cmp bp, 0x274d
je 0x665ef6
cmp bp, 0x28a1
jne 0x666129
cmp bp, 0x2723
jne 0x665f32
mov eax, dword [esi]
push 0
push 0
push 0x280c
mov ecx, esi
call dword [eax + 0x9c]
jmp 0x665f7a
mov eax, dword [esi]
push 0
push 0
push 0x280a
mov ecx, esi
call dword [eax + 0x9c]
jmp 0x665f7a
push 0
push 0
push 0x280b
jmp 0x665f70
cmp bp, 0x2724
jne 0x665f44
push 0
push 0
push 0x280d
jmp 0x665f70
cmp bp, 0x274d
jne 0x665f60
mov eax, dword [esi]
push 0
push 0
push 0x2815
mov ecx, esi
call dword [eax + 0x9c]
jmp 0x665f7a
cmp bp, 0x28a1
jne 0x665f7a
push 0
push 0
push 0x28a1
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x9c]
push 0x48
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
mov dword [esp + 0x100], 6
je 0x665fa0
mov ecx, eax
call fcn.0060b630
jmp 0x665fa2
xor eax, eax
mov cl, byte [esp + 0x3c]
mov edx, dword [esp + 0x38]
mov byte [eax + 1], cl
mov dword [eax + 0x14], edx
mov edx, dword [esp + 0x5c]
lea ecx, [eax + 0x2c]
mov dword [ecx], edx
mov edx, dword [esp + 0x60]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x64]
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
mov dword [eax + 0x38], ecx
push eax
mov byte [eax], 4
mov dword [eax + 0x3c], edx
mov edx, dword [esi]
push ebp
mov ecx, esi
mov dword [esp + 0x108], 0xffffffff
call dword [edx + 0xa0]
jmp 0x666129
push 0x48
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x100], 4
je 0x66601e
mov ecx, eax
call fcn.0060b630
mov dword [esp + 0x3c], eax
jmp 0x666026
mov dword [esp + 0x3c], 0
movzx eax, byte [esp + 0x1b]
mov ebx, dword [esp + 0x3c]
xor ebp, ebp
test eax, eax
mov dword [esp + 0x100], 0xffffffff
jle 0x666111
dec eax
mov dword [esp + 0x14], eax
lea esp, [esp]
mov eax, dword [esp + 0x108]
mov cx, word [esp + ebp*2 + 0xc4]
mov dl, byte [esp + ebp + 0xb4]
mov dword [ebx + 4], eax
mov ax, word [esp + ebp*2 + 0xbc]
mov word [ebx + 0x1e], ax
mov ax, word [esp + ebp*2 + 0x54]
mov word [ebx + 8], cx
mov ecx, dword [esp + ebp*4 + 0xec]
mov word [ebx + 0x1c], ax
mov eax, dword [esp + ebp*4 + 0xa4]
mov byte [ebx + 0xc], dl
mov dx, word [esp + ebp*2 + 0x88]
mov dword [ebx + 0x14], ecx
mov cx, word [esp + ebp*2 + 0x1c]
mov dword [ebx + 0x24], eax
cmp ebp, dword [esp + 0x14]
mov word [ebx + 0x1a], dx
mov edx, dword [esp + ebp*4 + 0xdc]
mov word [ebx + 0xa], cx
mov cl, byte [esp + ebp + 0xb8]
mov byte [ebx], 1
mov dword [ebx + 0x20], edx
mov byte [ebx + 0x28], cl
jge 0x666103
push 0x48
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
mov dword [esp + 0x100], 5
je 0x6660f1
mov ecx, eax
call fcn.0060b630
jmp 0x6660f3
xor eax, eax
mov dword [ebx + 0x40], eax
mov dword [esp + 0x100], 0xffffffff
mov ebx, eax
movzx eax, byte [esp + 0x1b]
inc ebp
cmp ebp, eax
jl 0x666050
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
mov edx, dword [esi]
push eax
push ecx
mov ecx, esi
call dword [edx + 0xa0]
mov ebp, dword [esp + 0x34]
push ebp
mov ecx, esi
call fcn.0063c170
test eax, eax
mov eax, dword [esp + 0x40]
jne 0x6661a1
test eax, eax
je 0x666173
push 0x10
mov ecx, edi
call fcn.004d6750
mov ebx, eax
test bx, bx
jbe 0x66618d
mov ecx, edi
call fcn.004d66f0
test eax, eax
mov dword [esp + 0x50], eax
je 0x66618d
push 0x20
push 0x3f800000
mov ecx, edi
call fcn.004d67b0
fstp dword [esp + 0x90]
jmp 0x66618d
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov ecx, esi
call fcn.0060c4e0
mov ebx, dword [esp + 0x14]
push 1
mov ecx, edi
call fcn.004d6230
test eax, eax
je 0x666208
xor eax, eax
jmp 0x667c7e
test eax, eax
je 0x6661db
push 0x10
mov ecx, edi
call fcn.004d6750
mov ebx, eax
test bx, bx
jbe 0x6661df
mov ecx, edi
call fcn.004d66f0
test eax, eax
mov dword [esp + 0x50], eax
je 0x6661df
push 0x20
push 0x3f800000
mov ecx, edi
call fcn.004d67b0
fstp dword [esp + 0x90]
jmp 0x6661e9
mov ebx, dword [esp + 0x14]
mov eax, dword [esi + 0x214]
test eax, eax
je 0x6661f9
mov al, byte [esp + 0x13]
test al, al
je 0x6661f9
cmp byte [esi + 0x1ef], al
jne 0x666208
push 0
push 0
mov ecx, esi
call fcn.0060c790
xor ebx, ebx
jmp 0x66623b
test bx, bx
jbe 0x66623b
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x666223
mov eax, dword [esi + 0x214]
test eax, eax
jne 0x666223
xor eax, eax
jmp 0x666228
mov eax, 1
mov edx, dword [esp + 0x90]
mov dword [esi + 0x214], eax
mov dword [esi + 0x1fc], edx
push ebp
mov ecx, esi
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
call fcn.0063c170
test eax, eax
jne 0x666447
test bx, bx
jbe 0x666447
mov eax, dword [esp + 0x40]
test eax, eax
je 0x666419
movzx ebp, bx
lea eax, [ebp + ebp*2]
shl eax, 2
push eax
call fcn.006fa7e6
mov ebx, eax
add esp, 4
mov dword [esp + 0x28], ebx
test ebx, ebx
mov dword [esp + 0x100], 7
je 0x6662b9
push 0x409e70
push ebp
push 0xc
push ebx
call fcn.00401130
jmp 0x6662bb
xor ebx, ebx
test ebx, ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x100], 0xffffffff
je 0x667cb0
test ebp, ebp
mov dword [esp + 0x28], 0
jle 0x666338
add ebx, 8
push 0x20
push 0x3f800000
mov ecx, edi
call fcn.004d67b0
fstp dword [ebx - 8]
push 0x20
push 0x3f800000
mov ecx, edi
call fcn.004d67b0
fstp dword [ebx - 4]
push 0x20
push 0x3f800000
mov ecx, edi
call fcn.004d67b0
fstp dword [ebx]
push 1
mov ecx, edi
call fcn.004d6230
test eax, eax
jne 0x667cb0
mov eax, dword [esp + 0x28]
inc eax
add ebx, 0xc
cmp eax, ebp
mov dword [esp + 0x28], eax
jl 0x6662e1
mov ebx, dword [esp + 0x50]
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x150]
test eax, eax
je 0x6663fc
lea ecx, [ebp + ebp*2]
lea edx, [ebx + ecx*4 - 0xc]
mov ecx, dword [edx]
mov dword [esp + 0x1c], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x1c]
push ecx
mov dword [esp + 0x28], edx
push eax
lea edx, [esp + 0x64]
push edx
call fcn.00423bc0
fld dword [esp + 0x68]
fmul dword [esp + 0x68]
add esp, 0xc
fld dword [esp + 0x60]
fmul dword [esp + 0x60]
faddp st(1)
fcomp dword [0x747504]
fnstsw ax
test ah, 0x41
jp 0x6663fc
lea eax, [esp + 0x1c]
push eax
lea ecx, [esi + 0x24]
push ecx
lea edx, [esp + 0xac]
push edx
call fcn.00423bc0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x68], ecx
fld dword [esp + 0x68]
fmul dword [esp + 0x68]
mov dword [esp + 0x6c], edx
fld dword [esp + 0x6c]
mov dword [esp + 0x70], eax
fmul dword [esp + 0x6c]
add esp, 0xc
faddp st(1)
fcomp dword [0x747504]
fnstsw ax
test ah, 0x41
jp 0x666410
mov ebp, dword [esi]
push 0
push 0
mov ecx, esi
call fcn.0063c100
mov ecx, esi
push eax
call dword [ebp + 0x9c]
jmp 0x666410
movzx edx, byte [esp + 0x13]
lea ecx, [esp + 0x44]
push ecx
push edx
push ebx
push ebp
mov ecx, esi
call fcn.0060e7d0
push ebx
call fcn.006fa390
add esp, 4
mov eax, dword [esp + 0x30]
test eax, eax
je 0x666673
mov eax, dword [esp + 0x9c]
cmp eax, dword [0x746644]
jne 0x666673
push 0
push eax
mov ecx, esi
call fcn.00610950
jmp 0x666673
mov eax, dword [esi + 0x214]
test eax, eax
je 0x666465
mov al, byte [esp + 0x13]
test al, al
je 0x666465
cmp byte [esi + 0x1ef], al
jne 0x666673
mov eax, dword [esi + 0x20]
test eax, eax
je 0x666483
mov edx, dword [esp + 0x4c]
lea ecx, [esp + 0x7c]
push ecx
push edx
lea ecx, [esp + 0x4c]
push ecx
push eax
mov ecx, esi
call fcn.0060bf20
mov eax, dword [esp + 0x94]
test eax, eax
je 0x666673
fld dword [esi + 0x1e4]
fsub dword [esp + 0x4c]
fld dword [esi + 0x1e0]
fsub dword [esp + 0x48]
fld dword [esi + 0x1dc]
fsub dword [esp + 0x44]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fcomp dword [0x747504]
fstp st(0)
fnstsw ax
fstp st(0)
test ah, 0x41
fstp st(0)
jne 0x666507
mov edx, dword [esp + 0x44]
mov dword [esi + 0x1dc], edx
mov eax, dword [esp + 0x48]
mov dword [esi + 0x1e0], eax
mov ecx, dword [esp + 0x4c]
mov dword [esi + 0x1e4], ecx
mov ecx, esi
call fcn.0060bf10
mov edx, dword [esi]
lea eax, [esp + 0x7c]
push eax
mov ecx, esi
call dword [edx + 0x10c]
fld dword [esi + 0x2c]
fsub dword [esp + 0x4c]
fld dword [esi + 0x28]
fsub dword [esp + 0x48]
fld dword [esi + 0x24]
fsub dword [esp + 0x44]
fld dword [esi + 0x2c]
fmul dword [esi + 0x2c]
fld dword [esi + 0x28]
fmul dword [esi + 0x28]
faddp st(1)
fld dword [esi + 0x24]
fmul dword [esi + 0x24]
faddp st(1)
fcomp dword [0x747504]
fnstsw ax
test ah, 0x41
jnp 0x666568
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fcomp dword [0x74f348]
fstp st(0)
fnstsw ax
fstp st(0)
test ah, 1
fstp st(0)
jne 0x666673
jmp 0x66656e
fstp st(0)
fstp st(0)
fstp st(0)
mov edx, dword [esi]
lea eax, [esp + 0x44]
push eax
mov ecx, esi
call dword [edx + 0x8c]
mov edx, dword [esi]
lea eax, [esp + 0x7c]
push eax
mov ecx, esi
call dword [edx + 0x10c]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x666673
mov edx, dword [esi]
lea eax, [esp + 0x6c]
push eax
mov ecx, esi
call dword [edx + 0x88]
jmp 0x666673
mov eax, dword [esp + 0x40]
test eax, eax
je 0x66661d
push 0x10
mov ecx, edi
call fcn.004d6750
mov ebp, eax
test bp, bp
jbe 0x666625
mov ecx, edi
call fcn.004d66f0
mov ebx, eax
test ebx, ebx
je 0x6665e1
push 0x20
push 0x3f800000
mov ecx, edi
call fcn.004d67b0
jmp 0x6665e8
fld dword [esp + 0x90]
test esi, esi
je 0x666623
test ebx, ebx
jne 0x66660a
mov eax, dword [esi + 0x214]
test eax, eax
jne 0x66660a
xor eax, eax
fstp dword [esi + 0x1fc]
mov dword [esi + 0x214], eax
jmp 0x666625
mov eax, 1
fstp dword [esi + 0x1fc]
mov dword [esi + 0x214], eax
jmp 0x666625
mov ebp, dword [esp + 0x14]
jmp 0x666625
fstp st(0)
mov eax, dword [esp + 0x40]
test eax, eax
je 0x666673
test bp, bp
jbe 0x666673
movzx ebx, bp
test ebx, ebx
jle 0x666673
lea esp, [esp]
push 0x20
push 0x3f800000
mov ecx, edi
call fcn.004d67b0
fstp st(0)
push 0x20
push 0x3f800000
mov ecx, edi
call fcn.004d67b0
fstp st(0)
push 0x20
push 0x3f800000
mov ecx, edi
call fcn.004d67b0
fstp st(0)
dec ebx
jne 0x666640
test byte [esp + 0x10c], 0x40
je 0x666ac5
push 0x10
mov ecx, edi
call fcn.004d6750
push 8
mov ecx, edi
mov dword [esp + 0x18], eax
call fcn.004d6720
push 0x10
mov ecx, edi
mov byte [esp + 0x1f], al
call fcn.004d6750
push 8
mov ecx, edi
mov dword [esp + 0x30], eax
call fcn.004d6720
push 8
mov ecx, edi
mov byte [esp + 0x40], al
call fcn.004d6720
mov ecx, edi
mov bl, al
call fcn.004d66f0
mov ecx, edi
mov dword [esp + 0x28], eax
call fcn.004d66f0
push 1
mov ecx, edi
mov dword [esp + 0x7c], eax
call fcn.004d6230
test eax, eax
jne 0x667cb0
cmp byte [esp + 0x1b], 2
jne 0x6666fb
mov ecx, edi
call fcn.00692630
mov dword [esp + 0x38], eax
jmp 0x666703
mov dword [esp + 0x38], 0x7f000000
push 1
mov ecx, edi
call fcn.004d6230
test eax, eax
jne 0x667cb0
test esi, esi
je 0x66691a
cmp bl, 1
jne 0x66681b
mov eax, dword [esi + 0x194]
test eax, eax
jne 0x66680f
push 0x34
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
mov dword [esp + 0x100], 8
je 0x66675b
mov ecx, eax
call fcn.004d69f0
mov ebx, eax
jmp 0x66675d
xor ebx, ebx
mov eax, dword [esi + 4]
push eax
or ebp, 0xffffffff
push 0
mov ecx, ebx
mov dword [esp + 0x108], ebp
call fcn.004d7780
push 0x73d71c
lea ecx, [esp + 0x20]
call fcn.005e5a90
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 4]
lea edx, [esp + 0x1c]
push edx
push ebx
push 0x55
mov dword [esp + 0x10c], 9
call fcn.005ed360
lea ecx, [esp + 0x1c]
mov dword [esp + 0x100], ebp
call fcn.005e5c20
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 4]
mov ebx, dword [esi + 4]
call fcn.005ed550
cmp ebx, eax
jne 0x66680f
push str.sdr_invisible
lea ecx, [esp + 0xa8]
call fcn.00406d80
push 0
push 0
push 0
push 0
push 0xb
push 0
sub esp, 0xc
lea ecx, [esi + 0x24]
mov eax, dword [ecx]
mov edx, esp
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov ecx, dword [0x7a39ec]
lea edx, [esp + 0xc8]
push edx
call fcn.005d5e10
mov eax, dword [esp + 0x28]
push eax
push 1
jmp 0x666913
test bl, bl
jne 0x66691a
cmp dword [esi + 0x194], 1
jne 0x66690c
push 0x34
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
mov dword [esp + 0x100], 0xa
je 0x666858
mov ecx, eax
call fcn.004d69f0
mov ebx, eax
jmp 0x66685a
xor ebx, ebx
mov eax, dword [esi + 4]
push eax
or ebp, 0xffffffff
push 0
mov ecx, ebx
mov dword [esp + 0x108], ebp
call fcn.004d7780
push 0x73d71c
lea ecx, [esp + 0x20]
call fcn.005e5a90
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 4]
lea edx, [esp + 0x1c]
push edx
push ebx
push 0x56
mov dword [esp + 0x10c], 0xb
call fcn.005ed360
lea ecx, [esp + 0x1c]
mov dword [esp + 0x100], ebp
call fcn.005e5c20
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 4]
mov ebx, dword [esi + 4]
call fcn.005ed550
cmp ebx, eax
jne 0x66690c
push str.sdr_invisible
lea ecx, [esp + 0xa8]
call fcn.00406d80
push 0
push 0
push 0
push 0
push 0xb
push 0
sub esp, 0xc
lea ecx, [esi + 0x24]
mov eax, dword [ecx]
mov edx, esp
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov ecx, dword [0x7a39ec]
lea edx, [esp + 0xc8]
push edx
call fcn.005d5e10
mov eax, dword [esp + 0x28]
push eax
push 0
mov ecx, esi
call fcn.00613930
mov ebx, dword [esp + 0x14]
test bx, bx
jne 0x666a0f
test esi, esi
je 0x666ac5
mov eax, dword [esi + 4]
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 4]
push eax
call fcn.005ed590
test eax, eax
jne 0x666961
mov eax, dword [esi + 0x188]
test eax, eax
jne 0x666961
mov eax, dword [esi + 4]
mov edx, dword [0x7a39fc]
mov ecx, dword [edx + 4]
push eax
call fcn.005ed750
push 0
push 0
mov ecx, esi
call fcn.00611700
push 0x10
mov ecx, esi
call fcn.0060ca80
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 4]
push eax
call fcn.005ed5a0
test eax, eax
je 0x666997
push 0
push 1
push 0
push 0
mov ecx, eax
call fcn.00647130
push 0x20
mov ecx, esi
call fcn.0060ca80
mov edx, dword [0x7a39fc]
mov ecx, dword [edx + 4]
push eax
call fcn.005ed5a0
test eax, eax
je 0x6669c2
push 0
push 1
push 0
push 0
mov ecx, eax
call fcn.00647130
mov eax, dword [esi + 4]
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 4]
push eax
call fcn.005ed8b0
mov ecx, eax
call fcn.00634620
test eax, eax
je 0x666a29
mov edx, dword [0x7a39fc]
mov ecx, dword [edx + 4]
call fcn.005ed8b0
cmp dword [eax], 1
jle 0x666a29
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 4]
push 0
push 0x7f000000
push 0x7f000000
push 0xf
call fcn.005edf40
jmp 0x666a29
test esi, esi
je 0x666ac5
mov eax, dword [esi + 4]
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 4]
push eax
call fcn.005ed760
mov dl, byte [esp + 0x1b]
mov cl, byte [esp + 0x3c]
mov ax, word [esp + 0x2c]
mov word [esi + 0x2d0], bx
mov ebx, dword [esp + 0x78]
mov byte [esi + 0x2d2], dl
mov edx, dword [esp + 0x38]
mov byte [esi + 0x2dc], cl
push ebx
mov ecx, esi
mov word [esi + 0x2d4], ax
mov dword [esi + 0x2d8], edx
call fcn.006182a0
test ebx, ebx
je 0x666ab8
mov eax, dword [esi + 0x3a4]
test eax, eax
je 0x666ab8
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 4]
call fcn.005ed700
cmp byte [eax + 0x6d], 5
jne 0x666ab8
mov ecx, dword [0x7a39fc]
mov dword [0x7a2288], 1
mov ecx, dword [ecx + 4]
call fcn.005ed530
mov ecx, eax
call fcn.00641dc0
mov edx, dword [0x7a39fc]
mov ecx, dword [edx + 4]
push 1
push 0
call fcn.005eda60
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 4]
call fcn.005ed690
mov ebx, dword [esp + 0x10c]
test bh, 1
je 0x666b58
push 0x20
push 0x3f800000
mov ecx, edi
call fcn.004d67b0
fstp dword [esp + 0x14]
push 0x20
push 0x3f800000
mov ecx, edi
call fcn.004d67b0
fstp dword [esp + 0x30]
push 1
mov ecx, edi
call fcn.004d6230
test eax, eax
jne 0x667cb0
test esi, esi
je 0x666b58
fld dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
fmul dword [0x73d708]
mov edx, dword [esp + 0x30]
mov eax, dword [esi + 0x21c]
mov dword [esi + 0x20c], ecx
mov dword [esi + 0x210], edx
fstp dword [eax + 0x5c]
mov ecx, dword [esi + 0x21c]
call fcn.006975d0
fcomp dword [esp + 0x30]
mov ecx, esi
fnstsw ax
test ah, 0x41
jne 0x666b51
push 1
jmp 0x666b53
push 0
call fcn.0060e1f0
test ebx, 0x40000
je 0x666b78
mov ecx, edi
call fcn.00692630
push 1
mov ecx, edi
call fcn.004d6230
test eax, eax
jne 0x667cb0
test bh, 2
je 0x666ba0
push 0xa
mov ecx, edi
call fcn.004d6780
push 0xa
mov ecx, edi
call fcn.004d6780
push 1
mov ecx, edi
call fcn.004d6230
test eax, eax
jne 0x667cb0
test bh, 4
je 0x666c1c
push 0x10
mov ecx, edi
call fcn.004d6750
push 0x10
mov ecx, edi
mov ebx, eax
call fcn.004d6750
push 0x10
mov ecx, edi
mov ebp, eax
call fcn.004d6750
push 0x10
mov ecx, edi
mov dword [esp + 0x18], eax
call fcn.004d6750
push 1
mov ecx, edi
mov dword [esp + 0x30], eax
call fcn.004d6230
test eax, eax
jne 0x667cb0
test esi, esi
je 0x666c1c
mov eax, dword [esi + 0x2f8]
mov cx, word [esp + 0x14]
mov dx, word [esp + 0x2c]
mov word [eax + 0x48], bp
mov eax, dword [esi + 0x2f8]
mov word [eax + 0x4a], cx
mov eax, dword [esi + 0x2f8]
mov word [eax + 0x4c], bx
mov eax, dword [esi + 0x2f8]
mov word [eax + 0x4e], dx
test dword [esp + 0x10c], 0x80000
je 0x666cc5
push 0x10
mov ecx, edi
call fcn.004d6750
push 0x10
mov ecx, edi
mov ebp, eax
call fcn.004d6750
push 0x10
mov ecx, edi
mov ebx, eax
call fcn.004d6750
push 0x10
mov ecx, edi
mov dword [esp + 0x18], eax
call fcn.004d6750
push 1
mov ecx, edi
mov dword [esp + 0x30], eax
call fcn.004d6230
test eax, eax
jne 0x667cb0
mov eax, dword [0x7a39fc]
mov edx, dword [esp + 0x108]
mov ecx, dword [eax + 4]
push edx
call fcn.005ed5b0
test eax, eax
je 0x666cc5
mov ecx, dword [eax + 0x2f8]
mov dx, word [esp + 0x14]
mov word [ecx + 0x120], bx
mov ecx, dword [eax + 0x2f8]
mov word [ecx + 0x124], dx
mov ecx, dword [eax + 0x2f8]
mov word [ecx + 0x122], bp
mov eax, dword [eax + 0x2f8]
mov cx, word [esp + 0x2c]
mov word [eax + 0x11e], cx
mov ebx, dword [esp + 0x10c]
test ebx, 0x10000
je 0x666d57
push 0
lea ecx, [esp + 0xa8]
call fcn.00405ed0
push eax
lea edx, [esp + 0x5c]
push edx
mov ecx, edi
call fcn.00692660
push 0
lea ecx, [esp + 0xe0]
mov dword [esp + 0x104], 0xc
call fcn.00405ed0
push eax
lea eax, [esp + 0x24]
push eax
mov ecx, edi
call fcn.00692660
push 1
mov ecx, edi
mov byte [esp + 0x104], 0xd
call fcn.004d6230
test eax, eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x100], 0xc
jne 0x665852
call fcn.005e5c20
lea ecx, [esp + 0x54]
mov dword [esp + 0x100], 0xffffffff
call fcn.005e5c20
test bh, 0x40
je 0x666f68
mov ecx, edi
call fcn.004d66f0
mov ecx, edi
mov ebp, eax
call fcn.004d66f0
mov ecx, edi
mov dword [esp + 0x14], eax
call fcn.004d66f0
mov ecx, edi
mov dword [esp + 0x2c], eax
call fcn.004d66f0
mov ecx, edi
mov dword [esp + 0x38], eax
call fcn.004d66f0
lea ecx, [esp + 0x1c]
mov ebx, eax
mov dword [esp + 0x28], 0x7f000000
call fcn.005b3190
lea ecx, [esp + 0x54]
mov dword [esp + 0x100], 0xe
call fcn.005b3190
test ebx, ebx
mov byte [esp + 0x100], 0xf
je 0x666e5b
mov ecx, edi
call fcn.00692630
push 0
lea ecx, [esp + 0xa8]
mov dword [esp + 0x2c], eax
call fcn.00405ed0
push eax
lea ecx, [esp + 0x90]
push ecx
mov ecx, edi
call fcn.00692660
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x104], 0x10
call fcn.005e5c50
lea ecx, [esp + 0x88]
mov byte [esp + 0x100], 0xf
call fcn.005e5c20
push 0
lea ecx, [esp + 0xa8]
call fcn.00405ed0
push eax
lea edx, [esp + 0x90]
push edx
mov ecx, edi
call fcn.00692660
push eax
lea ecx, [esp + 0x58]
mov byte [esp + 0x104], 0x11
call fcn.005e5c50
lea ecx, [esp + 0x88]
mov byte [esp + 0x100], 0xf
call fcn.005e5c20
mov ecx, edi
call fcn.004d66f0
mov ecx, edi
call fcn.004d66f0
push 1
mov ecx, edi
call fcn.004d6230
test eax, eax
je 0x666ea2
lea ecx, [esp + 0x54]
mov byte [esp + 0x100], 0xe
call fcn.005e5c20
lea ecx, [esp + 0x1c]
mov dword [esp + 0x100], 0xffffffff
call fcn.005e5c20
xor eax, eax
jmp 0x667c7e
test esi, esi
je 0x666f43
mov eax, dword [esi + 0x30c]
test eax, eax
jne 0x666ee7
push 0x20
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x78], eax
test eax, eax
mov byte [esp + 0x100], 0x12
je 0x666ed7
mov ecx, eax
call fcn.0060b750
jmp 0x666ed9
xor eax, eax
mov byte [esp + 0x100], 0xf
mov dword [esi + 0x30c], eax
test ebx, ebx
mov eax, dword [esi + 0x30c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
mov dword [eax], ebp
mov eax, dword [esi + 0x30c]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x30c]
mov ecx, dword [esp + 0x38]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x30c]
mov dword [eax + 0xc], ecx
mov eax, dword [esi + 0x30c]
mov dword [eax + 0x10], ebx
je 0x666f43
mov eax, dword [esi + 0x30c]
mov edx, dword [esp + 0x28]
mov dword [eax + 0x14], edx
mov eax, dword [esi + 0x30c]
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [eax + 0x18]
call fcn.005e5c50
lea ecx, [esp + 0x54]
mov byte [esp + 0x100], 0xe
call fcn.005e5c20
lea ecx, [esp + 0x1c]
mov dword [esp + 0x100], 0xffffffff
call fcn.005e5c20
mov eax, dword [esp + 0x10c]
test ah, ah
jns 0x667162
mov edx, dword [0x7a39fc]
mov ecx, dword [edx + 4]
call fcn.005ed540
test eax, eax
jne 0x666f93
mov dword [esp + 0x34], 0x7f000000
jmp 0x666f9a
mov eax, dword [eax + 4]
mov dword [esp + 0x34], eax
mov ecx, edi
call fcn.004d66f0
mov ecx, edi
mov dword [esp + 0x38], eax
call fcn.004d66f0
mov ecx, edi
mov dword [esp + 0x28], eax
call fcn.004d66f0
push 1
mov ecx, edi
mov ebx, eax
call fcn.004d6230
test eax, eax
jne 0x667cb0
test esi, esi
je 0x667162
mov edx, dword [esi + 0x364]
xor ecx, ecx
cmp edx, ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x30], ecx
jle 0x667017
mov ecx, dword [esi + 0x360]
lea esp, [esp]
mov eax, dword [ecx]
mov ebp, dword [esp + 0x34]
cmp dword [eax], ebp
je 0x667010
mov ebp, dword [esp + 0x30]
inc ebp
add ecx, 4
cmp ebp, edx
mov dword [esp + 0x30], ebp
jl 0x666ff0
mov ecx, dword [esp + 0x14]
jmp 0x66701b
mov ecx, 1
jmp 0x66701b
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x34]
cmp ebp, dword [esp + 0x108]
jne 0x6670a4
test ecx, ecx
jne 0x667084
push 8
call fcn.006fa7e6
add esp, 4
test eax, eax
je 0x66704d
mov cl, byte [eax + 4]
and cl, 0xe0
mov dword [eax], 0x7f000000
mov byte [eax + 4], cl
mov ebp, eax
jmp 0x66704f
xor ebp, ebp
mov dl, byte [ebp + 4]
mov ecx, dword [esp + 0x34]
shl bl, 4
xor bl, dl
and bl, 0x10
mov al, dl
xor bl, al
mov dword [ebp], ecx
or bl, 3
push ebp
lea ecx, [esi + 0x360]
mov byte [ebp + 4], bl
call fcn.00671c00
push ebp
mov ecx, esi
call fcn.0060c980
jmp 0x667162
mov cl, byte [eax + 4]
shl bl, 4
xor bl, cl
and bl, 0x10
xor bl, cl
or bl, 3
push eax
mov ecx, esi
mov byte [eax + 4], bl
call fcn.0060c980
jmp 0x667162
test ecx, ecx
jne 0x66713d
test edx, edx
jle 0x6670db
mov edx, dword [esi + 0x360]
mov eax, dword [edx]
test eax, eax
lea ebp, [esi + 0x360]
je 0x6670cb
push eax
call fcn.006fa390
add esp, 4
push 0
mov ecx, ebp
call fcn.006857a0
mov eax, dword [ebp + 4]
test eax, eax
jg 0x6670b0
mov ebp, dword [esp + 0x34]
cmp ebp, 0x7f000000
je 0x667162
push 8
call fcn.006fa7e6
add esp, 4
test eax, eax
je 0x667106
mov cl, byte [eax + 4]
and cl, 0xe0
mov dword [eax], 0x7f000000
mov byte [eax + 4], cl
jmp 0x667108
xor eax, eax
mov cl, byte [esp + 0x28]
and bl, 1
and cl, 1
shl bl, 3
or bl, cl
mov cl, byte [esp + 0x38]
and cl, 1
shl bl, 1
or bl, cl
mov cl, byte [eax + 4]
and cl, 0xec
or bl, cl
push eax
lea ecx, [esi + 0x360]
mov dword [eax], ebp
mov byte [eax + 4], bl
call fcn.00671c00
jmp 0x667162
mov cl, byte [esp + 0x28]
mov dl, byte [eax + 4]
and bl, 1
shl bl, 3
and cl, 1
or bl, cl
mov cl, byte [esp + 0x38]
shl bl, 1
and cl, 1
or bl, cl
and dl, 0xec
or bl, dl
mov byte [eax + 4], bl
test dword [esp + 0x10c], 0x20000
je 0x6679f2
push 8
mov ecx, edi
call fcn.004d6720
mov bl, al
push 1
mov ecx, edi
mov byte [esp + 0x17], bl
call fcn.004d6230
test eax, eax
jne 0x667cb0
test esi, esi
je 0x6679f2
test bl, 1
mov eax, dword [esi + 0x190]
je 0x667252
test eax, eax
jne 0x667240
push 0x34
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x100], 0x13
je 0x6671da
mov ecx, eax
call fcn.004d69f0
mov ebx, eax
jmp 0x6671dc
xor ebx, ebx
mov eax, dword [esi + 4]
push eax
or ebp, 0xffffffff
push 0
mov ecx, ebx
mov dword [esp + 0x108], ebp
call fcn.004d7780
push 0x73d71c
lea ecx, [esp + 0x20]
call fcn.005e5a90
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 4]
lea edx, [esp + 0x1c]
push edx
push ebx
push 0x53
mov dword [esp + 0x10c], 0x14
call fcn.005ed360
lea ecx, [esp + 0x1c]
mov dword [esp + 0x100], ebp
call fcn.005e5c20
mov dword [esi + 0x190], 1
jmp 0x6672e9
or ebp, 0xffffffff
mov dword [esi + 0x190], 1
jmp 0x6672e9
cmp eax, 1
jne 0x6672dc
push 0x34
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x100], 0x15
je 0x667283
mov ecx, eax
call fcn.004d69f0
mov ebx, eax
jmp 0x667285
xor ebx, ebx
mov eax, dword [esi + 4]
push eax
or ebp, 0xffffffff
push 0
mov ecx, ebx
mov dword [esp + 0x108], ebp
call fcn.004d7780
push 0x73d71c
lea ecx, [esp + 0x20]
call fcn.005e5a90
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 4]
lea edx, [esp + 0x1c]
push edx
push ebx
push 0x54
mov dword [esp + 0x10c], 0x16
call fcn.005ed360
lea ecx, [esp + 0x1c]
mov dword [esp + 0x100], ebp
call fcn.005e5c20
jmp 0x6672df
or ebp, 0xffffffff
mov dword [esi + 0x190], 0
test byte [esp + 0x13], 2
mov eax, dword [esi + 0x194]
je 0x667383
test eax, eax
jne 0x66737a
push 0x34
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x100], 0x17
je 0x667326
mov ecx, eax
call fcn.004d69f0
mov ebx, eax
jmp 0x667328
xor ebx, ebx
mov eax, dword [esi + 4]
push eax
push 0
mov ecx, ebx
mov dword [esp + 0x108], ebp
call fcn.004d7780
push 0x73d71c
lea ecx, [esp + 0x20]
call fcn.005e5a90
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 4]
lea edx, [esp + 0x1c]
push edx
push ebx
push 0x55
mov dword [esp + 0x10c], 0x18
call fcn.005ed360
lea ecx, [esp + 0x1c]
mov dword [esp + 0x100], ebp
call fcn.005e5c20
push 0
push 1
jmp 0x667408
cmp eax, 1
jne 0x667404
push 0x34
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x100], 0x19
je 0x6673b0
mov ecx, eax
call fcn.004d69f0
mov ebx, eax
jmp 0x6673b2
xor ebx, ebx
mov eax, dword [esi + 4]
push eax
push 0
mov ecx, ebx
mov dword [esp + 0x108], ebp
call fcn.004d7780
push 0x73d71c
lea ecx, [esp + 0x20]
call fcn.005e5a90
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 4]
lea edx, [esp + 0x1c]
push edx
push ebx
push 0x56
mov dword [esp + 0x10c], 0x1a
call fcn.005ed360
lea ecx, [esp + 0x1c]
mov dword [esp + 0x100], ebp
call fcn.005e5c20
push 0
push 0
mov ecx, esi
call fcn.00613930
test byte [esp + 0x13], 4
mov eax, dword [esi + 0x198]
je 0x6674af
test eax, eax
jne 0x6674a0
push 0x34
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x100], 0x1b
je 0x66744c
mov ecx, eax
call fcn.004d69f0
mov ebx, eax
jmp 0x66744e
xor ebx, ebx
mov eax, dword [esi + 4]
push eax
push 0
mov ecx, ebx
mov dword [esp + 0x108], ebp
call fcn.004d7780
push 0x73d71c
lea ecx, [esp + 0x20]
call fcn.005e5a90
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 4]
lea edx, [esp + 0x1c]
push edx
push ebx
push 0x57
mov dword [esp + 0x10c], 0x1c
call fcn.005ed360
lea ecx, [esp + 0x1c]
mov dword [esp + 0x100], ebp
call fcn.005e5c20
mov dword [esi + 0x198], 1
jmp 0x66753a
cmp eax, 1
jne 0x667530
push 0x34
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x100], 0x1d
je 0x6674dc
mov ecx, eax
call fcn.004d69f0
mov ebx, eax
jmp 0x6674de
xor ebx, ebx
mov eax, dword [esi + 4]
push eax
push 0
mov ecx, ebx
mov dword [esp + 0x108], ebp
call fcn.004d7780
push 0x73d71c
lea ecx, [esp + 0x20]
call fcn.005e5a90
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 4]
lea edx, [esp + 0x1c]
push edx
push ebx
push 0x58
mov dword [esp + 0x10c], 0x1e
call fcn.005ed360
lea ecx, [esp + 0x1c]
mov dword [esp + 0x100], ebp
call fcn.005e5c20
mov dword [esi + 0x198], 0
test byte [esp + 0x13], 8
mov eax, dword [esi + 0x19c]
je 0x6675da
test eax, eax
jne 0x6675cb
push 0x34
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x100], 0x1f
je 0x667577
mov ecx, eax
call fcn.004d69f0
mov ebx, eax
jmp 0x667579
xor ebx, ebx
mov eax, dword [esi + 4]
push eax
push 0
mov ecx, ebx
mov dword [esp + 0x108], ebp
call fcn.004d7780
push 0x73d71c
lea ecx, [esp + 0x20]
call fcn.005e5a90
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 4]
lea edx, [esp + 0x1c]
push edx
push ebx
push 0x59
mov dword [esp + 0x10c], 0x20
call fcn.005ed360
lea ecx, [esp + 0x1c]
mov dword [esp + 0x100], ebp
call fcn.005e5c20
mov dword [esi + 0x19c], 1
jmp 0x667665
cmp eax, 1
jne 0x66765b
push 0x34
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x100], 0x21
je 0x667607
mov ecx, eax
call fcn.004d69f0
mov ebx, eax
jmp 0x667609
xor ebx, ebx
mov eax, dword [esi + 4]
push eax
push 0
mov ecx, ebx
mov dword [esp + 0x108], ebp
call fcn.004d7780
push 0x73d71c
lea ecx, [esp + 0x20]
call fcn.005e5a90
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 4]
lea edx, [esp + 0x1c]
push edx
push ebx
push 0x5a
mov dword [esp + 0x10c], 0x22
call fcn.005ed360
lea ecx, [esp + 0x1c]
mov dword [esp + 0x100], ebp
call fcn.005e5c20
mov dword [esi + 0x19c], 0
test byte [esp + 0x13], 0x10
mov eax, dword [esi + 0x1a0]
je 0x667705
test eax, eax
jne 0x6676f6
push 0x34
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x100], 0x23
je 0x6676a2
mov ecx, eax
call fcn.004d69f0
mov ebx, eax
jmp 0x6676a4
xor ebx, ebx
mov eax, dword [esi + 4]
push eax
push 0
mov ecx, ebx
mov dword [esp + 0x108], ebp
call fcn.004d7780
push 0x73d71c
lea ecx, [esp + 0x20]
call fcn.005e5a90
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 4]
lea edx, [esp + 0x1c]
push edx
push ebx
push 0x5b
mov dword [esp + 0x10c], 0x24
call fcn.005ed360
lea ecx, [esp + 0x1c]
mov dword [esp + 0x100], ebp
call fcn.005e5c20
mov dword [esi + 0x1a0], 1
jmp 0x667790
cmp eax, 1
jne 0x667786
push 0x34
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x100], 0x25
je 0x667732
mov ecx, eax
call fcn.004d69f0
mov ebx, eax
jmp 0x667734
xor ebx, ebx
mov eax, dword [esi + 4]
push eax
push 0
mov ecx, ebx
mov dword [esp + 0x108], ebp
call fcn.004d7780
push 0x73d71c
lea ecx, [esp + 0x20]
call fcn.005e5a90
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 4]
lea edx, [esp + 0x1c]
push edx
push ebx
push 0x5c
mov dword [esp + 0x10c], 0x26
call fcn.005ed360
lea ecx, [esp + 0x1c]
mov dword [esp + 0x100], ebp
call fcn.005e5c20
mov dword [esi + 0x1a0], 0
test byte [esp + 0x13], 0x40
mov eax, dword [esi + 0x1a8]
je 0x667833
test eax, eax
jne 0x667824
push 0x34
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x100], 0x27
je 0x6677cd
mov ecx, eax
call fcn.004d69f0
mov ebx, eax
jmp 0x6677cf
xor ebx, ebx
mov eax, dword [esi + 4]
push eax
push 0
mov ecx, ebx
mov dword [esp + 0x108], ebp
call fcn.004d7780
push 0x73d71c
lea ecx, [esp + 0x20]
call fcn.005e5a90
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 4]
lea edx, [esp + 0x1c]
push edx
push ebx
push 0xa6
mov dword [esp + 0x10c], 0x28
call fcn.005ed360
lea ecx, [esp + 0x1c]
mov dword [esp + 0x100], ebp
call fcn.005e5c20
mov dword [esi + 0x1a8], 1
jmp 0x6678c1
cmp eax, 1
jne 0x6678b7
push 0x34
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x100], 0x29
je 0x667860
mov ecx, eax
call fcn.004d69f0
mov ebx, eax
jmp 0x667862
xor ebx, ebx
mov eax, dword [esi + 4]
push eax
push 0
mov ecx, ebx
mov dword [esp + 0x108], ebp
call fcn.004d7780
push 0x73d71c
lea ecx, [esp + 0x20]
call fcn.005e5a90
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 4]
lea edx, [esp + 0x1c]
push edx
push ebx
push 0xa7
mov dword [esp + 0x10c], 0x2a
call fcn.005ed360
lea ecx, [esp + 0x1c]
mov dword [esp + 0x100], ebp
call fcn.005e5c20
mov dword [esi + 0x1a8], 0
test byte [esp + 0x13], 0x20
mov eax, dword [esi + 0x1ac]
je 0x667964
test eax, eax
jne 0x667955
push 0x34
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x100], 0x2b
je 0x6678fe
mov ecx, eax
call fcn.004d69f0
mov ebx, eax
jmp 0x667900
xor ebx, ebx
mov eax, dword [esi + 4]
push eax
push 0
mov ecx, ebx
mov dword [esp + 0x108], ebp
call fcn.004d7780
push 0x73d71c
lea ecx, [esp + 0x20]
call fcn.005e5a90
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 4]
lea edx, [esp + 0x1c]
push edx
push ebx
push 0xa8
mov dword [esp + 0x10c], 0x2c
call fcn.005ed360
lea ecx, [esp + 0x1c]
mov dword [esp + 0x100], ebp
call fcn.005e5c20
mov dword [esi + 0x1ac], 1
jmp 0x6679f2
cmp eax, 1
jne 0x6679e8
push 0x34
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x100], 0x2d
je 0x667991
mov ecx, eax
call fcn.004d69f0
mov ebx, eax
jmp 0x667993
xor ebx, ebx
mov eax, dword [esi + 4]
push eax
push 0
mov ecx, ebx
mov dword [esp + 0x108], ebp
call fcn.004d7780
push 0x73d71c
lea ecx, [esp + 0x20]
call fcn.005e5a90
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 4]
lea edx, [esp + 0x1c]
push edx
push ebx
push 0xa9
mov dword [esp + 0x10c], 0x2e
call fcn.005ed360
lea ecx, [esp + 0x1c]
mov dword [esp + 0x100], ebp
call fcn.005e5c20
mov dword [esi + 0x1ac], 0
mov ebp, dword [esp + 0x10c]
test ebp, 0x800
je 0x667a2a
push 8
mov ecx, edi
call fcn.004d6720
push 1
mov ecx, edi
mov bl, al
call fcn.004d6230
test eax, eax
jne 0x667cb0
test esi, esi
je 0x667a2a
mov eax, dword [esi + 0x2f8]
mov byte [eax + 0x52], bl
test ebp, 0x1000
je 0x667bf7
lea ecx, [esp + 0x94]
call fcn.005b3190
mov ebx, 0x2f
push 0x10
mov ecx, edi
mov dword [esp + 0x104], ebx
call fcn.004d6750
push 0x20
mov ecx, edi
mov ebp, eax
lea eax, [esp + 0xa0]
push eax
call fcn.004d67e0
push eax
lea ecx, [esp + 0x98]
mov byte [esp + 0x104], 0x30
call fcn.005e5c50
lea ecx, [esp + 0x9c]
mov byte [esp + 0x100], bl
call fcn.005e5c20
push 8
mov ecx, edi
call fcn.004d6720
push 8
mov ecx, edi
mov byte [esp + 0x40], al
call fcn.004d6720
push 0x10
mov ecx, edi
mov byte [esp + 0x17], al
call fcn.004d6750
mov ecx, edi
mov dword [esp + 0x14], eax
call fcn.004d66f0
push 8
mov ecx, edi
mov ebx, eax
call fcn.004d6720
push 1
mov ecx, edi
mov byte [esp + 0x1f], al
call fcn.004d6230
test eax, eax
jne 0x667c99
test esi, esi
je 0x667b7c
mov eax, dword [esp + 0x68]
lea ecx, [esp + 0x94]
push ecx
lea ecx, [eax + 0x28]
mov word [eax + 0x24], bp
call fcn.005e5c50
mov eax, dword [esp + 0x68]
mov dl, byte [esp + 0x3c]
mov cl, byte [esp + 0x13]
mov byte [eax + 0x30], dl
mov edx, dword [esp + 0x14]
mov byte [eax + 0x31], cl
push edx
mov ecx, esi
call fcn.0060f780
mov ecx, esi
call fcn.004015a0
cmp ebx, 1
mov eax, dword [esi + 4]
mov dword [esi + 0x188], ebx
push eax
jne 0x667b44
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 4]
call fcn.005ed760
jmp 0x667b71
mov edx, dword [0x7a39fc]
mov ecx, dword [edx + 4]
call fcn.005ed590
test eax, eax
jne 0x667b71
cmp word [esi + 0x2d0], ax
jne 0x667b71
mov eax, dword [esi + 4]
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 4]
push eax
call fcn.005ed750
mov dl, byte [esp + 0x1b]
mov eax, dword [esp + 0x68]
mov byte [eax + 0x32], dl
movzx ebp, byte [esp + 0x1b]
xor ebx, ebx
test ebp, ebp
jle 0x667bd9
push 8
mov ecx, edi
call fcn.004d6720
push 8
mov ecx, edi
mov byte [esp + 0x18], al
call fcn.004d6720
push 1
mov ecx, edi
mov byte [esp + 0x30], al
call fcn.004d6230
test eax, eax
jne 0x667c99
test esi, esi
je 0x667bd4
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x6c]
push ebx
call fcn.00647770
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x68]
push edx
push ebx
call fcn.00647790
inc ebx
cmp ebx, ebp
jl 0x667b87
lea ecx, [esp + 0x94]
mov dword [esp + 0x100], 0xffffffff
call fcn.005e5c20
mov ebp, dword [esp + 0x10c]
test ebp, 0x2000
je 0x667c79
test esi, esi
je 0x667c79
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 4]
call fcn.005ed530
test eax, eax
je 0x667c79
mov edi, dword [eax + 0x48]
test edi, edi
je 0x667c79
mov ecx, dword [esi + 0x39c]
cmp ecx, dword [edi + 0x104]
jne 0x667c79
mov edx, dword [esi]
push 0
push 0xff
mov ecx, esi
call dword [edx + 0x98]
test eax, eax
je 0x667c79
mov edx, dword [eax]
mov ebx, dword [edi + 0x184]
mov ecx, eax
call dword [edx + 0x104]
cmp eax, ebx
je 0x667c79
mov eax, dword [esi + 4]
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 4]
push eax
call fcn.005edb80
test eax, eax
je 0x667c79
mov eax, dword [edi + 0x184]
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0x94]
mov eax, 1
mov ecx, dword [esp + 0xf8]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xf4
ret 8
lea ecx, [esp + 0x94]
mov dword [esp + 0x100], 0xffffffff
call fcn.005e5c20
xor eax, eax
jmp 0x667c7e