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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xe88
mov esi, dword [ebp + 8]
mov dword [esp + 0xe3c], 0
lea eax, [esp + 0x5e8]
mov dword [esp], eax
mov dword [esp + 8], 0x800
mov dword [esp + 4], 0
call fcn.007ce3c0
lea eax, [esp + 0x1e8]
mov dword [esp], eax
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
call fcn.007ce3c0
lea eax, [esp + 0xe20]
mov dword [esp], eax
mov dword [esp + 8], 0x1c
mov dword [esp + 4], 0
call fcn.007c51a0
lea eax, [esp + 0xe0c]
mov dword [esp], eax
mov dword [esp + 8], 0x14
mov dword [esp + 4], 0
call fcn.007c51a0
lea eax, [esp + 0xde8]
mov dword [esp], eax
mov dword [esp + 8], 0x20
mov dword [esp + 4], 0
call fcn.007c51a0
lea eax, [esp + 0xe3c]
mov dword [esp + 8], eax
mov dword [esp], esi
mov dword [esp + 4], 0x20
call fcn.004585b0
test eax, eax
jne 0x478804
mov dword [esp], esi
call fcn.0040a2e0
jmp 0x478d6b
mov eax, dword [esp + 0xe3c]
lea ecx, [eax + 0x24]
lea edx, [eax + 0x30]
lea esi, [eax + 0x1c]
lea eax, [eax + 0x28]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.00414a40
call fcn.00455fb0
test eax, eax
jne 0x478a9b
mov dword [esp + 0x190], 7
mov dword [esp + 0x178], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0xa8], eax
mov byte [esp + 0x12f], al
mov byte [esp + 0xd3], al
mov dword [esp + 0xc0], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x180], eax
mov dword [esp + 0x148], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x13c], eax
mov dword [esp + 0x14c], eax
mov dword [esp + 0x15c], ecx
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0xd8], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0x194], eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0xa0], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0x18c], eax
mov dword [esp + 0x16c], eax
mov dword [esp + 0x140], eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x138], ecx
mov dword [esp + 0x158], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x104], eax
mov dword [esp + 0xc8], esi
mov dword [esp + 0x88], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x188], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0x154], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x11c], ecx
mov dword [esp + 0xf8], ecx
mov dword [esp + 0x108], edx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x198], ecx
mov dword [esp + 0xac], edx
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xec], ecx
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0x170], edx
mov dword [esp + 0x128], edx
mov dword [esp + 0xa4], edx
mov dword [esp + 0x60], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0xf0], edx
mov dword [esp + 0x80], edx
mov dword [esp + 0x7c], edx
mov dword [esp + 0xdc], edx
mov dword [esp + 0x94], edx
mov dword [esp + 0x9c], edx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x184], edx
mov dword [esp + 0x3c], ecx
jmp 0x478d73
xor esi, esi
jmp 0x478b0a
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
add esi, eax
mov eax, dword [esp + 0xe3c]
mov eax, dword [eax + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.detach
call fcn.004582d0
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
cmp esi, eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xc0], eax
mov byte [esp + 0x12f], al
mov byte [esp + 0xd3], al
mov dword [esp + 0x100], eax
mov dword [esp + 0x180], eax
mov dword [esp + 0x148], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x13c], eax
mov dword [esp + 0x14c], eax
mov dword [esp + 0x15c], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0x194], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0x18c], eax
mov dword [esp + 0x16c], eax
mov dword [esp + 0x140], eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x138], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x188], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0x154], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0x128], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x9c], eax
jb 0x478aa0
jmp 0x478dc9
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x44], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0xbc], edi
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ebx
mov dword [esp + 0x5c], esi
mov ecx, dword [esp + 0x190]
cmp ecx, 7
mov edx, ecx
jne 0x478e76
mov ecx, 3
sub ecx, edx
xor ecx, edx
mov edx, dword [esp + 0xdc]
mov ecx, dword [esp + 0x184]
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
je 0x478e90
mov dword [esp + 0x48], edi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x184], ecx
mov dword [esp + 0xdc], edx
mov dword [esp + 0x190], 0xa
mov eax, dword [esp + 0xe3c]
mov eax, dword [eax + 0x10]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00459aa0
call fcn.005ae190
mov eax, dword [esp + 0xe3c]
mov dword [esp + 0x34], eax
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x478e50
imul eax, eax
and eax, 3
cmp eax, 2
mov edx, dword [esp + 0xdc]
mov ecx, dword [esp + 0x184]
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x1bc]
mov edi, dword [esp + 0x48]
jb 0x478e90
jmp 0x479544
mov edx, dword [esp + 0xdc]
mov ecx, dword [esp + 0x184]
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x1bc]
mov edi, dword [esp + 0x48]
jmp 0x479544
mov edx, dword [esp + 0xdc]
mov ecx, dword [esp + 0x184]
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x48], edi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x184], ecx
mov dword [esp + 0xdc], edx
mov dword [esp + 0xe20], 0x70000024
mov dword [esp + 0x1b8], 0
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0x190], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x168], eax
jmp 0x479bff
mov edx, dword [esp + 0x34]
cmp dword [edx + 8], 0
jne 0x478f20
mov esi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x190], 0xc
mov edi, dword [esp + 0xbc]
mov ecx, dword [esp + 0x44]
jmp 0x478d73
mov eax, dword [edx + 4]
test eax, eax
je 0x478f58
mov dword [esp + 0x60], eax
mov al, 1
test al, al
je 0x478f5c
mov edi, 4
mov ebx, 3
mov ecx, dword [edx]
mov edx, ecx
and edx, 1
inc edx
xor edx, ecx
sete dl
movzx edx, dl
cmp ecx, edx
jne 0x47c3fc
jmp 0x47a54c
mov dword [esp + 0x60], eax
mov edi, dword [esp + 0xbc]
mov ebx, dword [esp + 0x98]
mov esi, dword [esp + 0x1bc]
xor eax, eax
jmp 0x478fbf
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
add eax, ecx
mov dword [esp + 0xe20], 0x7000003b
mov dword [esp + 0x1b8], 0
mov dword [esp + 0x1b4], 0
mov dword [esp + 0x1c0], 0
xor esi, esi
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x478f80
mov dword [esp + 0x98], ebx
mov dword [esp + 0xbc], edi
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0x190], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x168], eax
jmp 0x47cd01
mov esi, 0xa
mov dword [esp + 0xe54], 0
mov dword [esp + 0xe50], 0
lea eax, [esp + 0xde8]
mov dword [esp], eax
mov dword [esp + 8], 0x20
mov dword [esp + 4], 0
call fcn.007c51a0
mov byte [esp + 0x1e8], 0
lea eax, [esp + 0xe54]
mov dword [esp + 8], eax
lea eax, [esp + 0xe50]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call fcn.0049b210
test eax, eax
mov ebx, dword [esp + 0x18c]
jne 0x4790c9
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x4790c9
mov eax, dword [esp + 0xe54]
mov dword [esp], eax
call fcn.007ca950
test eax, eax
je 0x479103
mov cl, 1
test cl, cl
je 0x479103
mov dword [esp + 0x68], eax
mov ecx, 6
mov dword [esp + 0x128], 0x7000003b
mov esi, dword [esp + 0x160]
mov ebx, dword [esp + 0x19c]
jmp 0x479140
mov dword [esp + 0x128], 0x7000003b
mov dword [esp + 0x150], ebx
mov eax, dword [esp + 0x188]
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0x190], eax
mov ebx, dword [esp + 0x19c]
jmp 0x47cfdf
mov dword [esp + 0x68], eax
mov eax, 0x19
mov dword [esp + 0xde8], 0x15180
mov dword [esp + 0x128], 0x7000003b
mov dword [esp + 0x184], 0
mov ecx, dword [esp + 0x188]
mov edx, dword [esp + 0x198]
jmp 0x47c0b1
cmp ecx, 6
je 0x479153
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
jne 0x47a31e
mov edi, dword [esp + 0x68]
mov dword [esp], edi
call fcn.007aee60
mov dword [esp], eax
mov dword [esp + 4], str.detach
call fcn.007c58b0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x479291
mov dword [esp + 0x160], esi
mov dword [esp], edi
mov dword [esp + 4], str.product
call fcn.006492a0
mov esi, eax
test esi, esi
jne 0x479301
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
je 0x479301
xor edi, edi
jmp 0x4791e2
mov eax, 3
sub eax, edi
xor eax, edi
setne al
movzx eax, al
add edi, eax
mov eax, dword [esp + 0xe54]
mov dword [esp], eax
call fcn.007ca950
mov esi, eax
mov eax, edi
and eax, 1
xor eax, edi
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp edi, eax
jb 0x4791c0
mov dword [esp], esi
mov dword [esp + 4], str.comment
call fcn.006492a0
mov edi, eax
test edi, edi
je 0x479430
mov dword [esp + 0x19c], ebx
xor ebx, ebx
test bl, bl
jne 0x479437
mov dword [esp], edi
call fcn.00649510
test eax, eax
jne 0x479274
mov ecx, 3
sub ecx, eax
xor ecx, eax
jne 0x479288
jmp 0x479274
mov eax, 3
sub eax, ebx
xor eax, ebx
setne al
movzx eax, al
add ebx, eax
mov dword [esp], edi
call fcn.00649510
mov dword [esp + 8], eax
lea eax, [esp + 0x1e8]
mov dword [esp], eax
mov dword [esp + 4], 0x400
call fcn.004959f0
mov eax, ebx
and eax, 1
xor eax, ebx
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp ebx, eax
jb 0x479240
mov dword [esp + 0x44], esi
jmp 0x4794ea
mov dword [esp + 0x160], esi
mov dword [esp], edi
call fcn.007aee60
mov dword [esp], eax
mov dword [esp + 4], str.cancel
call fcn.007c58b0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x4793c4
mov dword [esp + 0x19c], ebx
mov esi, 0xa
mov dword [esp], edi
mov dword [esp + 4], str.hasp
call fcn.006492a0
mov dword [esp + 0x54], eax
mov dword [esp + 0x184], 0x7000003b
test eax, eax
jne 0x47c469
jmp 0x4799c5
mov dword [esp], esi
mov dword [esp + 4], 0
call fcn.006494b0
mov edi, eax
test edi, edi
mov dword [esp + 0x184], 0x7000003b
je 0x4793f9
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 3
je 0x4793f9
mov dword [esp], edi
call fcn.007aee60
mov dword [esp], eax
mov dword [esp + 4], 0x7d6932
call fcn.007c58b0
mov dword [esp + 0x184], 0x7000003b
test eax, eax
jne 0x479445
mov dword [esp], edi
call fcn.00649510
lea ecx, [esp + 0xe4c]
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.007c3f60
mov ecx, dword [esp + 0xe4c]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sete dl
test eax, eax
jne 0x47945d
movzx eax, dl
cmp ecx, eax
je 0x479451
mov dword [esp + 0xdf4], ecx
mov dword [esp + 0x184], 0x7000003b
jmp 0x4791f6
mov edi, 0x12
mov dword [esp + 0x184], 0x7000003b
mov eax, dword [esp + 0x48]
mov dword [esp + 0x190], eax
mov esi, dword [esp + 0xd8]
mov eax, dword [esp + 0x188]
mov ecx, dword [esp + 0x198]
jmp 0x47979b
mov eax, dword [esp + 0x140]
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0x190], eax
mov edi, dword [esp + 0xc0]
mov edx, dword [esp + 0x174]
mov dword [esp + 0x150], 0x15
jmp 0x479469
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x44], esi
mov esi, 9
jmp 0x4794db
mov dword [esp + 0x19c], ebx
jmp 0x4799c5
mov dword [esp + 0x19c], ebx
jmp 0x4799c5
mov dword [esp + 0x19c], ebx
jmp 0x4799c5
cmp dword [esp + 0x150], 6
je 0x4794ba
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x174], edx
mov dword [esp + 0xc0], edi
xor eax, eax
test al, al
mov eax, dword [esp + 0x168]
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x190]
mov dword [esp + 0x130], eax
mov ebx, dword [esp + 0xf4]
je 0x4799c5
jmp 0x47ac03
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x174], edx
mov dword [esp + 0xc0], edi
mov ebx, dword [esp + 0xf4]
jmp 0x47abfc
cmp esi, 9
je 0x4794ea
xor eax, eax
test al, al
je 0x4799c5
mov eax, dword [esp + 0x44]
mov dword [esp], eax
mov dword [esp + 4], str.duration
call fcn.006492a0
test eax, eax
jne 0x479590
mov dword [esp + 0x168], 0x1a
mov dword [esp + 0x190], 5
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov edx, dword [esp + 0xdc]
mov ecx, dword [esp + 0x184]
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x1bc]
mov edi, dword [esp + 0x48]
je 0x4795b8
mov dword [esp + 0x48], edi
mov dword [esp + 0x1bc], esi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x184], ecx
mov dword [esp + 0xdc], edx
mov eax, dword [esp + 0x190]
cmp eax, 5
je 0x479580
imul eax, eax
and eax, 3
cmp eax, 2
jne 0x478eef
mov dword [esp + 0xde8], 0x15180
jmp 0x4799b3
mov dword [esp + 0x168], 0x1a
mov edx, dword [esp + 0xdc]
mov ecx, dword [esp + 0x184]
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x1bc]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x48], edi
mov dword [esp + 0x1bc], esi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x184], ecx
mov dword [esp + 0xdc], edx
cmp dword [esp + 0x168], 0x10
jne 0x479644
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0x190], eax
mov eax, dword [esp + 0x148]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x13c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x120]
mov dword [esp + 0x148], eax
mov ebx, dword [esp + 0x19c]
mov esi, dword [esp + 0x1bc]
jmp 0x47cda9
mov esi, dword [esp + 0x3c]
mov dword [esp], esi
call fcn.00649510
test eax, eax
jne 0x47968b
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x47968b
mov edi, 1
mov dword [esp + 0x184], 0x7000003b
mov cl, byte [esp + 0x12f]
mov eax, dword [esp + 0xe8]
mov esi, dword [esp + 0x1bc]
jmp 0x479720
mov dword [esp], esi
call fcn.00649510
lea ecx, [esp + 0xe4c]
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.007c3f60
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
mov edx, 0x7000003b
cmp eax, ecx
jne 0x479710
xor eax, eax
mov esi, 0x93
add esi, 0xffffff7b
jmp 0x4796f1
inc eax
mov ecx, dword [esp + 0xe4c]
mov dword [esp + 0xde8], ecx
xor edx, edx
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x4796e0
mov dword [esp + 0x184], edx
jmp 0x4794db
mov dword [esp + 0x184], 0x7000003b
jmp 0x4799c5
mov dword [esp + 0xe8], eax
mov byte [esp + 0x12f], cl
mov eax, edi
and eax, 1
xor eax, edi
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp edi, eax
jne 0x47974e
mov dword [esp + 0x1bc], esi
jmp 0x4799c5
mov eax, dword [esp + 0x17c]
mov dword [esp], eax
call fcn.007ca940
test eax, eax
jne 0x479788
mov dword [esp + 0x1bc], esi
mov ecx, 0xe
imul eax, eax
and eax, 3
cmp eax, 2
mov edx, dword [esp + 0x174]
jb 0x47c87f
jmp 0x47a850
mov dword [esp + 0x1bc], esi
mov edx, dword [esp + 0x174]
jmp 0x47a850
mov dword [esp + 0x198], ecx
mov dword [esp + 0x188], eax
mov dword [esp + 0xd8], esi
cmp edi, 6
je 0x4797d2
xor eax, eax
test al, al
jne 0x4797d2
mov dword [esp + 0x19c], ebx
mov eax, dword [esp + 0x190]
mov dword [esp + 0x48], eax
jmp 0x4799c5
lea edi, [esp + 0x1c4]
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0xca0]
add esi, 0xffffffe8
lea eax, [eax + 0xca4]
mov dword [esp], eax
call fcn.007ca940
add eax, 0x18
mov dword [esp + 0xc], edi
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [esp + 8], 0x21
call fcn.0064be40
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x47985d
lea eax, [esp + 0x1c4]
mov dword [esp + 0x58], eax
mov eax, 0xf
mov ecx, dword [esp + 0x1c4]
mov ecx, dword [ecx]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 3
sete dl
movzx edx, dl
cmp ecx, edx
mov ecx, dword [ebp + 8]
jne 0x47a4d2
jmp 0x47a3d5
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x58], edi
mov esi, dword [esp + 0x160]
mov ebx, dword [esp + 0x1a8]
mov edx, dword [esp + 0x178]
mov ecx, dword [esp + 0x1ac]
jmp 0x47a5d3
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.006494b0
mov esi, eax
test esi, esi
je 0x479961
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 3
je 0x47996e
mov dword [esp], esi
call fcn.007aee60
mov dword [esp], eax
mov dword [esp + 4], 0x7d6932
call fcn.007c58b0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x47997b
mov dword [esp], esi
call fcn.00649510
lea ecx, [esp + 0xe40]
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.007c4280
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx edx, cl
mov esi, dword [esp + 0xe40]
mov edi, dword [esp + 0xe44]
mov ecx, esi
and ecx, 1
inc ecx
xor ecx, esi
sete cl
mov dword [esp + 0x184], 0x7000003b
cmp eax, edx
jne 0x479988
mov eax, 5
movzx ecx, cl
xor ecx, esi
mov dword [esp + 0x50], esi
or ecx, edi
mov dword [esp + 0x4c], edi
jne 0x47bfd5
jmp 0x4799c5
mov dword [esp + 0x184], 0x7000003b
jmp 0x4799c5
mov dword [esp + 0x184], 0x7000003b
jmp 0x4799c5
mov dword [esp + 0x184], 0x7000003b
jmp 0x4799c5
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], esi
jmp 0x4799c5
mov dword [esp + 0xdf8], 1
mov eax, dword [esp + 0x50]
mov dword [esp + 0xe00], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xe04], eax
mov dword [esp + 0x184], 0
mov dword [esp + 0x128], eax
xor edi, edi
mov esi, 0x69
add esi, 0xffffff9d
mov ecx, dword [esp + 0x128]
mov ebx, dword [esp + 0x19c]
jmp 0x479a12
mov eax, 3
sub eax, edi
xor eax, edi
setne al
movzx eax, al
add edi, eax
mov eax, dword [esp + 0xe54]
mov ecx, dword [esp + 0xe50]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0049b5b0
mov ecx, dword [esp + 0x184]
mov eax, edi
imul eax, eax
and eax, 3
test edi, edi
je 0x4799e0
cmp eax, 2
je 0x4799e0
mov dword [esp + 0x128], ecx
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0x190], eax
mov edx, dword [esp + 0x158]
cmp esi, 6
jne 0x479a7f
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x158], edx
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
jne 0x479a92
jmp 0x47b9a9
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x158], edx
jmp 0x47b9a9
mov edx, dword [esp + 0x128]
test edx, edx
mov ebx, dword [esp + 0x1b0]
jne 0x479bed
mov eax, 0x1a
mov ecx, 3
sub ecx, edx
xor ecx, edx
je 0x479bed
mov edx, dword [esp + 0x178]
mov ecx, dword [esp + 0x1a4]
mov esi, dword [esp + 0x1a0]
mov dword [esp + 0x1a0], esi
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x178], edx
xor ecx, ecx
cmp eax, 0xf
mov edi, dword [esp + 0xdc]
je 0x479b85
mov edx, eax
and edx, 1
inc edx
xor edx, eax
je 0x479b85
lea eax, [esp + 0xdf8]
mov dword [esp + 0x104], eax
mov edx, dword [esp + 0xdf8]
mov eax, edx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx esi, al
mov eax, dword [ebp + 8]
mov edi, dword [eax]
mov eax, dword [eax + 8]
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
add edi, 0xc
cmp edx, esi
jne 0x479c16
cmp eax, ecx
jne 0x479c32
xor eax, eax
jmp 0x479bc8
mov eax, 0x72
add eax, 0xffffffa6
mov edx, ecx
and edx, 1
xor edx, ecx
cmp edx, 0xffffffff
setne dl
movzx edx, dl
add ecx, edx
mov dword [esp + 0xe20], 0x7000002d
mov edx, ecx
or edx, 2
mov esi, ecx
xor esi, 2
add esi, edx
setne dl
movzx edx, dl
cmp ecx, edx
jb 0x479b60
jmp 0x47b7f8
add ecx, eax
setne cl
movzx ecx, cl
add eax, ecx
movzx ecx, byte [edi]
shl ecx, 0x18
movzx edx, byte [edi + 1]
shl edx, 0x10
or edx, ecx
movzx ecx, byte [edi + 2]
shl ecx, 8
or ecx, edx
movzx esi, byte [edi + 3]
or esi, ecx
mov ecx, eax
not ecx
and ecx, 1
mov edx, eax
add edx, ecx
setne dl
movzx edx, dl
cmp eax, edx
jb 0x479ba0
mov dword [esp + 0xc8], edi
mov dword [esp + 0x78], esi
jmp 0x47c2e9
mov dword [esp + 0xe20], edx
mov dword [esp + 0x1b8], 0
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1ac], eax
jmp 0x479c7a
cmp eax, ecx
jne 0x479c50
mov dword [esp + 0x1b0], ebx
mov eax, 0x12
mov esi, dword [esp + 0x1bc]
jmp 0x47a90e
mov eax, 3
mov ecx, dword [edi]
mov dword [esp + 0xc8], edi
mov dword [esp + 0x78], ecx
mov esi, dword [esp + 0x160]
jmp 0x47c2ca
mov dword [esp + 0x1b0], ebx
mov eax, dword [edi]
mov dword [esp + 0x8c], eax
mov dword [esp + 0xc8], edi
mov eax, dword [esp + 0x150]
mov dword [esp + 0x18c], eax
jmp 0x47a98d
mov dword [esp + 0x1b4], 0
xor ecx, ecx
jmp 0x47bced
mov edi, dword [esp + 0xdf4]
mov eax, dword [esp + 0xe3c]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x6c], eax
mov dword [esp + 0xe64], 0
mov dword [esp + 0xe60], 0
lea eax, [esp + 0xe64]
mov dword [esp + 8], eax
lea eax, [esp + 0xe60]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0049b210
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x479d51
mov dword [esp + 0x88], edi
mov dword [esp + 0x1b0], ebx
lea eax, [esp + 0xe58]
mov dword [esp + 0x64], eax
mov edi, 0x12
mov eax, dword [esp + 0xe64]
mov dword [esp], eax
call fcn.0049c7c0
mov ecx, eax
mov dword [esp + 0x148], ecx
mov dword [esp + 0x134], 0
test ecx, ecx
mov eax, dword [esp + 0x78]
mov dword [esp + 0xf8], eax
mov dword [esp + 0x120], ecx
mov ebx, dword [esp + 0x19c]
jne 0x47cda9
jmp 0x47c9fd
mov dword [esp + 0x1b0], ebx
mov eax, 6
lea ecx, [esp + 0xe58]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x120], 0x70000024
mov dword [esp + 0x134], 0
mov ecx, dword [esp + 0x78]
mov dword [esp + 0xf8], ecx
mov edx, dword [esp + 0x108]
mov ebx, dword [esp + 0xe4]
cmp eax, 6
je 0x479e2a
imul eax, eax
and eax, 3
cmp eax, 3
je 0x479e2a
mov dword [esp + 0xe4], ebx
mov dword [esp + 0x1bc], esi
mov dword [esp + 0x88], edi
mov dword [esp + 0x108], edx
mov dword [esp + 0x78], ecx
mov eax, dword [esp + 0xe0]
lea eax, [eax + 0x10]
mov dword [esp + 0xbc], eax
xor edi, edi
mov eax, dword [esp + 0x150]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x190]
mov dword [esp + 0x198], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x148], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x13c], eax
mov ebx, dword [esp + 0x19c]
jmp 0x47a1c0
mov dword [esp + 0xe4], ebx
mov dword [esp + 0x88], edi
mov dword [esp + 0x108], edx
mov dword [esp + 0x78], ecx
mov eax, dword [esp + 0x120]
mov dword [esp + 0x148], eax
mov ebx, dword [esp + 0x19c]
jmp 0x47cda9
xor eax, eax
test al, al
jne 0x47ca18
mov dword [esp + 0x148], 0
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xe58], eax
mov dword [esp + 0xe5c], edi
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
mov dword [esp], 0x481280
call fcn.00431e80
mov edi, eax
mov dword [esp], edi
call fcn.00430350
test eax, eax
jne 0x479ee5
mov ecx, 0xe
mov edx, eax
or edx, 2
xor eax, 2
add eax, edx
mov dword [esp + 0x38], 0
mov dword [esp + 0x134], edi
mov dword [esp + 0x120], 0
mov dword [esp + 0x13c], edi
mov dword [esp + 0x40], edi
jne 0x47b43e
jmp 0x47cda9
mov dword [esp + 0x38], 0
mov dword [esp + 0x134], edi
mov dword [esp + 0x40], edi
jmp 0x47cda9
mov dword [esp + 0x19c], ebx
mov eax, ecx
or eax, 2
xor ecx, 2
add ecx, eax
mov edi, dword [esp + 0x40]
mov dword [esp + 0x134], edi
mov ecx, dword [esp + 0x1c0]
mov edx, dword [esp + 0x178]
jne 0x47bcef
mov dword [esp + 0x178], edx
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x1bc], esi
mov eax, dword [esp + 0x150]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x190]
mov dword [esp + 0x198], eax
mov dword [esp + 0x134], edi
mov eax, dword [esp + 0x148]
mov dword [esp + 0x108], eax
mov esi, 7
mov eax, dword [esp + 0x13c]
mov dword [esp], eax
call fcn.00430370
mov edi, eax
mov dword [esp + 0xe0], edi
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0041f570
mov dword [esp + 0xfc], 0
test eax, eax
je 0x479fff
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
je 0x479fff
mov dword [esp], eax
mov esi, eax
call fcn.0040d130
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x47a058
mov edi, esi
mov dword [esp + 0x124], esi
mov ebx, dword [esp + 0x108]
jmp 0x47a7d8
mov dword [esp + 0x124], eax
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0x190], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0xcc], eax
mov edx, dword [esp + 0x114]
mov eax, dword [esp + 0x11c]
mov ebx, dword [esp + 0x1b0]
jmp 0x47bae6
mov dword [esp + 0x124], esi
mov esi, dword [esp + 0xe0]
mov eax, dword [esi + 0x1c]
mov ecx, 3
mov edx, 3
sub edx, eax
xor edx, eax
setne dl
movzx edx, dl
add edx, eax
je 0x47a0b5
mov eax, dword [esi + 0x40]
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
sub eax, ecx
cmp eax, 2
ja 0x47a0b5
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x47a0b5
mov ebx, dword [eax*4 + 0x7d852c]
mov edi, dword [esp + 0x124]
jmp 0x47a7d8
add edi, 0x14
cmp dword [esi + 0x14], 0
jne 0x47a13a
xor esi, esi
jmp 0x47a0f0
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x124]
mov dword [esp], eax
call fcn.0041d160
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x47a0d0
mov eax, dword [esp + 0x108]
mov esi, eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x90], edi
mov edi, ecx
mov ecx, dword [esp + 0x124]
mov dword [esp + 0xfc], ecx
mov dword [esp + 0xcc], eax
mov ebx, dword [esp + 0x13c]
jmp 0x47a743
mov eax, 0xb
mov ecx, dword [esp + 0x18c]
mov dword [esp + 0x150], ecx
mov ecx, dword [esp + 0x188]
mov dword [esp + 0x168], ecx
mov ecx, dword [esp + 0x198]
mov dword [esp + 0x190], ecx
mov ecx, dword [esp + 0x148]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x13c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x90], edi
mov ecx, dword [esp + 0x124]
mov dword [esp + 0xfc], ecx
mov edx, dword [esp + 0x108]
mov dword [esp + 0xcc], edx
mov ecx, dword [esp + 0x78]
mov edi, dword [esp + 0x88]
mov ebx, dword [esp + 0xe4]
mov esi, dword [esp + 0x1bc]
jmp 0x479d97
mov dword [esp + 0x48], edi
mov ecx, edi
mov edi, 0x14
mov eax, dword [esp + 0xbc]
mov eax, dword [eax]
mov eax, dword [eax + ecx*4]
mov edx, dword [esp + 0xe0]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.00427270
mov esi, eax
test esi, esi
mov ecx, dword [esp + 0x194]
mov edx, dword [esp + 0x178]
je 0x47a26f
xor eax, eax
test al, al
jne 0x47a26f
mov dword [esp + 0x19c], ebx
mov eax, dword [esp + 0xe64]
mov ecx, dword [esp + 0xf8]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esp + 0xc], 0
call fcn.0049d6c0
mov edi, eax
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx ebx, al
mov dword [esp], esi
call fcn.004234b0
cmp edi, ebx
jne 0x47a27b
mov esi, dword [esp + 0x160]
mov ebx, dword [esp + 0x19c]
mov ecx, 0xd
jmp 0x479140
mov esi, dword [esp + 0x160]
jmp 0x47a305
mov dword [esp + 0x168], 0x10
mov dword [esp + 0x40], 3
mov eax, dword [esp + 0x124]
mov dword [esp], eax
call fcn.0041d160
mov esi, dword [esp + 0x13c]
mov dword [esp], esi
call fcn.004303a0
mov dword [esp], esi
call fcn.00430350
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x134], esi
mov eax, dword [esp + 0x108]
mov dword [esp + 0x120], eax
mov edx, dword [esp + 0xdc]
mov ecx, dword [esp + 0x184]
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x1bc]
mov edi, dword [esp + 0x48]
jne 0x4795b8
jmp 0x47d1c4
cmp edi, 0xe
je 0x47a37d
xor eax, eax
test al, al
jne 0x47a37d
mov dword [esp + 0x178], edx
mov dword [esp + 0x194], ecx
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0xf8]
mov dword [esp + 0x190], edi
mov eax, 0x12
mov ecx, edi
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc edi, 0
mov ecx, dword [esp + 0x90]
cmp edi, dword [ecx]
jae 0x47a3b9
mov dword [esp + 0xf8], edx
mov dword [esp + 0x160], esi
mov ecx, edi
and ecx, 1
xor ecx, edi
not ecx
test ecx, ecx
mov ecx, dword [esp + 0x124]
mov dword [esp + 0xa0], ecx
jne 0x47a1c0
jmp 0x47a3d5
mov dword [esp + 0x178], edx
mov dword [esp + 0x194], ecx
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x160], esi
mov edi, 0x18
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
call fcn.004936c0
mov cl, byte [esp + 0x12f]
jmp 0x47c4bc
mov dword [esp + 0xf8], edx
mov dword [esp + 0x160], esi
mov ecx, dword [esp + 0x124]
mov dword [esp + 0xa0], ecx
cmp eax, 0xf
jne 0x47a421
mov dword [esp + 0x19c], ebx
mov eax, dword [esp + 0x15c]
mov esi, dword [eax + 8]
mov ebx, dword [eax]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x104]
cmp dword [eax], 0
je 0x47a470
mov dword [esp + 8], esi
mov dword [esp + 4], ecx
mov dword [esp], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x47d430
call fcn.00430750
jmp 0x47a4c6
xor esi, esi
mov edi, dword [esp + 0xa0]
jmp 0x47a439
inc esi
mov dword [esp], edi
call fcn.0041d160
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp esi, eax
jb 0x47a430
mov dword [esp + 0x19c], ebx
mov esi, dword [esp + 0x108]
mov ebx, dword [esp + 0x13c]
mov edi, dword [esp + 0x190]
jmp 0x47a743
mov dword [esp + 0x1ac], ecx
xor edi, edi
jmp 0x47a4b1
xor eax, edi
setne al
movzx eax, al
add edi, eax
mov dword [esp + 8], esi
mov eax, dword [esp + 0x1ac]
mov dword [esp + 4], eax
mov dword [esp], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x47d3f0
call fcn.00430750
mov eax, 3
sub eax, edi
mov ecx, edi
xor ecx, eax
setne cl
movzx ecx, cl
cmp edi, ecx
jb 0x47a480
mov ebx, dword [ebp + 8]
mov ecx, ebx
mov ebx, dword [esp + 0x19c]
mov dword [esp + 0x19c], ebx
mov edi, 2
mov eax, dword [esp + 0x58]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x21
call fcn.00458d20
mov ecx, dword [esp + 0x1c4]
test ecx, ecx
jne 0x47a53a
mov eax, 3
sub eax, ecx
xor eax, ecx
mov dword [esp + 0x98], ecx
mov eax, dword [esp + 0x190]
mov dword [esp + 0x48], eax
jne 0x47a5ac
jmp 0x47a54c
mov dword [esp + 0x98], ecx
mov eax, dword [esp + 0x190]
mov dword [esp + 0x48], eax
xor esi, esi
cmp edi, 2
mov edi, dword [esp + 0xbc]
mov ebx, dword [esp + 0x98]
je 0x47a58e
xor eax, eax
test al, al
je 0x478f6a
jmp 0x47a58e
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
adc esi, 0
mov dword [esp], ebx
mov dword [esp + 4], 0x21
call fcn.0064bf00
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x47a570
mov eax, dword [esp + 0x48]
mov dword [esp + 0x190], eax
mov dword [esp + 0x1c4], 0
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a0], eax
mov esi, dword [esp + 0x160]
mov ebx, dword [esp + 0x1a8]
xor eax, eax
mov edi, 0x41
add edi, 0xffffffc6
mov dword [esp + 0x40], edi
jmp 0x47a621
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
add eax, ecx
mov dword [esp + 0x1a4], 0
mov edx, ebx
mov ecx, dword [esp + 0x1b0]
mov dword [esp + 0x1a0], ecx
mov ecx, esi
mov dword [esp + 0x1ac], ecx
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, 1
cmp eax, ecx
jb 0x47a5f0
mov dword [esp + 0x1a8], ebx
mov eax, dword [esp + 0x190]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0x190], eax
mov ecx, dword [esp + 0x1c0]
cmp dword [esp + 0x40], 7
jne 0x47a6c3
mov dword [esp + 0x178], edx
mov dword [esp + 0x1c0], ecx
mov eax, dword [esp + 0x150]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x190]
mov dword [esp + 0x198], ecx
mov ebx, dword [esp + 0x1b0]
jmp 0x47be29
mov dword [esp + 0x178], edx
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x160], esi
mov eax, dword [esp + 0x154]
mov dword [esp], eax
call fcn.0041d160
mov esi, dword [esp + 0x168]
mov dword [esp], esi
call fcn.004303a0
mov dword [esp], esi
call fcn.00430350
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov ecx, esi
mov eax, dword [esp + 0x190]
mov dword [esp + 0x18c], eax
mov ebx, esi
mov dword [esp + 0x130], eax
mov esi, dword [esp + 0x14c]
mov edi, dword [esp + 0x16c]
je 0x47ab48
jmp 0x47b0cf
mov dword [esp + 0x13c], ebx
mov dword [esp + 0x148], esi
mov dword [esp], ebx
call fcn.004304c0
mov dword [esp], ebx
call fcn.00430350
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0x190], eax
mov dword [esp + 0x48], edi
mov edi, ebx
mov dword [esp + 0x120], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x134], ebx
mov ebx, 9
mov esi, dword [esp + 0x1bc]
mov ecx, dword [esp + 0x1c0]
mov edx, dword [esp + 0x178]
je 0x479f2d
jmp 0x47cc72
xor esi, esi
jmp 0x47a7fc
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add esi, eax
mov dword [esp], edi
call fcn.0041d160
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x47a7e0
mov dword [esp + 0xfc], edi
mov esi, ebx
mov dword [esp + 0xcc], ebx
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 0x13c]
jmp 0x47a743
xor edx, edx
test dl, dl
jne 0x47ce79
test cl, 1
mov byte [esp + 0x12f], cl
mov dword [esp + 0x118], 0
je 0x47a8cf
xor esi, esi
mov ebx, 0x51
add ebx, 0xffffffca
mov edi, dword [esp + 0x118]
jmp 0x47a892
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
add esi, eax
mov edi, dword [esp + 0x17c]
mov dword [esp], edi
call fcn.0041d290
xor edx, edx
test esi, esi
jne 0x47a8a1
mov eax, 3
sub eax, esi
xor eax, esi
jne 0x47a870
mov dword [esp + 0x118], edi
mov eax, dword [esp + 0x188]
mov dword [esp + 0x188], eax
cmp ebx, 0xb
mov ebx, dword [esp + 0x18c]
mov esi, dword [esp + 0x198]
mov ecx, eax
je 0x47c1ba
mov dword [esp + 0x174], edx
mov eax, dword [esp + 0x118]
mov dword [esp + 0x1a8], eax
mov eax, edx
mov ecx, dword [esp + 0x138]
mov edx, dword [esp + 0x158]
mov edi, dword [esp + 0x16c]
mov esi, dword [esp + 0x198]
mov ebx, dword [esp + 0x19c]
jmp 0x47b2ed
cmp eax, 0x10
jne 0x47a91f
mov dword [esp + 0xc8], edi
jmp 0x47ab19
xor eax, eax
mov ebx, dword [esp + 0x150]
jmp 0x47a960
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
add eax, ecx
movzx ecx, byte [edi]
shl ecx, 0x18
movzx edx, byte [edi + 1]
shl edx, 0x10
or edx, ecx
movzx ecx, byte [edi + 2]
shl ecx, 8
or ecx, edx
movzx edx, byte [edi + 3]
or edx, ecx
mov ecx, eax
imul ecx, ecx
and ecx, 3
test eax, eax
je 0x47a930
cmp ecx, 3
je 0x47a930
mov dword [esp + 0x1bc], esi
mov dword [esp + 0x8c], edx
mov dword [esp + 0xc8], edi
mov dword [esp + 0x18c], ebx
mov eax, dword [esp + 0x190]
mov dword [esp + 0x198], eax
mov edi, dword [esp + 0xe00]
mov ebx, dword [esp + 0xe04]
mov eax, dword [esp + 0xe3c]
mov ecx, dword [eax + 0xc]
mov esi, dword [eax + 0x10]
mov dword [esp + 0xe80], 0
mov dword [esp + 0xe7c], 0
lea eax, [esp + 0xe80]
mov dword [esp + 8], eax
lea eax, [esp + 0xe7c]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0049b210
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x47aa97
mov eax, dword [esp + 0xe80]
mov dword [esp], eax
call fcn.0049c7c0
test eax, eax
jne 0x47aad3
mov dword [esp + 0xe68], esi
mov dword [esp + 0xe74], ebx
mov dword [esp + 0xe70], edi
lea eax, [esp + 0xe68]
mov dword [esp + 4], eax
mov dword [esp], 0x4812f0
call fcn.00431e80
mov esi, eax
mov dword [esp + 0x168], esi
mov dword [esp], esi
call fcn.00430350
mov edx, 0x18
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
mov dword [esp + 0x130], 0
cmp eax, ecx
mov ecx, esi
mov ebx, esi
mov esi, dword [esp + 0x14c]
mov edi, dword [esp + 0x16c]
jne 0x47b327
jmp 0x47ab2c
mov dword [esp + 0x130], 0x70000024
xor ebx, ebx
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0x190], eax
mov esi, dword [esp + 0x14c]
mov edi, dword [esp + 0x16c]
jmp 0x47b0cf
mov dword [esp + 0x130], eax
mov ecx, 0xc
mov dword [esp + 0x140], 0
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0x190], eax
mov edi, dword [esp + 0x16c]
mov edx, dword [esp + 0x154]
jmp 0x47bb75
mov ecx, dword [esp + 0x1c0]
mov edx, dword [esp + 0x178]
jmp 0x47bcef
mov eax, dword [esp + 0x130]
mov dword [esp + 0x190], eax
mov ecx, dword [esp + 0x168]
mov dword [esp + 0x18c], eax
mov ebx, esi
mov dword [esp + 0x188], ecx
mov dword [esp], ecx
call fcn.00430370
mov esi, eax
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0041f570
test eax, eax
jne 0x47aba1
mov edx, eax
or edx, 2
mov ecx, eax
xor ecx, 2
add ecx, edx
je 0x47aba1
mov dword [esp + 0xd4], esi
mov dword [esp + 0x14c], ebx
xor ebx, ebx
mov esi, dword [esp + 0x18c]
mov dword [esp + 0x198], esi
jmp 0x47ae6d
mov dword [esp], eax
mov dword [esp + 0xf4], eax
call fcn.0040b670
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x47acff
mov dword [esp + 0x16c], edi
mov dword [esp + 0xd4], esi
mov dword [esp + 0x14c], ebx
xor ebx, ebx
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x198], eax
mov eax, dword [esp + 0x190]
mov dword [esp + 0x190], eax
mov eax, dword [esp + 0x154]
mov dword [esp], eax
call fcn.0040b670
test eax, eax
mov esi, dword [esp + 0x198]
je 0x47ac2a
mov al, 1
test al, al
jne 0x47ac56
mov ebx, dword [esp + 0x154]
cmp dword [ebx + 0x9c], 0
mov dword [esp + 0x18c], esi
jne 0x47ac56
mov eax, dword [esp + 0x154]
mov ebx, eax
mov edi, dword [esp + 0x16c]
jmp 0x47ae6d
mov edi, dword [esp + 0xd4]
mov eax, dword [edi + 0x1c]
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
add ecx, eax
je 0x47ad6a
mov eax, dword [edi + 0x40]
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
sub eax, ecx
cmp eax, 2
ja 0x47ad6a
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x47ad6a
xor ecx, ecx
mov edi, dword [esp + 0x16c]
mov esi, dword [esp + 0x18c]
jmp 0x47acdf
mov edx, ecx
not edx
and edx, 1
add edx, ecx
setne dl
movzx edx, dl
add ecx, edx
mov esi, dword [eax*4 + 0x7d852c]
mov ebx, dword [esp + 0x154]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sbb edx, edx
and edx, 1
cmp ecx, edx
jb 0x47acc0
mov eax, dword [esp + 0x154]
jmp 0x47ae6d
mov dword [esp + 0x16c], edi
mov dword [esp + 0xd4], esi
mov dword [esp + 0x14c], ebx
mov esi, 0xe
mov dword [esp + 0x150], 6
mov edi, dword [esp + 0xf4]
mov dword [esp], edi
call fcn.0040b8d0
test eax, eax
mov dword [esp + 0x154], edi
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x198], eax
mov edi, dword [esp + 0xc0]
mov edx, dword [esp + 0x174]
mov ebx, dword [esp + 0x19c]
jne 0x479469
jmp 0x47c939
lea eax, [edi + 0xc]
mov dword [esp + 0x5c], eax
lea eax, [edi + 0x14]
mov dword [esp + 0x74], eax
mov eax, dword [edi + 0x14]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x47ae08
xor edi, edi
mov ecx, dword [esp + 0x110]
jmp 0x47adbf
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 2
adc edi, 0
mov eax, dword [esp + 0x154]
mov dword [esp], eax
call fcn.0041d160
mov ecx, esi
mov eax, edi
not eax
and eax, 1
add eax, edi
setne al
movzx eax, al
cmp edi, eax
jb 0x47ada0
mov dword [esp + 0x110], ecx
mov dword [esp + 0xf4], ebx
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x150], eax
mov ebx, dword [esp + 0x188]
mov dword [esp + 0x190], esi
mov edi, dword [esp + 0x16c]
jmp 0x47aecc
mov eax, 3
mov dword [esp + 0xf4], ebx
mov ecx, dword [esp + 0x18c]
mov dword [esp + 0x150], ecx
mov ecx, dword [esp + 0x168]
mov dword [esp + 0x140], ecx
mov ecx, dword [esp + 0x190]
mov dword [esp + 0x130], ecx
mov ecx, dword [esp + 0x188]
mov dword [esp + 0x168], ecx
mov dword [esp + 0x190], esi
lea ecx, [edi + 0x10]
mov dword [esp + 0x14c], ecx
mov dword [esp + 0xb8], 0
jmp 0x47b920
mov dword [esp + 0x18c], esi
mov dword [esp + 0x16c], edi
mov dword [esp + 0x154], eax
mov edi, 8
mov dword [esp], ebx
call fcn.0041d160
mov eax, dword [esp + 0x174]
mov dword [esp + 0xf4], ebx
mov dword [esp + 0x110], esi
mov ecx, dword [esp + 0x168]
mov dword [esp + 0x140], ecx
mov ecx, dword [esp + 0x190]
mov dword [esp + 0x130], ecx
mov cl, byte [esp + 0x12f]
jmp 0x47ce69
mov esi, dword [esp + 0x14c]
mov dword [esp], ebx
call fcn.004304c0
mov dword [esp], ebx
call fcn.00430350
test eax, eax
jne 0x47af11
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
mov eax, dword [esp + 0x110]
mov dword [esp + 0x130], eax
mov dword [esp + 0x168], ebx
jne 0x47ab2c
jmp 0x47b0cf
mov dword [esp + 0x168], ebx
mov eax, dword [esp + 0x110]
mov dword [esp + 0x130], eax
jmp 0x47b0cf
mov edi, ebx
mov dword [esp + 0x11c], eax
mov dword [esp + 0x40], 0xb
mov eax, dword [esp + 0xe80]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], edx
mov dword [esp + 0xc], 0
mov ebx, edx
mov dword [esp + 0x114], ebx
call fcn.0049d6c0
mov esi, eax
mov dword [esp], ebx
call fcn.004234b0
test esi, esi
jne 0x47afae
mov dword [esp + 0x1b0], edi
mov ebx, 0x14
imul esi, esi
and esi, 3
cmp esi, 2
mov esi, dword [esp + 0x160]
mov ecx, dword [esp + 0x1c0]
mov edx, dword [esp + 0x178]
jb 0x47b97e
jmp 0x47a67f
mov dword [esp + 0x1b0], edi
mov esi, dword [esp + 0x160]
mov ecx, dword [esp + 0x1c0]
mov edx, dword [esp + 0x178]
jmp 0x47a67f
mov dword [esp + 0x154], edx
mov dword [esp + 0x16c], edi
imul eax, eax
and eax, 3
cmp eax, 3
mov esi, dword [esp + 0x1bc]
mov ecx, dword [esp + 0x1c0]
mov edx, dword [esp + 0x178]
je 0x47bcef
mov dword [esp + 0x178], edx
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x1bc], esi
mov esi, dword [esp + 0xac]
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx edx, al
add edx, esi
mov eax, dword [esp + 0x74]
cmp edx, dword [eax]
jae 0x47b069
mov eax, edx
or eax, 2
mov ecx, edx
mov dword [esp + 0xb8], edx
xor ecx, 2
add ecx, eax
mov edi, dword [esp + 0x154]
mov esi, dword [esp + 0x14c]
mov eax, dword [esp + 0x140]
jne 0x47ba7e
jmp 0x47b07e
mov dword [esp + 0xb8], edx
mov edi, dword [esp + 0x154]
mov esi, dword [esp + 0x14c]
mov dword [esp + 0x14c], esi
xor esi, esi
mov ecx, dword [esp + 0x110]
mov ebx, dword [esp + 0x168]
jmp 0x47b0b0
inc esi
mov dword [esp], edi
call fcn.0041d160
mov ecx, dword [esp + 0x190]
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x47b0a0
mov dword [esp + 0x110], ecx
jmp 0x47aecc
mov eax, dword [esp + 0xe80]
mov ecx, dword [esp + 0xe7c]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0049b5b0
test ebx, ebx
setne cl
je 0x47b153
mov dword [esp + 0x16c], edi
mov byte [esp + 0xd3], cl
mov dword [esp + 0x14c], esi
mov esi, 0x1a
mov dword [esp], ebx
call fcn.007ca940
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0xe4], ebx
mov dword [esp + 0x140], ebx
mov eax, dword [esp + 0x130]
mov dword [esp + 0xec], eax
mov ebx, dword [esp + 0x1b0]
mov edi, dword [esp + 0xdc]
jne 0x47b1ca
jmp 0x47b7b6
mov dword [esp + 0x16c], edi
mov dword [esp + 0x14c], esi
mov dword [esp + 0xe4], ebx
mov dword [esp + 0x140], ebx
mov esi, dword [esp + 0x130]
mov ebx, dword [esp + 0x1b0]
mov edi, dword [esp + 0xdc]
mov edx, dword [esp + 0x158]
mov eax, 0xe
test esi, esi
jne 0x47b27c
mov dword [esp + 0xec], esi
mov dword [esp + 0x138], 0
mov eax, 4
test cl, 1
mov byte [esp + 0xd3], cl
mov dword [esp + 0x158], 0
je 0x47c229
mov dword [esp + 0x1b0], ebx
mov dword [esp + 0xdc], edi
xor edi, edi
mov esi, 0x13
xor esi, 0xca
add esi, 0xffffff39
mov ecx, dword [esp + 0x138]
mov edx, dword [esp + 0x158]
mov ebx, dword [esp + 0xe4]
jmp 0x47b22e
mov eax, edi
and eax, 1
xor eax, edi
cmp eax, 0xffffffff
setne al
movzx eax, al
add edi, eax
mov dword [esp], ebx
call fcn.0041d290
xor edx, edx
mov ecx, ebx
test edi, edi
jne 0x47b23f
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 1
jbe 0x47b210
mov dword [esp + 0x158], edx
mov dword [esp + 0x138], ecx
mov eax, dword [esp + 0x150]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x190]
mov dword [esp + 0x198], ecx
mov edx, dword [esp + 0x174]
jmp 0x47d30a
mov dword [esp + 0x1b0], ebx
mov dword [esp + 0xec], esi
mov byte [esp + 0xd3], cl
mov dword [esp + 0xdc], edi
mov ebx, dword [esp + 0x19c]
jmp 0x47b6ee
mov dword [esp + 0x188], eax
mov dword [esp + 0x174], edx
imul esi, esi
and esi, 3
cmp esi, 2
mov esi, dword [esp + 0x198]
mov ebx, dword [esp + 0x19c]
jb 0x47c393
mov ecx, dword [esp + 0x138]
mov dword [esp + 0x1a8], ecx
mov edx, dword [esp + 0x158]
mov eax, edx
mov edi, dword [esp + 0x16c]
mov dword [esp + 0x158], edx
mov dword [esp + 0x138], ecx
mov edx, 0xf
test eax, eax
jne 0x47b366
mov dword [esp + 0x198], esi
mov dword [esp + 0x19c], ebx
mov esi, dword [esp + 0x14c]
mov ebx, dword [esp + 0x140]
mov ecx, dword [esp + 0x188]
cmp edx, 0xf
je 0x47b465
mov eax, edx
and eax, 1
inc eax
xor eax, edx
je 0x47b465
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x150], eax
mov dword [esp + 0x168], ecx
mov eax, dword [esp + 0x198]
mov dword [esp + 0x190], eax
jmp 0x47b0cf
mov dword [esp + 0x198], esi
mov dword [esp + 0x16c], edi
mov dword [esp + 0x19c], ebx
xor edx, edx
mov ecx, 0x47
add ecx, 0xffffffc1
or eax, 0x70000000
mov edi, dword [esp + 0x1b4]
jmp 0x47b3e1
mov esi, edx
or esi, 2
mov edi, edx
xor edi, 2
add edi, esi
setne bl
movzx esi, bl
add edx, esi
mov dword [esp + 0xe20], eax
xor edi, edi
mov esi, dword [esp + 0x1a8]
mov dword [esp + 0x1b8], esi
mov dword [esp + 0x1c0], 0
mov dword [esp + 0x1bc], 0
mov esi, edx
not esi
and esi, 1
add esi, edx
setne bl
movzx esi, bl
cmp edx, esi
jb 0x47b3a0
mov dword [esp + 0x1b4], edi
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0x190], eax
mov eax, dword [esp + 0x134]
mov dword [esp + 0x40], eax
mov ebx, dword [esp + 0x19c]
mov esi, dword [esp + 0x1bc]
cmp ecx, 8
je 0x479efd
mov dword [esp + 0x19c], ebx
mov ecx, dword [esp + 0x1c0]
mov edx, dword [esp + 0x178]
mov edi, dword [esp + 0x40]
jmp 0x479f2d
mov dword [esp + 0x188], ecx
mov dword [esp + 0x140], ebx
mov dword [esp + 0x16c], edi
mov dword [esp + 0x14c], esi
mov ebx, 0xf
mov esi, 4
mov eax, dword [esp + 0x1a8]
mov dword [esp], eax
call fcn.007ca940
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov cl, byte [esp + 0x12f]
jne 0x47c535
jmp 0x47ceaf
mov dword [esp + 0xe20], 0x70000032
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0x190], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x168], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1ac], eax
mov eax, dword [esp + 0x1a8]
mov dword [esp + 0x1b8], eax
jmp 0x479c7a
mov byte [esp + 0x12f], cl
mov ebx, dword [esp + 0x1a8]
mov dword [esp], ebx
call fcn.007ca940
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jbe 0x47b5ae
xor eax, eax
mov edx, dword [esp + 0x1b4]
mov esi, dword [esp + 0x1bc]
jmp 0x47b58f
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc eax, 0
mov dword [esp + 0xe20], 0x7000003c
xor edx, edx
mov dword [esp + 0x1b8], ebx
mov dword [esp + 0x1c0], 0
xor esi, esi
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x47b560
mov dword [esp + 0x1b4], edx
jmp 0x478fe3
mov esi, 0x13
mov dword [esp], ebx
call fcn.00430370
mov dword [esp + 0x15c], eax
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.0041f570
test eax, eax
mov edi, dword [esp + 0x16c]
jne 0x47b664
mov ecx, eax
mov dword [esp + 0x1b0], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 1
ja 0x47b66b
mov eax, 7
mov dword [esp + 0xe20], 0x7000003d
mov dword [esp + 0x1b4], 0
mov ecx, dword [esp + 0x18c]
mov dword [esp + 0x150], ecx
mov ecx, dword [esp + 0x198]
mov dword [esp + 0x190], ecx
mov ecx, dword [esp + 0x188]
mov dword [esp + 0x168], ecx
mov dword [esp + 0x1b8], ebx
mov dword [esp + 0x1c0], 0
mov dword [esp + 0x1bc], 0
mov edx, dword [esp + 0x154]
jmp 0x47bbd6
mov dword [esp + 0x1b0], eax
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0x190], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x168], eax
mov ecx, dword [esp + 0x138]
mov edx, dword [esp + 0x158]
mov ebx, dword [esp + 0x19c]
jmp 0x47b722
xor eax, eax
test al, al
jne 0x47b727
mov dword [esp + 0x138], ecx
mov esi, 0x13
mov eax, dword [esp + 0x104]
mov ecx, dword [eax]
test ecx, ecx
jne 0x47bbf9
mov dword [esp + 0x16c], edi
mov eax, 0xb
mov edi, edx
mov edx, ecx
not edx
and edx, 1
add edx, ecx
mov edx, edi
je 0x479a5b
cmp eax, 0xb
je 0x47b764
imul eax, eax
and eax, 3
cmp eax, 2
je 0x47b764
mov esi, 0xa
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
call fcn.004303e0
xor ecx, ecx
mov edx, dword [esp + 0xec]
mov edi, dword [esp + 0x16c]
cmp esi, 0xa
jne 0x47b6ac
mov dword [esp + 0x16c], edi
mov dword [esp + 0x158], edx
mov dword [esp + 0x138], ecx
mov eax, dword [esp + 0x150]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 0x188], eax
mov esi, dword [esp + 0x190]
jmp 0x47b2cf
mov eax, dword [esp + 0xe3c]
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x47bc1f
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x158], edx
mov dword [esp + 0x84], eax
mov esi, 0xc
mov eax, ecx
mov dword [esp + 0xd8], ecx
imul eax, eax
and eax, 3
cmp eax, 3
mov edi, dword [esp + 0xdc]
mov ebx, dword [esp + 0x1b0]
je 0x47bc49
cmp esi, 0xc
mov edx, dword [esp + 0x158]
jne 0x47b8ac
imul esi, esi
and esi, 3
cmp esi, 2
jae 0x47b8ac
mov eax, 0xa
mov ecx, dword [esp + 0x84]
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x47b7f8
mov edx, ecx
or edx, 2
xor ecx, 2
add ecx, edx
jne 0x47bc49
mov dword [esp + 0xdc], edi
cmp eax, 0xa
jne 0x47b8bf
lea edx, [ebx + 0x68]
lea eax, [esp + 0xe0c]
mov dword [esp], eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 9
mov ecx, dword [esp + 0xd8]
call fcn.00486290
test eax, eax
mov ecx, dword [esp + 0x1a8]
je 0x47b8f5
mov dword [esp + 0xe20], eax
mov dword [esp + 0x1b4], 0
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1b8], ecx
mov ecx, ebx
mov dword [esp + 0x1b0], ebx
jmp 0x47bced
mov cl, byte [esp + 0xd3]
mov esi, dword [esp + 0xec]
jmp 0x47b18b
mov dword [esp + 0x1b0], ebx
mov eax, dword [esp + 0x150]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x190]
mov dword [esp + 0x198], eax
jmp 0x47d1ff
mov dword [esp + 0x1b0], ebx
mov eax, 2
mov ecx, dword [esp + 0x104]
mov ecx, dword [ecx]
mov edx, ecx
and edx, 1
inc edx
xor edx, ecx
sete dl
movzx edx, dl
cmp ecx, edx
jne 0x47b9a9
cmp eax, 2
jne 0x47ba69
mov ebx, 0xe
mov eax, dword [esp + 0x15c]
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x1b0]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
lea eax, [esp + 0x5e8]
mov dword [esp], eax
mov dword [esp + 8], str.___haspscope__n_____vendor_id__d___n_______product_id__d____n_______vendor__n____haspscope__n
mov dword [esp + 4], 0x800
call fcn.0064a2d0
mov esi, dword [esp + 0x160]
mov ecx, dword [esp + 0x1c0]
mov edx, dword [esp + 0x178]
mov dword [esp + 0x160], esi
cmp ebx, 0xe
mov esi, dword [esp + 0x1bc]
jne 0x47b001
imul ebx, ebx
and ebx, 3
cmp ebx, 2
jb 0x47ba27
jmp 0x47b001
xor esi, esi
lea edi, [esp + 0x5e8]
jmp 0x47b9fd
xor eax, esi
setne al
movzx eax, al
add esi, eax
mov ecx, dword [esp + 0x1b0]
mov eax, dword [ecx + 0xb0]
mov ecx, dword [ecx + 0xb4]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov dword [esp], edi
mov dword [esp + 8], str.___haspscope__n_____hasp_id__llu_____n____haspscope__n
mov dword [esp + 4], 0x800
call fcn.0064a2d0
mov eax, 3
sub eax, esi
mov ecx, esi
xor ecx, eax
setne cl
movzx ecx, cl
cmp esi, ecx
jb 0x47b9c0
mov esi, dword [esp + 0x1bc]
mov ecx, dword [esp + 0x1c0]
mov edx, dword [esp + 0x178]
mov dword [esp + 0x1bc], esi
mov eax, dword [esp + 0x15c]
lea esi, [eax + 0xc]
mov eax, dword [esp + 0x104]
cmp dword [eax], 0
je 0x47bba7
mov dword [esp + 0x178], edx
mov dword [esp + 0x1c0], ecx
mov edi, dword [esp + 0xdc]
mov ebx, dword [esp + 0x19c]
jmp 0x47c13c
mov esi, dword [esp + 0x14c]
mov edi, dword [esp + 0x16c]
mov eax, dword [esp + 0x140]
mov dword [esp + 0x140], eax
mov dword [esp + 0x16c], edi
mov dword [esp + 0x14c], esi
mov edi, 0x1c
mov eax, esi
mov esi, 3
mov eax, dword [eax]
mov ebx, dword [esp + 0xb8]
mov eax, dword [eax + ebx*4]
mov edx, dword [esp + 0xd4]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.00427270
mov edx, eax
test edx, edx
mov dword [esp + 0xac], ebx
mov ebx, dword [esp + 0x1b0]
mov eax, dword [esp + 0x11c]
jne 0x47c6da
mov dword [esp + 0x11c], eax
mov dword [esp + 0x114], edx
cmp esi, 3
je 0x47bb43
xor eax, eax
test al, al
jne 0x47bb43
mov dword [esp + 0x1b0], ebx
mov eax, dword [esp + 0x150]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x190]
mov dword [esp + 0x198], eax
mov edi, dword [esp + 0xfc]
mov ebx, dword [esp + 0xcc]
jmp 0x47a7d8
mov dword [esp + 0x1b0], ebx
mov ecx, 0xf
mov eax, 0x17
mov edx, dword [esp + 0x5c]
mov edx, dword [edx]
mov esi, edx
and esi, 1
inc esi
xor esi, edx
sete bl
movzx esi, bl
cmp edx, esi
mov edx, dword [esp + 0x154]
mov edi, edx
jne 0x47bbd6
cmp ecx, 0xc
je 0x47bc05
mov dword [esp + 0x154], edx
imul ecx, ecx
and ecx, 3
cmp ecx, 3
mov esi, dword [esp + 0x14c]
mov ebx, dword [esp + 0x140]
jne 0x47b07e
jmp 0x47b0cf
mov dword [esp + 0x178], edx
mov dword [esp + 0x1c0], ecx
mov ecx, 0xc
cmp dword [esi], 0
mov edi, dword [esp + 0xdc]
mov ebx, dword [esp + 0x19c]
jne 0x47c13c
jmp 0x47c619
cmp eax, 7
jne 0x47afcf
mov dword [esp + 0x154], edx
mov dword [esp + 0x16c], edi
mov esi, dword [esp + 0x1bc]
jmp 0x47ab19
mov dword [esp + 0x16c], edi
jmp 0x479a5b
mov dword [esp + 0x154], edx
mov esi, dword [esp + 0x14c]
mov ebx, dword [esp + 0x140]
jmp 0x47b0cf
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x158], edx
mov dword [esp + 0xd8], ecx
mov dword [esp + 0x84], eax
mov edi, dword [esp + 0xdc]
mov ebx, dword [esp + 0x1b0]
mov eax, ebx
mov dword [esp + 0xdc], edi
xor ecx, ecx
mov edx, 0x92
xor edx, 0x82
mov dword [esp + 0x198], edx
mov edi, dword [esp + 0xc8]
mov esi, dword [esp + 0x1a8]
mov ebx, dword [esp + 0x1b8]
jmp 0x47bcb8
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
adc ecx, 0
mov dword [esp + 0xe20], 0x7000003a
mov dword [esp + 0x1b4], 0
mov ebx, esi
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1bc], 0
mov edx, ecx
and edx, 1
xor edx, ecx
cmp edx, 0xffffffff
setne dl
movzx edx, dl
cmp ecx, edx
jb 0x47bc80
mov dword [esp + 0x1b8], ebx
mov dword [esp + 0x1b0], eax
mov esi, dword [esp + 0x1bc]
mov eax, dword [esp + 0x198]
jmp 0x47a90e
xor esi, esi
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x1bc], esi
xor edi, edi
mov eax, 0x68
add eax, 0xffffff9f
mov dword [esp + 0x198], eax
lea ebx, [esp + 0xe20]
mov ecx, dword [esp + 0x1a4]
mov esi, dword [esp + 0x1a0]
jmp 0x47bdab
mov eax, edi
or eax, 2
mov ecx, edi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add edi, eax
mov eax, dword [esp + 0xe20]
mov dword [esp + 4], eax
mov esi, dword [ebp + 8]
mov dword [esp], esi
call fcn.004582b0
mov dword [esp + 4], ebx
mov dword [esp], esi
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x21
call fcn.00458d20
mov edx, dword [esp + 0x1b8]
mov ecx, dword [esp + 0x1b4]
mov eax, dword [esp + 0x1c0]
mov esi, eax
mov eax, dword [esp + 0x1bc]
mov dword [esp + 0x1ac], eax
mov eax, edi
not eax
and eax, 1
add eax, edi
setne al
movzx eax, al
cmp edi, eax
jb 0x47bd30
mov ebx, dword [esp + 0x1b0]
mov edi, dword [esp + 0x198]
cmp edi, 7
jne 0x47bee2
mov dword [esp + 0x1a0], esi
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x178], edx
mov eax, edi
and eax, 1
xor eax, edi
not eax
test eax, eax
mov eax, dword [esp + 0x150]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x190]
mov dword [esp + 0x198], ecx
mov esi, dword [esp + 0x160]
je 0x47d101
mov dword [esp + 0x188], eax
call fcn.005aece0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.0049b5b0
mov eax, dword [esp + 0xe0c]
test eax, eax
je 0x47bea5
mov dword [esp + 0x1b0], ebx
mov edi, 0xe
mov dword [esp + 0xb4], eax
imul eax, eax
and eax, 3
cmp eax, 2
mov edx, dword [esp + 0x178]
mov dword [esp + 0x10c], edx
mov eax, dword [esp + 0x1a4]
mov dword [esp + 0xc4], eax
mov ebx, dword [esp + 0x1a0]
mov ecx, dword [esp + 0x1ac]
jne 0x47a305
jmp 0x47c83b
mov dword [esp + 0x1b0], ebx
mov dword [esp + 0xb4], eax
mov edx, dword [esp + 0x178]
mov dword [esp + 0x10c], edx
mov eax, dword [esp + 0x1a4]
mov dword [esp + 0xc4], eax
mov ebx, dword [esp + 0x1a0]
mov ecx, dword [esp + 0x1ac]
jmp 0x47c83b
mov dword [esp + 0x1a0], esi
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x178], edx
mov esi, dword [esp + 0x160]
jmp 0x47d101
mov eax, ecx
not eax
and eax, 1
add eax, ecx
je 0x47c637
call fcn.00455260
test eax, eax
jne 0x47bf44
imul eax, eax
and eax, 3
cmp eax, 1
ja 0x47bf44
mov dword [esp + 0x19c], ebx
mov dword [esp + 0xdc], edi
mov dword [esp + 0xe20], 0x70000005
jmp 0x47d036
mov dword [esp + 0xdc], edi
mov eax, dword [esp + 0x15c]
mov dword [esp + 4], eax
lea eax, [esp + 0x1dc]
mov dword [esp], eax
call fcn.0040d290
mov edx, dword [esp + 0xde8]
imul esi, dword [esp + 0x1dc], 0x15180
mov ecx, edx
sub ecx, esi
cmp ecx, 0x15180
seta al
mov edi, ecx
and edi, 1
inc edi
xor edi, ecx
sete cl
cmp edx, esi
jbe 0x47c029
or al, cl
mov eax, 1
je 0x47c029
mov dword [esp + 0x19c], ebx
mov ecx, dword [esp + 0x150]
mov dword [esp + 0x18c], ecx
mov ecx, dword [esp + 0x190]
mov dword [esp + 0x198], ecx
mov ecx, dword [esp + 0x168]
mov dword [esp + 0x188], ecx
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
cmp eax, ecx
jne 0x479992
mov dword [esp + 0xe20], 0x7000003f
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0x190], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x168], eax
jmp 0x47d036
call fcn.0044c050
mov dword [esp + 0x80], eax
mov dword [esp + 0x7c], edx
mov eax, dword [esp + 0xe1c]
mov ecx, dword [esp + 0x15c]
mov ecx, dword [ecx + 8]
mov esi, dword [esp + 0x1b0]
mov edx, dword [esi]
mov esi, dword [esi + 4]
mov dword [esp + 0x10], eax
mov dword [esp + 8], ecx
mov dword [esp + 4], esi
mov dword [esp], edx
mov dword [esp + 0xc], 0
call fcn.0042d280
mov edi, eax
test edi, edi
jne 0x47c104
mov eax, 0xf
mov ecx, edi
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jae 0x47c104
mov dword [esp + 0x19c], ebx
mov dword [esp + 0xdc], edi
mov ebx, dword [esp + 0x150]
mov edx, dword [esp + 0x190]
mov ecx, dword [esp + 0x168]
cmp eax, 0xf
je 0x47c0ef
imul eax, eax
and eax, 3
cmp eax, 2
mov dword [esp + 0x150], ebx
mov dword [esp + 0x18c], ebx
mov dword [esp + 0x168], ecx
mov dword [esp + 0x188], ecx
mov eax, edx
mov dword [esp + 0x198], edx
jne 0x4799c5
jmp 0x47cf62
mov dword [esp + 0x150], ebx
mov dword [esp + 0x168], ecx
mov eax, edx
jmp 0x47cf62
mov ecx, dword [edi + 0x20]
mov eax, dword [esp + 0x80]
cmp eax, ecx
mov eax, dword [esp + 0x7c]
sbb eax, dword [edi + 0x24]
jl 0x47c12d
mov eax, 0xa
imul ecx, ecx
and ecx, 3
cmp ecx, 3
jne 0x47cf10
mov dword [esp], edi
call fcn.0042b9c0
mov esi, dword [esp + 0xf0]
mov eax, 6
mov ecx, dword [esi]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 3
sete dl
movzx edx, dl
cmp ecx, edx
jne 0x47c214
mov dword [esp + 0x19c], ebx
mov edx, dword [esp + 0x15c]
lea eax, [edx + 0x14]
mov dword [esp + 0x94], eax
mov eax, dword [edx + 0x14]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x47c30b
mov dword [esp + 0xf0], esi
mov dword [esp + 0xdc], edi
mov edx, dword [esp + 0x174]
mov ecx, dword [esp + 0x168]
mov esi, dword [esp + 0x190]
mov ebx, dword [esp + 0x150]
mov eax, 0xf
mov dword [esp + 0xe20], 0x7000003d
xor edi, edi
mov dword [esp + 0x18c], ebx
mov dword [esp + 0x198], esi
mov dword [esp + 0x188], ecx
mov ecx, dword [esp + 0x1a8]
mov dword [esp + 0x1b8], ecx
mov ecx, dword [esp + 0x1b0]
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x1bc], 0
mov ebx, dword [esp + 0x19c]
jmp 0x47caaf
mov dword [esp + 0x19c], ebx
mov dword [esp + 0xf0], esi
mov ebx, dword [esp + 0x1b0]
cmp eax, 4
jne 0x47c26b
mov dword [esp + 0x1b0], ebx
mov dword [esp + 0xdc], edi
mov eax, dword [esp + 0x150]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 0x188], eax
mov esi, dword [esp + 0x190]
mov ebx, dword [esp + 0x19c]
jmp 0x47b2cf
mov dword [esp + 0x1c4], 0
lea eax, [ebx + 0x10]
mov dword [esp], eax
call fcn.0042abf0
mov esi, eax
test esi, esi
je 0x47ceeb
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 3
je 0x47ceeb
mov dword [esp + 0xdc], edi
mov eax, 0x13
mov ecx, dword [esp + 0x104]
mov ecx, dword [ecx]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sete dl
movzx edx, dl
cmp ecx, edx
jne 0x47d101
mov dword [esp + 0x160], esi
cmp eax, 3
jne 0x47d0d2
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x47d0d2
mov eax, dword [esp + 0x148]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x13c]
mov dword [esp + 0x40], eax
mov esi, dword [esp + 0x1bc]
jmp 0x479c8c
mov dword [esp + 0xf0], esi
xor eax, eax
lea ecx, [edx + 0x10]
mov esi, dword [esp + 0xb0]
mov ebx, dword [esp + 0x19c]
jmp 0x47c34f
mov edx, eax
and edx, 1
xor edx, eax
cmp edx, 0xffffffff
setne dl
movzx edx, dl
add eax, edx
mov dword [esp + 0x164], 0
mov esi, ecx
mov edx, eax
not edx
and edx, 1
add edx, eax
setne dl
movzx edx, dl
cmp eax, edx
jb 0x47c330
mov dword [esp + 0xdc], edi
mov dword [esp + 0xb0], esi
mov eax, dword [esp + 0x150]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 0x188], eax
mov esi, dword [esp + 0x190]
mov dword [esp + 0x198], esi
mov dword [esp + 0x19c], ebx
mov esi, 2
mov eax, dword [esp + 0xb0]
mov eax, dword [eax]
mov edi, dword [esp + 0x164]
mov eax, dword [eax + edi*4]
mov edx, dword [esp + 0x15c]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.00427270
mov ecx, edi
inc ecx
mov dword [esp + 0x9c], ecx
test eax, eax
jne 0x47c462
mov ebx, 0xf
mov dword [esp + 0xa4], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jae 0x47c469
cmp ebx, 3
mov edi, dword [esp + 0xdc]
je 0x479012
mov ecx, ebx
and ecx, 1
inc ecx
xor ecx, ebx
je 0x479012
mov esi, 4
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x9c]
cmp ecx, dword [eax]
jb 0x47d2f5
mov ebx, 0xb
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
mov dword [esp + 0x164], ecx
mov edx, dword [esp + 0x174]
mov eax, dword [esp + 0x188]
jne 0x47a8af
jmp 0x47d30a
mov dword [esp + 0xa4], eax
cmp esi, 2
je 0x47c478
xor eax, eax
test al, al
je 0x479889
mov esi, 6
mov edi, 9
mov eax, dword [esp + 0x104]
mov eax, dword [eax]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov ecx, dword [esp + 0xa4]
mov eax, dword [ecx + 8]
mov dword [esp + 0x70], eax
mov dword [esp + 0x170], ecx
mov cl, byte [esp + 0x12f]
jne 0x47c535
cmp edi, 9
jne 0x47c818
mov byte [esp + 0x12f], cl
mov eax, dword [esp + 0x70]
lea eax, [eax + eax*8]
lea ecx, [esp + 0xe24]
lea edx, [esp + 0xe28]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
lea ecx, [esp + 0xe0c]
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0xde8]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x15c]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x1b0]
mov dword [esp], ecx
call dword [eax*8 + 0x7f61c0]
mov esi, dword [esp + 0x160]
mov edx, dword [esp + 0x114]
mov ebx, dword [esp + 0x19c]
jmp 0x47c66f
cmp esi, 4
je 0x47b51c
mov eax, esi
and eax, 1
inc eax
xor eax, esi
je 0x47b51c
mov byte [esp + 0x12f], cl
xor edi, edi
mov eax, 0x9c
lea ecx, [eax + 0x20]
xor ecx, eax
add ecx, 0xfffffff6
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x70]
lea ebx, [eax + eax*8]
lea esi, [esp + 0xe28]
jmp 0x47c5c3
mov eax, edi
not eax
and eax, 1
add eax, edi
setne al
movzx eax, al
add edi, eax
lea eax, [esp + 0xe24]
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
mov eax, dword [esp + 0x15c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1b0]
mov dword [esp], eax
call dword [ebx*8 + 0x7f61c4]
mov dword [esp + 0x144], eax
mov eax, 3
sub eax, edi
xor eax, edi
setne al
movzx eax, al
cmp edi, eax
jb 0x47c580
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0x190], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x168], eax
mov edi, dword [esp + 0xdc]
mov ebx, dword [esp + 0x19c]
mov esi, dword [esp + 0xf0]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0xf0], esi
cmp ecx, 0xc
mov esi, dword [esp + 0x160]
mov edx, dword [esp + 0x114]
je 0x47bf03
mov dword [esp + 0xdc], edi
mov eax, dword [esp + 0x150]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x190]
mov dword [esp + 0x198], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x144]
mov dword [esp + 0x144], eax
mov edi, 0x10
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x47c766
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x160], esi
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0x190], eax
lea eax, [esp + 0xe20]
mov ebx, dword [esp + 0x1b0]
cmp edi, 0x10
jne 0x47af2b
mov dword [esp + 0x114], edx
mov dword [eax], 0
mov dword [esp + 0x11c], eax
lea eax, [esp + 0x5e8]
mov dword [esp + 0xe30], eax
mov dword [esp], eax
call fcn.007c3e70
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
add ecx, eax
mov dword [esp + 0xe2c], ecx
xor esi, esi
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1ac], eax
mov eax, dword [esp + 0x1a8]
mov dword [esp + 0x1b8], eax
mov eax, dword [esp + 0x170]
mov dword [esp + 0x1b4], eax
mov ecx, ebx
mov dword [esp + 0x1b0], ebx
jmp 0x47bcef
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x114], edx
xor ecx, ecx
lea eax, [esp + 0xe20]
mov dword [esp + 0x11c], eax
mov eax, 0xeb
add eax, 0xffffff1a
mov edi, dword [esp + 0x144]
mov ebx, dword [esp + 0x1a8]
jmp 0x47c7d6
inc ecx
mov dword [esp + 0xe20], edi
mov dword [esp + 0x1bc], 0
mov dword [esp + 0x1b8], ebx
mov edx, dword [esp + 0x170]
mov dword [esp + 0x1b4], edx
mov edx, dword [esp + 0x1b0]
mov dword [esp + 0x1c0], edx
mov edx, ecx
not edx
and edx, 1
add edx, ecx
setne dl
movzx edx, dl
cmp ecx, edx
jb 0x47c7a0
mov dword [esp + 0x160], esi
mov ebx, dword [esp + 0x18c]
mov ecx, dword [esp + 0x198]
mov dword [esp + 0x190], ecx
mov ecx, dword [esp + 0x188]
mov edx, dword [esp + 0x174]
jmp 0x47ccd9
mov byte [esp + 0x12f], cl
mov esi, dword [esp + 0x160]
mov ebx, dword [esp + 0x19c]
mov ecx, dword [esp + 0x194]
mov edx, dword [esp + 0x178]
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x178], edx
mov dword [esp + 0x160], esi
mov eax, dword [esp + 0xe14]
test eax, eax
je 0x47c8c6
mov dword [esp + 0x194], ecx
mov ecx, 0x10
mov edx, eax
mov dword [esp + 0xa8], edx
and eax, 1
inc eax
xor eax, edx
mov edx, dword [esp + 0x174]
je 0x47c8db
cmp ecx, 0xe
jne 0x47c8b1
mov eax, ecx
or eax, 2
xor ecx, 2
add ecx, eax
je 0x47c8b1
mov dword [esp + 0x174], edx
mov cl, byte [esp + 0x12f]
mov eax, dword [esp + 0xe8]
mov esi, dword [esp + 0x1bc]
jmp 0x47ce46
mov eax, dword [esp + 0xa8]
mov dword [esp], eax
mov esi, edx
call fcn.004936c0
mov edx, esi
jmp 0x47c8db
mov dword [esp + 0x194], ecx
mov dword [esp + 0xa8], eax
mov edx, dword [esp + 0x174]
mov esi, 4
mov edi, dword [esp + 0xe18]
test edi, edi
mov ebx, dword [esp + 0x19c]
jne 0x47c91d
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 2
mov eax, dword [esp + 0x140]
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0x190], eax
jb 0x47c97c
jmp 0x47c939
mov eax, dword [esp + 0x140]
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0x190], eax
cmp esi, 4
jne 0x47d093
mov dword [esp + 0x174], edx
imul esi, esi
and esi, 3
cmp esi, 2
jae 0x47d0a3
mov dword [esp], edi
call fcn.004936c0
mov eax, dword [esp + 0x168]
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x190]
mov edx, dword [esp + 0x174]
mov dword [esp + 0x130], eax
mov dword [esp + 0xc0], edi
mov eax, dword [esp + 0xe1c]
test eax, eax
jne 0x47ca5d
mov edi, 6
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x47ca5d
mov dword [esp + 0x174], edx
mov eax, dword [esp + 0x148]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x13c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0x190], eax
mov esi, dword [esp + 0x1bc]
cmp edi, 6
mov edx, dword [esp + 0x174]
mov edi, dword [esp + 0x88]
mov ecx, dword [esp + 0x40]
jne 0x479e5d
mov dword [esp + 0x1bc], esi
mov eax, dword [esp + 0x38]
mov dword [esp + 0x148], eax
mov dword [esp + 0x13c], ecx
mov eax, dword [esp + 0x150]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x190]
mov dword [esp + 0x198], eax
jmp 0x47ca69
mov dword [esp], eax
mov esi, edx
call fcn.004936c0
mov edx, esi
mov edi, dword [esp + 0x1b4]
mov eax, 9
lea ecx, [esp + 0xe28]
mov dword [esp + 0x100], ecx
mov esi, dword [esp + 0xe28]
test esi, esi
jne 0x47caa8
mov ecx, esi
and ecx, 1
xor ecx, esi
mov dword [esp + 0x180], esi
not ecx
test ecx, ecx
jne 0x47cb93
jmp 0x47caaf
mov dword [esp + 0x180], esi
xor esi, esi
cmp eax, 9
je 0x47cb17
mov dword [esp + 0x1b4], edi
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x174], edx
imul eax, eax
and eax, 3
cmp eax, 2
mov ebx, dword [esp + 0x100]
je 0x47cb61
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0x190], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x168], eax
mov esi, dword [esp + 0x1bc]
jmp 0x47ab19
mov dword [esp + 0x1b4], edi
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x174], edx
mov ebx, dword [esp + 0x100]
jmp 0x47cb61
inc esi
mov eax, dword [esp + 0x180]
mov dword [esp], eax
call fcn.00689a80
mov dword [esp + 0xe24], 0
mov dword [ebx], 0
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp esi, eax
jb 0x47cb40
mov dword [esp + 0x100], ebx
mov edx, dword [esp + 0x174]
mov ebx, dword [esp + 0x19c]
mov edi, dword [esp + 0x1b4]
mov esi, dword [esp + 0x10c]
test esi, esi
jne 0x47cbac
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
jne 0x47cbce
mov dword [esp], esi
mov dword [esp + 0x1b4], edi
mov edi, ebx
mov ebx, esi
mov esi, edx
call fcn.004303e0
mov edx, esi
mov esi, ebx
mov ebx, edi
mov edi, dword [esp + 0x1b4]
mov dword [esp + 0x1b4], edi
mov eax, 0x11
mov ecx, dword [esp + 0xe3c]
test ecx, ecx
je 0x47cca8
mov dword [esp + 0x10c], esi
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x174], edx
mov ebx, 0x18
mov dword [esp], ecx
mov dword [esp + 4], 0x20
call fcn.0064bf00
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0x190], eax
mov edi, dword [esp + 0x13c]
mov eax, dword [esp + 0x148]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x120]
mov dword [esp + 0x148], eax
mov esi, dword [esp + 0x1bc]
mov ecx, dword [esp + 0x1c0]
mov edx, dword [esp + 0x178]
mov dword [esp + 0x40], edi
cmp ebx, 9
je 0x47cd94
mov dword [esp + 0x178], edx
mov dword [esp + 0x1c0], ecx
imul ebx, ebx
and ebx, 3
cmp ebx, 3
mov ebx, dword [esp + 0x19c]
jne 0x47cd29
jmp 0x47cda9
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x10c], esi
mov ebx, dword [esp + 0x18c]
mov ecx, dword [esp + 0x198]
mov dword [esp + 0x190], ecx
mov ecx, dword [esp + 0x188]
mov edi, dword [esp + 0x144]
mov esi, dword [esp + 0x1bc]
cmp eax, 5
jne 0x47cd22
mov dword [esp + 0x150], ebx
mov dword [esp + 0x168], ecx
mov dword [esp + 0x174], edx
mov dword [esp + 0x144], edi
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1ac], eax
mov ecx, dword [esp + 0x1c0]
jmp 0x47bcef
mov ebx, dword [esp + 0x19c]
xor esi, esi
mov edi, dword [esp + 0xc4]
jmp 0x47cd7e
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add esi, eax
mov dword [esp + 0xe3c], 0
mov dword [esp], edi
call fcn.004234b0
mov dword [esp], ebx
call fcn.0041d160
mov eax, dword [esp + 0x194]
mov dword [esp], eax
call fcn.00429990
mov eax, esi
imul eax, eax
and eax, 3
test esi, esi
je 0x47cd40
cmp eax, 2
je 0x47cd40
jmp 0x478d6b
mov dword [esp + 0x178], edx
mov dword [esp + 0x1c0], ecx
mov ebx, dword [esp + 0x19c]
mov dword [esp + 0x19c], ebx
mov ebx, dword [esp + 0x148]
mov dword [esp + 0x120], ebx
mov edi, 9
mov eax, dword [esp + 0xe64]
mov ecx, dword [esp + 0xe60]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0049b5b0
mov edx, dword [esp + 0x134]
test edx, edx
setne al
mov ecx, 3
sub ecx, edx
xor ecx, edx
setne cl
and cl, al
mov eax, dword [esp + 0x150]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x190]
mov dword [esp + 0x198], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x148], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x13c], eax
mov dword [esp + 0x17c], edx
mov eax, ebx
jne 0x479720
mov dword [esp + 0x1bc], esi
mov dword [esp + 0xe8], eax
mov ebx, 5
mov edi, 0xd
test eax, eax
mov eax, dword [esp + 0x174]
jne 0x47ceaf
cmp edi, 8
mov edi, dword [esp + 0x16c]
jne 0x47a82f
mov byte [esp + 0x12f], cl
mov dword [esp + 0x174], eax
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x150], eax
mov ebx, dword [esp + 0x188]
mov eax, dword [esp + 0x198]
mov dword [esp + 0x190], eax
jmp 0x47aecc
mov byte [esp + 0x12f], cl
cmp ebx, 5
je 0x47cec5
xor eax, eax
test al, al
je 0x47b4bf
mov eax, dword [esp + 0x17c]
mov dword [esp], eax
call fcn.004303e0
mov dword [esp + 0x118], 0
mov edx, dword [esp + 0xe8]
jmp 0x47a8cf
mov dword [esp + 0x1b0], ebx
mov dword [esp + 0x160], esi
mov eax, 0xf
mov dword [esp + 0xe20], 0x7000003d
mov ebx, dword [esp + 0x19c]
mov dword [esp + 0x19c], ebx
mov dword [esp + 0xdc], edi
cmp eax, 0xa
jne 0x47b8c6
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
mov eax, dword [esp + 0x150]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x190]
mov dword [esp + 0x198], eax
je 0x47d1ff
mov dword [esp + 0x190], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x1dc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x15c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1b0]
mov dword [esp + 4], eax
lea eax, [esp + 0x1c8]
mov dword [esp], eax
call fcn.0040d330
mov eax, dword [esp + 0x1d0]
test eax, eax
mov edi, dword [esp + 0xdc]
mov ebx, dword [esp + 0x19c]
jne 0x47c12d
mov esi, 0x1a
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x47c12d
cmp esi, 0xa
je 0x47d080
xor eax, eax
test al, al
jne 0x47d080
xor esi, esi
jmp 0x47d014
inc esi
mov dword [esp + 0xe20], 0x70000043
mov dword [esp], edi
call fcn.0042b9c0
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp esi, eax
jb 0x47d000
mov dword [esp + 0x19c], ebx
mov dword [esp + 0xdc], edi
mov eax, dword [esp + 0x1a8]
mov esi, dword [esp + 0x1b0]
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1b0], esi
mov dword [esp + 0x1b4], 0
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x1ac], ecx
mov dword [esp + 0x1b8], eax
mov ecx, esi
jmp 0x47bced
mov dword [esp + 0x19c], ebx
mov dword [esp + 0xdc], edi
jmp 0x479a92
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x174], edx
jmp 0x47d0aa
mov dword [esp + 0x19c], ebx
mov dword [esp + 0xc0], edi
mov ebx, dword [esp + 0xf4]
mov eax, dword [esp + 0x154]
mov edi, dword [esp + 0x16c]
mov esi, dword [esp + 0x18c]
jmp 0x47ae6d
mov eax, dword [esp + 0xe1c]
mov dword [esp], eax
call fcn.00446730
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x47d334
mov esi, dword [esp + 0x160]
mov edi, 6
mov eax, dword [esi + 0x318]
mov ecx, dword [esi + 0x31c]
lea edx, [esi + 0x90]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov dword [esp + 0x10], 1
call fcn.005a9e50
test eax, eax
je 0x47d26a
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
mov edx, dword [esp + 0xd8]
je 0x47d2b2
mov dword [esp + 0x160], esi
mov dword [esp + 0x40], 0xe
or eax, 0x70000000
mov dword [esp + 0xe20], eax
mov eax, dword [esp + 0x150]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x190]
mov dword [esp + 0x198], eax
mov dword [esp + 0x1b0], ebx
mov edx, dword [esp + 0xdc]
mov ecx, dword [esp + 0x184]
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x1bc]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x48], edi
mov dword [esp + 0x1bc], esi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x184], ecx
mov dword [esp + 0xdc], edx
mov ecx, dword [esp + 0x40]
cmp ecx, 3
jne 0x47d1ff
mov eax, ecx
and eax, 1
xor eax, ecx
not eax
test eax, eax
jne 0x479f81
mov dword [esp + 0x1b4], 0
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0x190], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x168], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1ac], eax
mov eax, dword [esp + 0x1a8]
mov dword [esp + 0x1b8], eax
mov ecx, dword [esp + 0x1b0]
mov esi, dword [esp + 0x160]
jmp 0x47bcef
mov dword [esp + 0x1b0], ebx
mov dword [esp + 0x160], esi
mov eax, dword [esp + 0x150]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x190]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x190], edx
mov esi, dword [esp + 0xd8]
mov ebx, dword [esp + 0x19c]
jmp 0x47979b
mov dword [esp + 0x1b0], ebx
mov dword [esp + 0x160], esi
mov eax, dword [esp + 0x150]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x190]
mov esi, edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x190], edx
mov ebx, dword [esp + 0x19c]
jmp 0x47979b
mov dword [esp + 0x164], ecx
mov edx, dword [esp + 0x174]
mov eax, dword [esp + 0x188]
cmp esi, 4
je 0x47b2a4
mov dword [esp + 0x188], eax
mov dword [esp + 0x174], edx
mov esi, dword [esp + 0x198]
mov ebx, dword [esp + 0x19c]
jmp 0x47b2cf
mov dword [esp + 0x1b0], ebx
mov dword [esp + 0x198], 0x14
call fcn.0044c050
mov esi, eax
mov ecx, dword [esp + 0x160]
mov edi, dword [ecx + 0x88]
mov dword [esp + 0x188], edi
mov ebx, dword [ecx + 0x8c]
mov dword [esp + 0x18c], ebx
sub edi, esi
sbb ebx, edx
xor eax, eax
mov ecx, 0x15180
cmp ecx, edi
sbb eax, ebx
setl cl
imul edi, edi
and edi, 3
cmp edi, 2
sete ch
cmp esi, dword [esp + 0x188]
sbb edx, dword [esp + 0x18c]
jge 0x47d3ca
mov eax, 0xf
or cl, ch
mov ebx, dword [esp + 0x1b0]
mov edx, dword [esp + 0x178]
mov ecx, dword [esp + 0x1a4]
mov esi, dword [esp + 0x1a0]
jne 0x479ad1
jmp 0x47bdc9
mov ebx, dword [esp + 0x1b0]
mov edx, dword [esp + 0x178]
mov ecx, dword [esp + 0x1a4]
mov esi, dword [esp + 0x1a0]
jmp 0x47bdc9