Function at 0x471e40
Capabilities:
Authenticate hmac
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x390
mov esi, dword [ebp + 8]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x25c], 0
mov dword [esp + 0x258], 0
mov dword [esp + 0x254], 0
mov dword [esp + 0x250], 0
mov dword [esp + 0x244], 0
lea eax, [esp + 0x248]
mov dword [esp], eax
call fcn.00419e10
lea eax, [esp + 0x260]
mov dword [esp], eax
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0
call fcn.007c51a0
lea eax, [esp + 0x26c]
mov dword [esp + 8], eax
mov dword [esp], esi
mov dword [esp + 4], 0x1a
call fcn.004585b0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x471efc
mov dword [esp], esi
call fcn.0040a2e0
jmp 0x477249
mov eax, 0xe
mov byte [esp + 0x18b], 0x11
mov byte [esp + 0x2b], 0x30
mov ecx, dword [esp + 0x26c]
mov dword [esp + 0xa0], ecx
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x472240
mov dl, 0x17
mov dword [esp + 0x1fc], edx
mov byte [esp + 0xd3], 0x31
mov dword [esp + 0x200], esi
mov edx, ecx
or edx, 2
xor ecx, 2
add ecx, edx
mov byte [esp + 0x4b], cl
mov byte [esp + 0xcb], cl
mov byte [esp + 0x57], cl
mov byte [esp + 0x5a], cl
mov byte [esp + 0x5b], cl
mov byte [esp + 0x8b], cl
mov byte [esp + 0xf2], cl
mov byte [esp + 0x12b], cl
mov byte [esp + 0x33], cl
mov byte [esp + 0x59], cl
mov byte [esp + 0x93], cl
mov byte [esp + 0xc3], cl
mov byte [esp + 0xf3], cl
mov byte [esp + 0xf1], cl
mov dword [esp + 0x118], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c4], ecx
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x1e8], ecx
mov dword [esp + 0x178], ecx
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0x174], ecx
mov dword [esp + 0xf4], ecx
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x198], ecx
mov dword [esp + 0x1bc], ecx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x158], ecx
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x120], ecx
mov dword [esp + 0x130], ecx
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x1ac], ecx
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x1cc], ecx
mov dword [esp + 0x1f0], ecx
mov dword [esp + 0x1ec], ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x140], ecx
mov dword [esp + 0x168], ecx
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x184], ecx
mov dword [esp + 0x124], ecx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x154], ecx
mov dword [esp + 0x160], ecx
mov dword [esp + 0x114], ecx
mov dword [esp + 0xcc], ecx
mov dword [esp + 0x204], ecx
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xdc], ecx
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xbc], ecx
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x144], ecx
mov dword [esp + 0x1b8], ecx
mov dword [esp + 0x1b4], ecx
mov dword [esp + 0x1b0], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x1f8], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0xec], ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x170], ecx
mov dword [esp + 0x16c], ecx
mov dword [esp + 0xc4], ecx
mov dword [esp + 0x190], ecx
mov dword [esp + 0x18c], ecx
mov dword [esp + 0x110], ecx
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x148], ecx
mov dword [esp + 0x108], ecx
mov dword [esp + 0x104], ecx
mov dword [esp + 0xd4], ecx
mov dword [esp + 0x164], ecx
mov dword [esp + 0x150], ecx
mov dword [esp + 0x138], ecx
mov byte [esp + 0xd2], cl
mov byte [esp + 0xae], cl
mov byte [esp + 0x103], cl
mov byte [esp + 0x83], cl
mov byte [esp + 0xaf], cl
mov byte [esp + 0x58], cl
mov byte [esp + 0xfb], cl
mov byte [esp + 0x12a], cl
mov byte [esp + 0xf0], cl
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x1e0], ecx
mov dword [esp + 0x15c], ecx
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x194], ecx
jne 0x4754df
jmp 0x474612
mov cl, 0x17
mov dword [esp + 0x1fc], ecx
mov byte [esp + 0xd3], 0x31
mov dword [esp + 0x200], esi
mov byte [esp + 0x4b], cl
mov byte [esp + 0xf0], cl
mov byte [esp + 0xcb], cl
mov byte [esp + 0x57], cl
mov byte [esp + 0x5a], cl
mov byte [esp + 0x5b], cl
mov byte [esp + 0x8b], cl
mov byte [esp + 0xf2], cl
mov byte [esp + 0x12b], cl
mov byte [esp + 0x33], cl
mov byte [esp + 0x59], cl
mov byte [esp + 0x93], cl
mov byte [esp + 0xc3], cl
mov byte [esp + 0xf3], cl
mov dword [esp + 0xd4], ecx
mov dword [esp + 0x164], ecx
mov dword [esp + 0x150], ecx
mov dword [esp + 0x138], ecx
mov dword [esp + 0x118], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x1e8], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c4], ecx
mov dword [esp + 0x178], ecx
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0x174], ecx
mov dword [esp + 0xf4], ecx
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x198], ecx
mov dword [esp + 0x1bc], ecx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x158], ecx
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x120], ecx
mov dword [esp + 0x130], ecx
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x1ac], ecx
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x1cc], ecx
mov dword [esp + 0x1f0], ecx
mov dword [esp + 0x1ec], ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x140], ecx
mov dword [esp + 0x168], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x184], ecx
mov dword [esp + 0x124], ecx
mov dword [esp + 0x154], ecx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x160], ecx
mov dword [esp + 0x114], ecx
mov dword [esp + 0xcc], ecx
mov dword [esp + 0x204], ecx
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xdc], ecx
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xbc], ecx
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x144], ecx
mov dword [esp + 0x1b8], ecx
mov dword [esp + 0x1b4], ecx
mov dword [esp + 0x1b0], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x1f8], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0xec], ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x170], ecx
mov dword [esp + 0x16c], ecx
mov dword [esp + 0xc4], ecx
mov dword [esp + 0x190], ecx
mov dword [esp + 0x18c], ecx
mov byte [esp + 0xf1], cl
mov byte [esp + 0xd2], cl
mov byte [esp + 0xae], cl
mov byte [esp + 0x103], cl
mov byte [esp + 0x83], cl
mov byte [esp + 0xaf], cl
mov byte [esp + 0x58], cl
mov byte [esp + 0xfb], cl
mov byte [esp + 0x12a], cl
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x1e0], ecx
mov dword [esp + 0x15c], ecx
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x194], ecx
jmp 0x474612
mov byte [esp + 0x18b], 0x5d
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc eax, 0
mov dword [esp + 0x260], 0x7000000f
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x472530
xor ecx, ecx
mov dword [esp + 0x1dc], edi
mov dword [esp + 0x1d8], ebx
mov dword [esp + 0x1d4], esi
mov eax, dword [esp + 0x1e0]
mov bl, al
mov dword [esp + 0x164], 0
jmp 0x47332c
mov byte [esp + 0x2b], 0x5c
mov eax, dword [esp + 0xa0]
cmp dword [eax + 0xc], 0
mov dword [esp + 0x110], ecx
mov eax, dword [esp + 0x144]
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x1b8]
mov dword [esp + 0x148], eax
mov eax, dword [esp + 0x1b4]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x1b0]
mov dword [esp + 0x104], eax
mov esi, dword [esp + 0x1e4]
je 0x4754df
mov eax, dword [esp + 0xa0]
mov edx, dword [eax + 0x10]
test edx, edx
jne 0x47266b
mov eax, 0xa
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jae 0x47266b
mov dword [esp + 0x60], edx
mov dword [esp + 0x1dc], esi
mov ecx, dword [esp + 0x204]
mov dword [esp + 0x1d8], ecx
mov ecx, dword [esp + 0x1a8]
mov dword [esp + 0x1d4], ecx
mov edi, dword [esp + 0x11c]
mov ecx, dword [esp + 0xfc]
cmp eax, 3
jne 0x47269a
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x11c], edi
mov eax, dword [esp + 0x26c]
mov dword [esp + 0x158], eax
jmp 0x476229
mov dword [esp + 0x60], edx
mov al, 0x37
movzx eax, al
cmp eax, 0x2b
mov edi, dword [esp + 0x1a8]
je 0x4726ad
mov ebx, 0x10
cmp eax, 0x37
mov dword [esp + 0x1d4], edi
je 0x4760b9
jmp 0x4755ca
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x11c], edi
jmp 0x476126
mov eax, 5
mov ecx, dword [esp + 0xa0]
mov ecx, dword [ecx + 8]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sete dl
movzx edx, dl
cmp ecx, edx
je 0x473497
mov bl, 0x15
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call fcn.007c3e70
cmp eax, 0x50
jbe 0x472724
mov dword [esp + 0x94], eax
mov byte [esp + 0x12b], 0x15
lea eax, [esp + 0x312]
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x2c1]
mov dword [esp + 0x64], eax
lea eax, [esp + 0x270]
mov dword [esp + 0x2c], eax
mov edi, dword [esp + 0x1a8]
jmp 0x475ad3
mov dword [esp + 0x1e4], esi
lea ecx, [esp + 0x270]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x2c1]
mov dword [esp + 0x64], ecx
lea ecx, [esp + 0x312]
mov dword [esp + 0x4c], ecx
mov edx, 0x12
mov byte [esp + 0x8b], 0x63
mov byte [esp + 0x5b], 0x32
mov byte [esp + 0x4b], 0x4d
mov byte [esp + 0x5a], 0x2d
mov dword [esp + 0x134], 0
test eax, eax
mov dword [esp + 0x94], eax
mov ecx, 7
mov dword [esp + 0x1d4], 0
mov dword [esp + 0x17c], 0
mov dword [esp + 0x180], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xf4], 0
mov esi, dword [esp + 0x130]
mov edi, dword [esp + 0x120]
jne 0x475a58
jmp 0x47405d
mov eax, ebx
or eax, 2
xor ebx, 2
add ebx, eax
je 0x474ab7
mov dword [esp + 0x17c], esi
mov dword [esp + 0x134], edx
mov byte [esp + 0x5a], 0x4d
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x180]
movzx esi, byte [eax + ebx]
cmp esi, 0x22
sete al
mov ecx, esi
or ecx, 2
mov edx, esi
xor edx, 2
add edx, ecx
setne cl
test al, cl
jne 0x47289a
mov edi, 0xe
movzx eax, word [esi + esi + str.________________________________H]
mov dword [esp + 0x15c], esi
and eax, 8
test ax, ax
mov edx, dword [esp + 0x134]
mov dword [esp + 0x13c], edx
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x17c]
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x198], eax
mov dword [esp + 0x1bc], edx
mov dword [esp + 0x184], ebx
je 0x476175
jmp 0x472b77
mov dword [esp + 0x15c], esi
mov edx, dword [esp + 0x134]
mov dword [esp + 0x13c], edx
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x1c8], eax
jmp 0x472b77
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x476baa
mov byte [esp + 0x4b], 0x4d
movzx eax, dl
cmp eax, 0x2d
je 0x47290c
xor eax, eax
test al, al
jne 0x472913
mov eax, 0xa
mov cl, dl
add cl, 0xd0
movzx ecx, cl
cmp ecx, 0xa
mov edx, edi
jae 0x47380c
jmp 0x4759d9
mov edx, edi
jmp 0x4759d9
mov edx, edi
jmp 0x4759d9
test esi, esi
je 0x472955
mov byte [esp + 0x5b], 0x4d
mov eax, esi
and eax, 1
inc eax
xor eax, esi
je 0x47295a
mov esi, dword [esp + 0x1dc]
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x204], eax
mov eax, dword [esp + 0x134]
mov dword [esp + 0x178], eax
jmp 0x47699b
mov byte [esp + 0x5b], 0x4d
xor eax, eax
mov ecx, 3
sub ecx, edi
mov ebx, dword [esp + 0x15c]
jmp 0x4729b7
mov edx, eax
or edx, 2
mov esi, eax
xor esi, 2
add esi, edx
setne dl
movzx edx, dl
add eax, edx
mov edx, edi
xor edx, ecx
setne dl
movzx edx, dl
add edx, edi
mov dword [esp + 0x1bc], edx
mov byte [esp + edi + 0x270], bl
mov dword [esp + 0x198], 0
mov edx, dword [esp + 0x1c8]
mov dword [esp + 0x1c0], edx
mov edx, eax
and edx, 1
xor edx, eax
cmp edx, 0xffffffff
setne dl
movzx edx, dl
cmp eax, edx
jb 0x472970
mov eax, dword [esp + 0x1c0]
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0x1d4], eax
mov edx, dword [esp + 0x1bc]
jmp 0x472b77
mov eax, ebx
and eax, 1
inc eax
xor eax, ebx
mov eax, dword [esp + 0x1e0]
mov dword [esp + 0x134], eax
mov dword [esp + 0x178], edx
mov edi, edx
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x174], eax
mov ebx, dword [esp + 0x180]
mov dword [esp + 0x184], ebx
mov esi, dword [esp + 0x154]
jne 0x473e35
mov eax, 0x1a
mov edx, dword [esp + 0x13c]
mov ecx, edx
and ecx, 1
inc ecx
xor ecx, edx
sete cl
movzx ecx, cl
cmp edx, ecx
jne 0x472b0b
mov dword [esp + 0x180], ebx
mov dword [esp + 0x154], esi
xor eax, eax
mov ecx, 0xffffffff
mov edx, dword [esp + 0x1c8]
not edx
and edx, 1
mov dword [esp + 0x204], edx
mov edi, dword [esp + 0x5c]
mov edx, dword [esp + 0x198]
jmp 0x472adc
inc eax
mov edx, dword [esp + 0x1c8]
mov esi, edx
add esi, dword [esp + 0x204]
setne bl
movzx esi, bl
add esi, edx
mov dword [esp + 0x1c0], esi
mov ebx, dword [esp + 0x15c]
mov byte [esp + edx + 0x312], bl
dec ecx
mov dword [esp + 0x1bc], 0
mov edx, edi
mov esi, eax
and esi, 1
xor esi, ecx
setne bl
movzx esi, bl
cmp eax, esi
jb 0x472aa0
mov eax, dword [esp + 0x1c0]
mov dword [esp + 0x17c], eax
mov dword [esp + 0x1d4], edx
mov edx, dword [esp + 0x1bc]
jmp 0x472b77
mov dword [esp + 0x154], esi
mov dword [esp + 0x178], edi
mov ecx, dword [esp + 0x17c]
mov dword [esp + 0x174], ecx
mov edi, dword [esp + 0x1c8]
mov esi, ebx
jmp 0x475b34
mov esi, dword [esp + 0x5c]
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add eax, esi
mov dword [esp + 0x1d4], eax
mov byte [esp + esi + 0x2c1], dl
mov edx, dword [esp + 0x134]
mov dword [esp + 0x13c], edx
mov dword [esp + 0x1c8], edi
mov dword [esp + 0x17c], edi
mov esi, dword [esp + 0x180]
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
mov ecx, esi
adc ecx, 0
mov eax, dword [esp + 0x94]
cmp ecx, eax
je 0x472bf4
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
mov dword [esp + 0xf4], ecx
mov ecx, dword [esp + 0x17c]
mov dword [esp + 0x1c0], ecx
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x198], eax
mov dword [esp + 0x1bc], edx
mov dword [esp + 0xb8], edx
mov dword [esp + 0xb4], eax
mov eax, ecx
mov dword [esp + 0xb0], eax
mov dword [esp + 0x184], esi
jne 0x475952
jmp 0x4742c6
mov dword [esp + 0xf4], ecx
mov ecx, dword [esp + 0x17c]
mov dword [esp + 0x1c0], ecx
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x198], eax
mov dword [esp + 0x1bc], edx
mov dword [esp + 0xb8], edx
mov dword [esp + 0xb4], eax
mov eax, ecx
mov dword [esp + 0xb0], eax
jmp 0x4742c6
mov edi, 4
mov byte [esp + 0xf2], 0x19
mov eax, dword [esp + 0x64]
mov dword [esp], eax
mov dword [esp + 4], str.____haspscope_
call fcn.007c58b0
test eax, eax
mov esi, dword [esp + 0x200]
je 0x472d20
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x1a8], eax
cmp edi, 4
je 0x472cd9
imul edi, edi
and edi, 3
cmp edi, 3
je 0x472cd9
mov eax, dword [esp + 0x25c]
mov dword [esp], eax
call fcn.0049f150
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x472d01
mov dword [esp + 0x168], eax
mov byte [esp + 0x59], 0x7e
mov dword [esp + 0x200], esi
mov eax, dword [esp + 0x1dc]
mov ecx, dword [esp + 0x1d8]
mov dword [esp + 0x204], ecx
jmp 0x476447
mov dword [esp + 0x200], esi
mov esi, dword [esp + 0x1dc]
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x204], eax
mov edi, dword [esp + 0x1a8]
jmp 0x475ad3
mov dword [esp + 0x168], eax
mov byte [esp + 0x59], 0x7e
mov dword [esp + 0x200], esi
mov eax, 6
mov bl, 0x28
jmp 0x4766a3
lea eax, [esp + 0x244]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.007c3f60
mov eax, dword [esp + 0x244]
mov ecx, dword [esi]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00438aa0
mov edi, eax
xor ebx, ebx
test edi, edi
je 0x472dd1
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 2
je 0x472dd1
mov dword [esp], edi
call fcn.0040b5f0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x472e02
mov dword [esp + 0x200], esi
mov ecx, 9
mov al, 1
mov dword [esp + 0xfc], eax
mov esi, dword [esp + 0x1dc]
mov ebx, dword [esp + 0x1d8]
mov edx, dword [esp + 0x1d4]
mov al, 1
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x140], edi
mov dword [esp + 0x11c], edi
mov edi, edx
jmp 0x475634
mov al, 1
mov dword [esp + 0xfc], eax
mov dword [esp + 0x200], esi
mov eax, dword [esp + 0x170]
mov dword [esp + 0x204], eax
mov ecx, dword [esp + 0x16c]
mov dword [esp + 0x140], edi
jmp 0x472f44
mov eax, dword [edi + 0x270]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x472e88
mov byte [esp + 0x33], 0x15
mov dword [esp + 0x200], esi
mov eax, dword [esp + 0x26c]
mov dword [esp + 0x158], eax
mov eax, dword [eax]
mov ecx, eax
and ecx, 2
and eax, 2
mov eax, 0xd
mov dl, 1
mov dword [esp + 0xfc], edx
jne 0x472f13
or ecx, 1
mov ecx, 0xe
mov dl, 1
mov dword [esp + 0x1e0], edx
mov dword [esp + 0x140], edi
mov dword [esp + 0x11c], edi
mov dl, 1
mov dword [esp + 0x134], edx
jne 0x477251
jmp 0x47610e
mov byte [esp + 0x33], 0x15
mov dword [esp + 0x200], esi
mov al, 8
movzx eax, al
cmp eax, 0x32
jne 0x472ef7
xor eax, eax
jmp 0x472ebf
inc eax
mov ecx, dword [esp + 0x26c]
mov dword [esp + 0x158], ecx
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x472eb0
mov al, 1
mov dword [esp + 0xfc], eax
mov al, 1
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x140], edi
mov dword [esp + 0x11c], edi
jmp 0x476229
mov eax, 3
mov cl, 1
mov dl, 1
mov dword [esp + 0x1e0], edx
mov dword [esp + 0x140], edi
jmp 0x472645
mov cl, 1
mov dword [esp + 0x1e0], ecx
mov dword [esp + 0x140], edi
mov dword [esp + 0x11c], edi
jmp 0x47610e
mov dword [esp + 0xfc], 0
mov byte [esp + 0x12b], 0x15
xor ebx, ebx
mov dword [esp + 0x11c], 0
mov edi, ecx
mov eax, dword [esp + 0x26c]
mov eax, dword [eax + 4]
mov esi, dword [esp + 0x11c]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.00459aa0
call fcn.005ae190
mov eax, dword [esp + 0x26c]
mov eax, dword [eax + 0x10]
lea ecx, [esp + 0x258]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x250]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0049b210
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x473000
mov dword [esp + 0x1e4], 2
mov edx, dword [esp + 0x1d4]
mov eax, dword [esp + 0x204]
mov dword [esp + 0x170], eax
mov dword [esp + 0x16c], edi
mov cl, bl
mov eax, dword [esp + 0xfc]
mov byte [esp + 0xcb], al
mov al, bl
mov byte [esp + 0x57], al
mov dword [esp + 0x124], esi
mov eax, dword [esp + 0x1ac]
jmp 0x473162
mov al, 0x1c
movzx ecx, al
cmp ecx, 0xc
je 0x47306e
xor eax, eax
cmp ecx, 0x1c
mov edx, dword [esp + 0xfc]
je 0x47309c
cmp ecx, 0x67
jne 0x47311e
mov dword [esp + 0x134], ebx
mov edx, dword [esp + 0x1fc]
mov ebx, dword [esp + 0x204]
jmp 0x473059
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc eax, 0
mov dword [esp + 0x260], 0x70000024
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x473040
jmp 0x4730e0
mov dword [esp + 0x260], 0x70000024
xor ecx, ecx
mov eax, dword [esp + 0x204]
mov dword [esp + 0x170], eax
mov dword [esp + 0x16c], edi
mov eax, dword [esp + 0xfc]
jmp 0x473142
mov dword [esp + 0x134], ebx
mov edx, dword [esp + 0x1fc]
mov ebx, dword [esp + 0x204]
jmp 0x4730cc
inc eax
mov dword [esp + 0x260], 0x70000024
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, 1
cmp eax, ecx
jb 0x4730c0
xor ecx, ecx
mov dword [esp + 0x170], ebx
mov dword [esp + 0x16c], edi
mov eax, dword [esp + 0xfc]
mov byte [esp + 0xcb], al
mov ebx, dword [esp + 0x134]
mov al, bl
mov byte [esp + 0x57], al
mov dword [esp + 0x124], esi
mov dword [esp + 0x164], esi
jmp 0x47332c
mov dword [esp + 0x260], 0x70000024
xor ecx, ecx
mov eax, dword [esp + 0x204]
mov dword [esp + 0x170], eax
mov dword [esp + 0x16c], edi
mov al, dl
mov byte [esp + 0xcb], al
mov al, bl
mov byte [esp + 0x57], al
mov dword [esp + 0x124], esi
mov dword [esp + 0x164], esi
jmp 0x4755af
mov dword [esp + 0x1e0], ecx
mov ecx, dword [esp + 0x1e4]
cmp ecx, 2
jne 0x47322d
mov dword [esp + 0x1ac], eax
mov eax, 3
sub eax, ecx
xor eax, ecx
mov edi, edx
je 0x476ea8
mov byte [esp + 0xfb], 0x28
mov eax, dword [esp + 0x258]
mov dword [esp], eax
call fcn.0049c7c0
test eax, eax
jne 0x473250
mov eax, dword [esp + 0x26c]
mov eax, dword [eax + 0x14]
lea ecx, [esp + 0x25c]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x254]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0049b210
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x4732c8
mov al, 0x22
movzx ecx, al
cmp ecx, 0x22
je 0x473403
mov dword [esp + 0x1a8], edi
mov byte [esp + 0x12a], 0x46
mov eax, 0x10
mov edi, 8
cmp ecx, 0x46
mov esi, dword [esp + 0x200]
je 0x472c78
jmp 0x476759
mov dword [esp + 0x1ac], eax
mov esi, dword [esp + 0x1dc]
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x204], eax
mov edi, edx
jmp 0x47457a
mov cl, 0x74
movzx ecx, cl
cmp ecx, 0x52
je 0x473347
cmp ecx, 0x74
jne 0x47337b
mov dword [esp + 0x1a8], edi
mov byte [esp + 0x12a], 0x46
xor ecx, ecx
lea edi, [esp + 0x260]
jmp 0x4732ab
mov edx, ecx
or edx, 2
mov esi, ecx
xor esi, 2
add esi, edx
setne dl
movzx edx, dl
add ecx, edx
mov dword [esp + 0x260], eax
mov edx, ecx
imul edx, edx
and edx, 3
test ecx, ecx
je 0x473290
cmp edx, 2
je 0x473290
mov dword [esp + 0x1a0], edi
jmp 0x47336b
mov byte [esp + 0x12a], 0x46
xor eax, eax
mov edx, dword [esp + 0x1fc]
jmp 0x4732f9
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc eax, 0
mov dword [esp + 0x260], 0x7000000f
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x4732e0
xor ecx, ecx
mov dword [esp + 0x1d4], edi
mov eax, dword [esp + 0x1e0]
mov bl, al
mov eax, dword [esp + 0x124]
mov dword [esp + 0x164], eax
mov dword [esp + 0x150], 0
mov dword [esp + 0x138], 0
jmp 0x474fcf
mov dword [esp + 0x1a8], edi
mov byte [esp + 0x12a], 0x46
lea ecx, [esp + 0x260]
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x260], eax
mov dword [esp + 0x19c], 0
jmp 0x4763c6
mov byte [esp + 0x12a], 0x46
mov ecx, 9
lea edx, [esp + 0x260]
mov dword [esp + 0x1a0], edx
mov dword [esp + 0x260], eax
mov edx, dword [esp + 0x178]
mov dword [esp + 0x1d4], edi
mov esi, dword [esp + 0x174]
mov edi, dword [esp + 0xf4]
mov dword [esp + 0x180], edi
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1d0], 0
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1f0], 0
mov dword [esp + 0x1ec], 0
jmp 0x474103
mov dword [esp + 0x1a8], edi
mov byte [esp + 0x12a], 0x46
mov edi, 0xd
mov byte [esp + 0x59], 0x7e
mov bl, 0x28
mov eax, dword [esp + 0x25c]
mov dword [esp], eax
call fcn.0049f150
mov dword [esp + 0x168], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x476570
jmp 0x473d9f
mov eax, dword [esp + 0x26c]
mov esi, dword [eax + 4]
call fcn.0040cad0
mov dword [esp + 0x160], 0
mov cl, 0x7a
test eax, eax
je 0x4734d7
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], esi
mov byte [esp + 0x59], 0x6f
mov eax, 0x12
xor ecx, ecx
test cl, cl
mov esi, ebx
jne 0x473544
cmp eax, 5
jne 0x4764b2
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov dword [esp + 0x1dc], esi
mov eax, dword [esp + 0x204]
mov dword [esp + 0x1d8], eax
mov eax, dword [esp + 0x1a8]
mov dword [esp + 0x1d4], eax
jne 0x476126
jmp 0x4764b2
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], esi
mov byte [esp + 0x59], 0x6f
mov esi, ebx
jmp 0x473544
mov ecx, 0x75
add cl, 5
mov dword [esp + 0x14c], ecx
add eax, esi
setne al
movzx eax, al
add esi, eax
mov dword [esp], 1
mov ecx, edi
mov edx, ebx
call fcn.00477a60
mov dword [esp + 0x160], eax
mov dword [esp], ebx
call fcn.00429990
mov eax, esi
not eax
and eax, 1
mov ecx, esi
add ecx, eax
setne cl
movzx ecx, cl
cmp esi, ecx
jb 0x4734f0
mov esi, dword [esp + 0x1e4]
mov byte [esp + 0x58], 0x1c
mov byte [esp + 0xaf], 0xe
mov byte [esp + 0xae], 0x10
mov byte [esp + 0xd2], 0x41
mov byte [esp + 0x93], 0x1e
mov byte [esp + 0xf3], 0x20
mov byte [esp + 0xc3], 6
mov al, 0x18
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x26c]
mov ebx, dword [eax + 4]
lea edi, [esp + 0x363]
mov dword [esp], edi
mov dword [esp + 4], 0x29
call fcn.00446640
mov dword [esp], 0
mov ecx, ebx
mov edx, edi
call fcn.00477c40
mov dword [esp + 0x1f8], eax
mov ecx, dword [esp + 0x124]
lea eax, [ecx + 0x3d4]
mov dword [esp + 0x3c], eax
lea eax, [ecx + 0x3c8]
mov dword [esp + 0x38], eax
lea edi, [esp + 0x208]
mov ecx, dword [esp + 0x200]
lea eax, [ecx + 0x110]
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x210]
mov dword [esp + 0x78], eax
lea eax, [esp + 0x22c]
mov dword [esp + 0x74], eax
mov byte [esp + 0xf1], 0x1e
lea eax, [esp + 0x230]
mov dword [esp + 0x70], eax
lea eax, [esp + 0x234]
mov dword [esp + 0x6c], eax
lea eax, [ecx + 8]
mov dword [esp + 0xa4], eax
mov dword [esp + 0x84], 0
mov eax, dword [esp + 0x160]
mov dword [esp + 0x1f4], eax
mov byte [esp + 0x103], 0xd
test byte [esp + 0xcb], 1
je 0x47367a
movzx eax, byte [esp + 0x93]
cmp eax, 0x1e
je 0x4736cb
cmp eax, 0x36
jne 0x473730
mov dword [esp + 0x1e4], esi
mov byte [esp + 0x93], 0x35
jmp 0x4736da
mov eax, 7
movzx edx, byte [esp + 0xc3]
cmp edx, 6
je 0x4738a5
mov dword [esp + 0xec], edi
mov ebx, 0x14
mov ecx, 0x1f
cmp edx, 0x2b
mov dword [esp + 0x1dc], esi
mov eax, dword [esp + 0x204]
mov dword [esp + 0x1d8], eax
mov edi, dword [esp + 0x1a8]
je 0x475da1
jmp 0x476b06
mov dword [esp + 0x1e4], esi
mov byte [esp + 0x93], 0x36
test byte [esp + 0x57], 1
jne 0x47374a
mov dword [esp + 0xcc], 0
mov dword [esp + 0xec], edi
mov edx, dword [esp + 0x178]
mov eax, dword [esp + 0x1a8]
mov dword [esp + 0x1d4], eax
mov edi, dword [esp + 0x174]
mov eax, dword [esp + 0x184]
mov dword [esp + 0x180], eax
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0x1dc], eax
jmp 0x47493e
test byte [esp + 0x57], 1
je 0x473925
mov dword [esp + 0x1e4], esi
mov byte [esp + 0x93], 0x1e
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
mov edx, dword [esp + 0x38]
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.00426200
mov esi, eax
mov dword [esp], esi
call fcn.00423550
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov edx, dword [esp + 0x204]
jne 0x4738cd
mov dword [esp + 0xec], edi
mov dword [esp + 0x20], esi
xor edi, edi
mov eax, dword [esp + 0x50]
movzx ecx, al
cmp ecx, 0x42
je 0x47395c
mov eax, 0x12
cmp ecx, 0x51
jne 0x4739db
mov ecx, dword [esp + 0x1e4]
mov dword [esp + 0x1dc], ecx
mov dword [esp + 0x1d8], edx
mov edx, dword [esp + 0x178]
mov ecx, dword [esp + 0x1a8]
mov dword [esp + 0x1d4], ecx
mov ecx, dword [esp + 0x174]
mov dword [esp + 0x17c], ecx
mov ecx, dword [esp + 0x184]
mov dword [esp + 0x180], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xcc], ecx
mov edi, edx
cmp eax, 0xa
mov esi, dword [esp + 0x154]
je 0x473950
imul eax, eax
and eax, 3
cmp eax, 3
mov ebx, dword [esp + 0x180]
je 0x472a3b
mov dword [esp + 0x204], 2
mov al, 0x18
mov dword [esp + 0x50], eax
mov esi, dword [esp + 0x20]
mov dword [esp], esi
call fcn.00430370
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.007c99d0
mov dword [esp + 0x130], eax
mov dword [esp + 0x178], edi
mov edx, dword [esp + 0x1d4]
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x174], eax
mov dword [esp + 0x184], ebx
mov dword [esp + 0x120], esi
mov eax, dword [esp + 0x1ac]
mov ecx, dword [esp + 0x1e0]
jmp 0x474de4
mov dword [esp + 0xec], edi
mov dword [esp + 0x1dc], esi
mov ecx, dword [esp + 0x204]
mov dword [esp + 0x1d8], ecx
mov edi, dword [esp + 0x118]
jmp 0x473c91
mov dword [esp + 0xec], edi
mov ecx, dword [esp + 0x178]
mov eax, dword [esp + 0x1a8]
mov dword [esp + 0x1d4], eax
mov edi, dword [esp + 0x174]
mov eax, dword [esp + 0x184]
mov dword [esp + 0x180], eax
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x1d8], edx
mov edx, ecx
mov dword [esp + 0xcc], esi
mov dword [esp + 0x20], esi
jmp 0x4743bd
mov dword [esp + 0x1e4], esi
mov dword [esp + 0xec], edi
mov byte [esp + 0x93], 0x1e
mov eax, 4
mov dword [esp + 0xcc], 0
jmp 0x4748bb
mov ebx, dword [esp + 0x180]
jmp 0x472a3b
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x120]
mov ebx, dword [esp + 0x50]
jmp 0x4739b6
mov ebx, 0x84
add bl, 0xbe
mov eax, edi
or eax, 2
mov ecx, edi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add edi, eax
mov dword [esp], esi
call fcn.00430370
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.007c99d0
mov ecx, esi
mov dword [esp + 0x130], eax
test edi, edi
jne 0x4739ce
mov eax, edi
and eax, 1
xor eax, edi
not eax
test eax, eax
jne 0x473980
mov dword [esp + 0x50], ebx
mov dword [esp + 0x120], ecx
jmp 0x473a59
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x130]
mov edx, dword [esp + 0x120]
mov ebx, dword [esp + 0x50]
jmp 0x473a34
mov ebx, 0xd1
xor bl, 0x80
mov eax, edi
and eax, 1
xor eax, edi
cmp eax, 0xffffffff
setne al
movzx eax, al
add edi, eax
mov dword [esp], esi
call fcn.00430370
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.007c99d0
mov edx, esi
mov ecx, 3
sub ecx, edi
xor ecx, edi
setne cl
movzx ecx, cl
cmp edi, ecx
jb 0x473a00
mov dword [esp + 0x50], ebx
mov dword [esp + 0x120], edx
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x1a8]
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0x1dc], eax
mov eax, dword [esp + 0x204]
mov dword [esp + 0x1d8], eax
jmp 0x473f50
mov dword [esp + 0x1a8], edi
mov eax, dword [esp + 0xec]
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x20], 0
mov dword [eax + 0x2c], 0
mov dword [eax + 0x28], 0
mov dword [eax + 0x34], 0
mov dword [eax + 0x30], 0
mov eax, dword [esp + 0x7c]
mov eax, dword [eax]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, 1
cmp eax, ecx
sete al
movzx eax, al
mov ecx, dword [esp + 0x78]
mov dword [ecx], eax
mov eax, dword [esp + 0x26c]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x74]
mov dword [edx], ecx
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x70]
mov dword [edx], ecx
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x6c]
mov dword [edx], ecx
mov byte [esp + 0xc3], 0x22
mov eax, dword [eax + 4]
mov dword [esp + 0x34], eax
test eax, eax
jne 0x475f1b
xor esi, esi
mov edi, dword [esp + 0xec]
jmp 0x473b8a
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
add esi, eax
mov dword [esp + 4], edi
mov dword [esp + 8], 0x4775e0
mov dword [esp], 0x471ab0
call fcn.004260e0
mov ecx, esi
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, 1
cmp esi, ecx
jb 0x473b60
jmp 0x475f42
mov byte [esp + 0xf3], 0x73
mov eax, dword [esp + 0x154]
mov dword [esp], eax
call fcn.00430370
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x26c]
add eax, 0x18
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0xa4]
mov eax, dword [eax]
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
mov edx, dword [esp + 0x200]
mov edx, dword [edx]
add edx, 0xc
mov dword [esp + 0x1e8], edx
cmp eax, ecx
mov dword [esp + 0x118], eax
mov ebx, dword [esp + 0x204]
jne 0x476f8b
mov dword [esp + 0x204], ebx
mov dword [esp + 0x1e4], esi
xor ecx, ecx
mov edx, 3
mov eax, 0xa6
xor eax, 0xa0
mov edi, dword [esp + 0x118]
jmp 0x473c67
inc ecx
mov ebx, dword [esp + 0x1e8]
movzx esi, byte [ebx]
shl esi, 0x18
movzx edi, byte [ebx + 1]
shl edi, 0x10
or edi, esi
movzx esi, byte [ebx + 2]
shl esi, 8
or esi, edi
movzx edi, byte [ebx + 3]
or edi, esi
dec edx
mov esi, ecx
xor esi, edx
setne bl
movzx esi, bl
cmp ecx, esi
jb 0x473c40
mov ecx, dword [esp + 0x1e4]
mov dword [esp + 0x1dc], ecx
mov ecx, dword [esp + 0x204]
mov dword [esp + 0x1d8], ecx
mov dword [esp + 0x118], edi
cmp eax, 6
jne 0x473cc5
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x473cc5
mov eax, dword [esp + 0x1a8]
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0x1e0]
mov bl, al
jmp 0x47700f
mov eax, dword [esp + 0xec]
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x20], 0
mov dword [eax + 0x2c], 0
mov dword [eax + 0x28], 0
mov dword [eax + 0x34], 0
mov dword [eax + 0x30], 0
mov eax, dword [esp + 0x7c]
mov eax, dword [eax]
cmp eax, 1
sete cl
mov edx, 3
sub edx, eax
xor edx, eax
setne al
and al, cl
movzx eax, al
mov ecx, dword [esp + 0x78]
mov dword [ecx], eax
mov eax, dword [esp + 0x26c]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x74]
mov dword [edx], ecx
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x70]
mov dword [edx], ecx
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x6c]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x34], ecx
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
cmp ecx, eax
mov edi, 0x12
mov byte [esp + 0xc3], 6
je 0x473b54
cmp edi, 0xd
mov eax, dword [esp + 0x1dc]
mov ecx, dword [esp + 0x1d8]
mov dword [esp + 0x204], ecx
je 0x476447
jmp 0x475f1b
mov byte [esp + 0xf1], 0x1e
mov eax, dword [esp + 0x258]
mov ecx, dword [esp + 0x98]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x118]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov esi, dword [esp + 0x9c]
mov dword [esp], esi
call fcn.0049d6c0
test eax, eax
jne 0x473e23
mov dword [esp + 0x134], ebx
mov ecx, 8
mov edx, eax
or edx, 2
xor eax, 2
add eax, edx
mov dword [esp + 0x68], esi
mov esi, dword [esp + 0x154]
jne 0x473e88
jmp 0x473e35
mov dword [esp + 0x134], ebx
mov dword [esp + 0x68], esi
mov esi, dword [esp + 0x154]
mov ecx, 6
movzx eax, byte [esp + 0xae]
cmp eax, 0x10
jne 0x473e88
mov byte [esp + 0xae], 0x10
mov eax, dword [esp + 0x68]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x8c]
mov dword [esp], eax
call fcn.007c99d0
mov dword [esp + 0x114], eax
mov dword [esp], esi
call fcn.00423570
mov dword [esp], esi
mov dword [esp + 0x154], esi
call fcn.00423550
test eax, eax
jmp 0x473ee8
cmp ecx, 6
je 0x473e9b
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
jne 0x477146
mov byte [esp + 0xae], 3
mov eax, dword [esp + 0x68]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x8c]
mov dword [esp], eax
call fcn.007c99d0
mov dword [esp + 0x114], eax
mov dword [esp], esi
call fcn.00423570
mov dword [esp], esi
mov dword [esp + 0x154], esi
call fcn.00423550
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov ebx, dword [esp + 0x134]
je 0x475fa6
xor eax, eax
mov ecx, dword [esp + 0x130]
mov edx, dword [esp + 0x120]
mov esi, dword [esp + 0x154]
mov edi, dword [esp + 0x114]
jmp 0x473f35
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
add eax, ecx
mov edx, esi
mov ecx, edi
test eax, eax
je 0x473f20
mov dword [esp + 0x120], edx
mov dword [esp + 0x130], ecx
mov al, bl
mov dword [esp + 0x1e0], eax
mov esi, dword [esp + 0x130]
test esi, esi
mov edi, dword [esp + 0x120]
je 0x473fc3
mov ecx, 8
mov al, byte [esp + 0xaf]
movzx eax, al
cmp eax, 0x2e
je 0x473ffb
cmp eax, 0x6a
jne 0x47415c
mov byte [esp + 0xaf], 0x2e
call fcn.004574b0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
mov ebx, dword [esp + 0x84]
mov edx, ebx
imul edx, edx
and edx, 3
cmp edx, 2
sete dl
movzx edx, dl
cmp ebx, edx
je 0x474185
jmp 0x47424b
mov edx, dword [esp + 0x178]
mov eax, dword [esp + 0x174]
mov ecx, dword [esp + 0x184]
mov dword [esp + 0x180], ecx
mov dword [esp + 0x170], edi
mov dword [esp + 0x16c], esi
mov dword [esp + 0xcc], edi
mov edi, eax
jmp 0x4743bd
mov eax, dword [esp + 0x1dc]
mov dword [esp + 0x1e4], eax
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x204], eax
mov dword [esp + 0xcc], edi
mov dword [esp + 0x170], edi
mov eax, dword [esp + 0x178]
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x180], eax
mov dword [esp + 0x16c], esi
mov bl, byte [esp + 0x12b]
mov dword [esp + 0x130], esi
cmp ecx, 7
je 0x474270
mov byte [esp + 0x12b], bl
xor eax, eax
test al, al
mov eax, dword [esp + 0x1e4]
jne 0x474287
mov dword [esp + 0x120], edi
mov ebx, 0x20
mov byte [esp + 0xaf], 0xe
call fcn.004574b0
mov edx, dword [esp + 0x84]
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp edx, ecx
jne 0x47435f
test eax, eax
je 0x47435f
mov ecx, 8
mov edx, eax
and edx, 1
inc edx
xor edx, eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 0x1dc], eax
mov eax, dword [esp + 0x170]
mov dword [esp + 0x1d8], eax
mov edx, dword [esp + 0x134]
mov esi, dword [esp + 0x17c]
je 0x474aae
cmp ecx, 8
jne 0x47438e
mov eax, ecx
or eax, 2
xor ecx, 2
add ecx, eax
mov dword [esp + 0x178], edx
mov dword [esp + 0x174], esi
mov eax, dword [esp + 0x180]
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x170]
mov dword [esp + 0x204], eax
mov ecx, dword [esp + 0x16c]
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x1a8], eax
jne 0x4741b0
jmp 0x476820
mov byte [esp + 0xaf], 0x6a
call fcn.004574b0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
cmp dword [esp + 0x84], 0
jne 0x47424b
movzx ecx, cl
cmp eax, ecx
mov eax, esi
mov dword [esp + 0x204], edi
mov dword [esp + 0xcc], edi
mov dword [esp + 0x170], edi
mov dword [esp + 0x16c], esi
mov ecx, eax
je 0x476000
movzx eax, byte [esp + 0x58]
cmp eax, 0xa
jne 0x4741f7
mov edi, 0x11
mov byte [esp + 0x58], 0xa
mov dword [esp], ecx
mov esi, ecx
call fcn.005a9b30
test eax, eax
mov dword [esp + 0x1dc], esi
mov edx, dword [esp + 0x204]
mov dword [esp + 0x1d8], edx
mov ecx, dword [esp + 0x1e0]
je 0x475fc9
jmp 0x475c27
mov ebx, 0xb
mov byte [esp + 0x58], 0x1c
mov dword [esp], ecx
mov esi, ecx
call fcn.005a9b30
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov ecx, esi
mov eax, dword [esp + 0x204]
mov dword [esp + 0x170], eax
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x1dc], ecx
mov dword [esp + 0x1d8], eax
jne 0x475bff
jmp 0x476000
mov eax, esi
mov dword [esp + 0x204], edi
mov dword [esp + 0xcc], edi
mov dword [esp + 0x170], edi
mov dword [esp + 0x16c], esi
mov ecx, eax
jmp 0x476000
mov byte [esp + 0x12b], bl
mov dword [esp + 0x120], edi
mov eax, dword [esp + 0x1e4]
jmp 0x47428e
mov dword [esp + 0x120], edi
mov dword [esp + 0x1dc], eax
mov eax, dword [esp + 0x204]
mov dword [esp + 0x1d8], eax
mov eax, dword [esp + 0x180]
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x184]
mov dword [esp + 0x180], eax
mov edx, dword [esp + 0x134]
mov ebx, 0xd
movzx eax, byte [esp + 0x8b]
cmp eax, 0x63
jne 0x4769c3
mov byte [esp + 0x8b], 5
mov cl, 0x62
mov eax, dword [esp + 0xb0]
mov byte [esp + eax + 0x312], 0
mov eax, dword [esp + 0xb4]
mov byte [esp + eax + 0x2c1], 0
mov eax, dword [esp + 0xb8]
mov byte [esp + eax + 0x270], 0
test eax, eax
mov esi, dword [esp + 0x1dc]
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x204], eax
mov dword [esp + 0x178], edx
mov edi, dword [esp + 0x1d4]
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x174], eax
mov eax, dword [esp + 0x180]
mov dword [esp + 0x184], eax
jne 0x475d30
jmp 0x475ad3
mov eax, dword [esp + 0x16c]
mov dword [esp + 0x1dc], eax
mov eax, dword [esp + 0x170]
mov dword [esp + 0x1d8], eax
mov edx, dword [esp + 0x134]
mov esi, dword [esp + 0x17c]
jmp 0x474aae
mov dword [esp + 0x178], edx
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x174], esi
mov eax, dword [esp + 0x180]
mov dword [esp + 0xf4], eax
jmp 0x476820
movzx eax, byte [esp + 0x103]
cmp eax, 0x12
je 0x47448e
mov dword [esp + 0x17c], edi
mov edi, 0x18
cmp eax, 0x3f
jne 0x476966
mov eax, dword [esp + 0x26c]
mov eax, dword [eax]
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
and ecx, eax
mov eax, ecx
imul eax, eax
cmp eax, 2
sete al
movzx eax, al
cmp ecx, eax
mov byte [esp + 0x103], 0x12
mov byte [esp + 0x83], 0x37
mov dword [esp + 0x178], edx
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x1a8], eax
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x174], eax
mov esi, dword [esp + 0x1dc]
mov ebx, dword [esp + 0x1d8]
mov eax, dword [esp + 0x180]
mov dword [esp + 0x184], eax
mov edi, 2
mov eax, 0xc
lea ecx, [esp + 0x260]
mov dword [esp + 0x1a4], ecx
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0xc4], ecx
je 0x4773e2
jmp 0x47733e
mov byte [esp + 0x103], 0xd
mov byte [esp + 0x83], 0x37
mov eax, dword [esp + 0x26c]
mov eax, dword [eax]
mov ecx, eax
or ecx, 2
mov esi, edx
mov edx, eax
xor edx, 2
add edx, ecx
mov edx, esi
setne cl
movzx ecx, cl
and ecx, eax
mov eax, ecx
imul eax, eax
cmp eax, 3
sete al
movzx eax, al
cmp ecx, eax
lea eax, [esp + 0x260]
mov dword [esp + 0x1a4], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xc4], eax
mov al, 0x37
je 0x47742a
mov eax, dword [esp + 0x1a4]
mov dword [eax], 0x70000027
mov dword [esp + 0x12c], 0
mov dword [esp + 0x178], edx
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x174], edi
mov edi, eax
mov eax, dword [esp + 0x180]
mov dword [esp + 0x184], eax
mov esi, dword [esp + 0x1dc]
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x204], eax
mov dword [esp + 0x144], 0
mov eax, dword [esp + 0x1f8]
mov dword [esp + 0x1b8], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x1b4], eax
mov eax, dword [esp + 0x1f4]
mov dword [esp + 0x1b0], eax
movzx eax, byte [esp + 0x12a]
cmp eax, 3
je 0x4746e9
mov dword [esp + 0x1e4], esi
cmp eax, 0x46
jne 0x474776
mov dword [esp + 0x1a8], edi
mov ecx, 0x10
mov eax, 0x18
mov byte [esp + 0x12a], 0x21
mov dl, 0x2b
mov dword [esp + 0x194], edx
mov edx, dword [esp + 0x1b8]
test edx, edx
mov esi, dword [esp + 0x12c]
mov dword [esp + 0x110], esi
mov esi, dword [esp + 0x144]
mov dword [esp + 0x10c], esi
mov dword [esp + 0x148], edx
mov edx, dword [esp + 0x1b4]
mov dword [esp + 0x108], edx
mov edx, dword [esp + 0x1b0]
mov dword [esp + 0x104], edx
mov esi, dword [esp + 0x1e4]
je 0x4765aa
mov dword [esp + 0x1e4], esi
cmp eax, 0xe
mov ecx, dword [esp + 0x12c]
mov ebx, dword [esp + 0x204]
jne 0x4746a5
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x4746a5
movzx eax, byte [esp + 0x2b]
cmp eax, 0x30
je 0x472594
mov edi, 2
cmp eax, 0x5c
jne 0x4747f9
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x144]
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x1b8]
mov dword [esp + 0x148], eax
mov eax, dword [esp + 0x1b4]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x1b0]
mov dword [esp + 0x104], eax
mov esi, dword [esp + 0x1e4]
jmp 0x47555c
mov dword [esp + 0x110], ecx
mov eax, dword [esp + 0x144]
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x1b8]
mov dword [esp + 0x148], eax
mov eax, dword [esp + 0x1b4]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x1b0]
mov dword [esp + 0x104], eax
jmp 0x4749ab
mov eax, 0xe
mov cl, 0x2b
mov dword [esp + 0x194], ecx
mov edx, dword [esp + 0x1b8]
test edx, edx
je 0x474866
mov dword [esp + 0x1e4], esi
mov dword [esp + 0x1a8], edi
mov byte [esp + 0x12a], 3
mov edi, 0xc
xor ecx, ecx
test cl, cl
mov ecx, dword [esp + 0x12c]
mov dword [esp + 0x110], ecx
mov ecx, dword [esp + 0x144]
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x148], edx
mov ecx, dword [esp + 0x1b4]
mov dword [esp + 0x108], ecx
mov ecx, dword [esp + 0x1b0]
mov dword [esp + 0x104], ecx
mov ebx, dword [esp + 0x204]
je 0x477235
jmp 0x4748c2
mov al, 0x2b
mov dword [esp + 0x194], eax
mov ecx, dword [esp + 0x1b8]
test ecx, ecx
je 0x474951
mov dword [esp + 0x1a8], edi
mov byte [esp + 0x12a], 0x46
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x144]
mov dword [esp + 0x10c], eax
mov dword [esp + 0x148], ecx
mov eax, dword [esp + 0x1b4]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x1b0]
mov dword [esp + 0x104], eax
mov ebx, dword [esp + 0x204]
jne 0x4749ab
jmp 0x474f48
mov edx, 2
mov byte [esp + 0x2b], 0x18
mov ecx, dword [esp + 0xa0]
cmp dword [ecx + 0xc], 0
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x144]
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x1b8]
mov dword [esp + 0x148], eax
mov eax, dword [esp + 0x1b4]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x1b0]
mov dword [esp + 0x104], eax
mov esi, dword [esp + 0x1e4]
je 0x4754df
jmp 0x4764a9
mov dword [esp + 0x1e4], esi
mov dword [esp + 0x1a8], edi
mov byte [esp + 0x12a], 3
mov ecx, dword [esp + 0x12c]
mov dword [esp + 0x110], ecx
mov ecx, dword [esp + 0x144]
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x148], edx
mov ecx, dword [esp + 0x1b4]
mov dword [esp + 0x108], ecx
mov ecx, dword [esp + 0x1b0]
mov dword [esp + 0x104], ecx
mov ebx, dword [esp + 0x204]
mov dword [esp + 0x204], ebx
cmp eax, 4
mov ecx, dword [esp + 0x184]
mov edx, dword [esp + 0x178]
mov esi, dword [esp + 0x174]
mov edi, dword [esp + 0x1a8]
mov ebx, dword [esp + 0x1e4]
je 0x474927
xor eax, eax
test al, al
mov dword [esp + 0x1d4], edi
mov edi, esi
mov dword [esp + 0x180], ecx
mov dword [esp + 0x1dc], ebx
mov eax, dword [esp + 0x204]
mov dword [esp + 0x1d8], eax
mov ebx, eax
je 0x474f48
jmp 0x4743bd
mov dword [esp + 0x1d4], edi
mov edi, esi
mov dword [esp + 0x180], ecx
mov dword [esp + 0x1dc], ebx
mov eax, dword [esp + 0x204]
mov dword [esp + 0x1d8], eax
jmp 0x4743bd
mov dword [esp + 0x1a8], edi
mov byte [esp + 0x12a], 0x46
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x144]
mov dword [esp + 0x10c], eax
mov dword [esp + 0x148], ecx
mov eax, dword [esp + 0x1b4]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x1b0]
mov dword [esp + 0x104], eax
mov ebx, dword [esp + 0x204]
jmp 0x474f48
mov edi, 0x15
mov eax, dword [esp + 0x194]
movzx eax, al
cmp eax, 0x2b
je 0x47521d
xor esi, esi
mov edi, dword [esp + 0x148]
jmp 0x474a07
mov eax, 0xcb
add al, 0x60
mov dword [esp + 0x194], eax
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
add esi, eax
mov dword [esp], edi
mov dword [esp + 4], 0
call fcn.004117f0
mov dword [esp], edi
call fcn.0041d160
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp esi, eax
jb 0x4749d0
jmp 0x474f48
mov al, dl
add al, 0x57
mov esi, ecx
not esi
and esi, 1
add esi, ecx
setne bl
movzx esi, bl
add ecx, esi
mov esi, dword [esp + 0x1a4]
mov dword [esi], 0x70000032
mov esi, ecx
or esi, 2
mov edi, ecx
xor edi, 2
add edi, esi
setne bl
movzx esi, bl
cmp ecx, esi
jb 0x474a20
mov dword [esp + 0xe8], 0
mov esi, dword [esp + 0x1dc]
mov ecx, dword [esp + 0x1d8]
mov dword [esp + 0x204], ecx
mov ecx, dword [esp + 0x134]
mov dword [esp + 0x178], ecx
mov edi, dword [esp + 0x1d4]
mov ecx, dword [esp + 0x17c]
mov dword [esp + 0x174], ecx
mov ecx, dword [esp + 0x180]
mov dword [esp + 0x184], ecx
jmp 0x4774cb
cmp ebx, 0x10
je 0x4727e7
mov dword [esp + 0x178], edx
mov dword [esp + 0x174], esi
mov eax, dword [esp + 0x180]
mov dword [esp + 0xf4], eax
mov ecx, dword [esp + 0x1dc]
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x204], eax
jmp 0x476000
xor ecx, esi
setne cl
movzx ecx, cl
add esi, ecx
mov dword [esp + 0x260], 0x70000003
xor ebx, ebx
mov edi, dword [esp + 0x1e4]
mov ecx, dword [esp + 0x1f8]
mov dword [esp + 0x1b8], ecx
mov ecx, dword [esp + 0x204]
mov dword [esp + 0x1b4], ecx
mov ecx, dword [esp + 0x1f4]
mov dword [esp + 0x1b0], ecx
mov ecx, 3
sub ecx, esi
mov edx, esi
xor edx, ecx
setne dl
movzx edx, dl
cmp esi, edx
jb 0x474af0
mov dword [esp + 0x144], ebx
mov dword [esp + 0x12c], edi
mov dword [esp + 0xa8], eax
mov edi, dword [esp + 0x1d4]
mov esi, dword [esp + 0x1e4]
mov dword [esp + 0x190], esi
mov eax, dword [esp + 0x204]
mov dword [esp + 0x18c], eax
jmp 0x47457a
mov eax, edi
or eax, 2
mov ecx, edi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add edi, eax
mov dword [esp], ebx
call fcn.0064bc00
lea esi, [esp + 0x260]
mov dword [esp + 0x260], 0
mov dword [esp], ebx
call fcn.0064bbc0
mov dword [esp + 0x264], eax
mov dword [esp], ebx
mov dword [esp + 4], 0
call fcn.0064bb70
mov dword [esp + 0x268], eax
mov edx, dword [esp + 0x260]
mov ecx, dword [esp + 0x1f4]
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x1d0], eax
mov eax, dword [esp + 0x1f8]
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1f0], ebx
mov eax, dword [esp + 0x190]
mov dword [esp + 0x1ec], eax
test edi, edi
jne 0x474c36
mov eax, 3
sub eax, edi
xor eax, edi
jne 0x474b90
mov dword [esp + 0x1ac], edx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x1a0], esi
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x1a8], eax
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0x1dc], eax
mov eax, dword [esp + 0x204]
mov dword [esp + 0x1d8], eax
jmp 0x476820
mov dword [esp + 0x204], 0x10
mov byte [esp + 0xfb], 0x28
mov eax, dword [esp + 0x1ac]
cmp eax, 0x70000032
je 0x474d58
mov dword [esp + 0x1e4], 5
mov eax, dword [esp + 0x1ac]
imul eax, eax
and eax, 3
cmp eax, 2
mov ecx, dword [esp + 0x1ec]
mov dword [esp + 0xe8], ecx
mov ebx, dword [esp + 0x1f0]
mov dword [esp + 0xe4], ebx
mov esi, dword [esp + 0x1cc]
mov dword [esp + 0xe0], esi
mov edx, dword [esp + 0x1d0]
mov dword [esp + 0xdc], edx
mov eax, dword [esp + 0x19c]
mov dword [esp + 0xd8], eax
mov edi, dword [esp + 0x1a0]
mov dword [esp + 0xbc], edi
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x144], ebx
mov dword [esp + 0x1b8], esi
mov dword [esp + 0x1b4], edx
mov dword [esp + 0x1b0], eax
mov eax, dword [esp + 0x1ac]
mov ecx, dword [esp + 0x1e0]
mov edx, dword [esp + 0x1a8]
jne 0x473162
jmp 0x474de4
mov ebx, dword [esp + 0x1ec]
mov dword [esp + 0xe8], ebx
mov edi, dword [esp + 0x1f0]
mov dword [esp + 0xe4], edi
mov esi, dword [esp + 0x1cc]
mov dword [esp + 0xe0], esi
mov edx, dword [esp + 0x1d0]
mov dword [esp + 0xdc], edx
mov eax, dword [esp + 0x19c]
mov dword [esp + 0xd8], eax
mov ecx, dword [esp + 0x1a0]
mov dword [esp + 0xbc], ecx
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x144], edi
mov dword [esp + 0x1b8], esi
mov dword [esp + 0x1b4], edx
mov dword [esp + 0x1b0], eax
mov eax, dword [esp + 0x1ac]
mov ecx, dword [esp + 0x1e0]
mov edx, dword [esp + 0x1a8]
cmp dword [esp + 0x204], 2
je 0x474e29
mov dword [esp + 0x1e0], ecx
mov dword [esp + 0x1ac], eax
xor eax, eax
test al, al
mov edi, edx
mov dword [esp + 0x1d4], edi
mov esi, dword [esp + 0x1dc]
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x204], eax
je 0x474ee0
jmp 0x473f50
mov dword [esp + 0x1e0], ecx
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1d4], edx
jmp 0x473f50
xor eax, eax
test al, al
mov dword [esp + 0x1a8], edi
mov edi, dword [esp + 0x1ec]
mov dword [esp + 0xe8], edi
mov dword [esp + 0x1e4], esi
mov esi, dword [esp + 0x1f0]
mov dword [esp + 0xe4], esi
mov edx, dword [esp + 0x1cc]
mov dword [esp + 0xe0], edx
mov ecx, dword [esp + 0x1d0]
mov dword [esp + 0xdc], ecx
mov eax, dword [esp + 0x19c]
mov dword [esp + 0xd8], eax
mov ebx, dword [esp + 0x1a0]
mov dword [esp + 0xbc], ebx
mov dword [esp + 0x12c], edi
mov edi, dword [esp + 0x1a8]
mov dword [esp + 0x144], esi
mov esi, dword [esp + 0x1e4]
mov dword [esp + 0x1b8], edx
mov dword [esp + 0x1b4], ecx
mov dword [esp + 0x1b0], eax
je 0x47457a
call fcn.00447d70
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x474f04
mov eax, dword [esp + 0xbc]
mov dword [eax], 0x7000002a
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x12c], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x144], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x1b8], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x1b4], eax
mov eax, dword [esp + 0xd8]
jmp 0x474573
mov esi, dword [esp + 0x104]
test esi, esi
je 0x474f6b
mov dword [esp], esi
mov dword [esp + 4], 0
call fcn.004117f0
mov dword [esp], esi
call fcn.0041d160
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x1d8], ebx
mov eax, dword [esp + 0x1a8]
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0x1e0]
mov bl, al
mov ecx, dword [esp + 0x108]
mov eax, dword [esp + 0x124]
mov dword [esp + 0x164], eax
mov eax, dword [esp + 0x10c]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x110]
mov dword [esp + 0x138], eax
mov edx, dword [esp + 0x1fc]
movzx eax, dl
xor edi, edi
cmp eax, 0x17
jne 0x475052
mov dword [esp + 0xd4], ecx
mov dword [esp + 0x1fc], edx
lea esi, [esp + 0x260]
jmp 0x475037
mov eax, 0x93
add al, 0x84
mov dword [esp + 0x1fc], eax
inc edi
mov dword [esp + 4], esi
mov eax, dword [esp + 0x200]
mov dword [esp], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x1b
call fcn.00458d20
call fcn.005aece0
mov eax, edi
or eax, 2
mov ecx, edi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp edi, eax
jb 0x474ff0
jmp 0x4750d6
mov dword [esp + 0xd4], ecx
mov dword [esp + 0x1fc], edx
lea esi, [esp + 0x260]
jmp 0x4750c1
mov ecx, 0x89
add cl, 0xda
mov dword [esp + 0x1fc], ecx
xor eax, edi
setne al
movzx eax, al
add edi, eax
mov dword [esp + 4], esi
mov eax, dword [esp + 0x200]
mov dword [esp], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x1b
call fcn.00458d20
call fcn.005aece0
mov eax, 3
sub eax, edi
mov ecx, edi
xor ecx, eax
setne cl
movzx ecx, cl
cmp edi, ecx
jb 0x475070
mov esi, dword [esp + 0x1dc]
mov ecx, dword [esp + 0x1d8]
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x1a8], eax
mov al, bl
mov ebx, ecx
mov dword [esp + 0x1e0], eax
jmp 0x4753eb
mov byte [esp + 0xd3], 0x31
mov eax, dword [esp + 0x25c]
mov ecx, dword [esp + 0x254]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0049b5b0
mov eax, dword [esp + 0x258]
mov ecx, dword [esp + 0x250]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0049b5b0
mov eax, dword [esp + 0x138]
mov dword [esp], eax
call fcn.007c9a20
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
call fcn.004235e0
mov edx, dword [esp + 0x150]
test edx, edx
jne 0x4751a1
mov dword [esp + 0x1e4], esi
mov eax, 0xf
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov esi, dword [esp + 0x148]
mov edi, dword [esp + 0x1a8]
jae 0x4751b6
mov edx, dword [esp + 0x164]
mov dword [esp + 0x1c4], edx
jmp 0x475344
mov dword [esp + 0x1e4], esi
mov esi, dword [esp + 0x148]
mov edi, dword [esp + 0x1a8]
mov dword [esp + 0x150], edx
mov dword [esp], edx
call fcn.0064bb50
mov edx, dword [esp + 0x164]
mov dword [esp + 0x1c4], edx
mov byte [esp + 0xf0], 0x76
mov eax, dword [esp + 0x26c]
test eax, eax
je 0x47525c
mov dword [esp + 0x164], edx
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
je 0x475263
mov dword [esp + 0x1a8], edi
mov dword [esp + 0x148], esi
mov edi, 9
mov dword [esp], eax
mov dword [esp + 4], 0x1a
call fcn.0064bf00
cmp edi, 9
mov ecx, dword [esp + 0x1e0]
je 0x47529c
xor eax, eax
test al, al
mov esi, dword [esp + 0x148]
jne 0x475275
mov al, 0xe
mov dword [esp + 0x194], eax
mov dword [esp], esi
mov dword [esp + 4], 0
call fcn.004117f0
mov dword [esp], esi
call fcn.0041d160
jmp 0x474f48
mov dword [esp + 0x164], edx
mov dword [esp + 0x1d4], edi
mov eax, dword [esp + 0x1e0]
mov dl, al
jmp 0x475285
mov eax, dword [esp + 0x1a8]
mov dword [esp + 0x1d4], eax
mov dl, cl
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x1d8], ebx
jmp 0x4752c8
mov eax, dword [esp + 0x1a8]
mov dword [esp + 0x1d4], eax
mov dl, cl
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x1d8], ebx
mov esi, dword [esp + 0x148]
movzx ecx, byte [esp + 0xf0]
cmp ecx, 0x4d
je 0x4752f6
mov dword [esp + 0x148], esi
mov edi, 5
mov eax, 0xd
cmp ecx, 0x76
mov ebx, edx
je 0x4771cf
jmp 0x47552d
xor esi, esi
jmp 0x47532b
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
add esi, eax
mov dword [esp + 0x26c], 0
mov eax, dword [esp + 0x1c4]
mov dword [esp], eax
call fcn.00435360
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp esi, eax
jb 0x475300
jmp 0x477249
cmp eax, 0xf
jne 0x47535a
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
jne 0x4751d3
mov dword [esp + 0x1a8], edi
mov dword [esp + 0x148], esi
mov byte [esp + 0x33], 0x15
mov esi, dword [esp + 0x140]
mov eax, dword [esi + 0x1b8]
mov ecx, dword [esi + 0x1bc]
lea edx, [esi + 0x274]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov eax, dword [esp + 0x158]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x200]
mov dword [esp], eax
mov dword [esp + 0x18], 1
mov dword [esp + 0x14], 0x1a
call fcn.00459370
mov dword [esp + 0xd4], 0
mov dword [esp + 0x164], esi
mov dword [esp + 0x150], 0
mov dword [esp + 0x138], 0
mov esi, dword [esp + 0x1e4]
movzx eax, byte [esp + 0xd3]
cmp eax, 0x19
je 0x475102
mov dword [esp + 0x1e4], esi
mov byte [esp + 0xd3], 0x19
mov eax, dword [esp + 0x25c]
mov ecx, dword [esp + 0x254]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0049b5b0
mov eax, dword [esp + 0x258]
mov ecx, dword [esp + 0x250]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0049b5b0
mov eax, dword [esp + 0x138]
mov dword [esp], eax
call fcn.007c9a20
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
call fcn.004235e0
mov edx, dword [esp + 0x150]
test edx, edx
mov esi, dword [esp + 0x148]
mov edi, dword [esp + 0x1a8]
jne 0x4751b6
jmp 0x4751c5
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
add esi, eax
mov dword [esp + 0x26c], 0
mov eax, dword [esp + 0x1c4]
mov dword [esp], eax
call fcn.00435360
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x475480
jmp 0x477249
mov eax, 0x13
mov byte [esp + 0x2b], 0x30
mov ecx, dword [esp + 0xa0]
cmp dword [ecx + 0xc], 0
jne 0x4767f1
mov edi, esi
mov eax, 0xe
movzx ecx, byte [esp + 0x18b]
cmp ecx, 0x11
mov esi, dword [esp + 0x1a8]
mov ebx, dword [esp + 0x204]
jne 0x47550f
xor eax, eax
mov edx, dword [esp + 0x1fc]
jmp 0x472551
mov dword [esp + 0x1d4], esi
mov ecx, dword [esp + 0x1e0]
mov dword [esp + 0x1dc], edi
mov dword [esp + 0x1d8], ebx
mov ebx, ecx
cmp eax, 0xd
jne 0x475545
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x475545
xor esi, esi
jmp 0x4754ac
mov byte [esp + 0x18b], 0x11
mov dword [esp + 0x260], 0x7000000f
xor ecx, ecx
jmp 0x4755a4
mov eax, 3
sub eax, edi
xor eax, edi
setne al
movzx eax, al
cmp edi, eax
jne 0x4754c4
mov eax, dword [esp + 0x1a8]
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0x1e0]
mov bl, al
mov dword [esp + 0x1dc], esi
mov eax, dword [esp + 0x204]
mov dword [esp + 0x1d8], eax
jmp 0x473ef5
mov dword [esp + 0x164], 0
mov dword [esp + 0x150], 0
mov dword [esp + 0x138], 0
jmp 0x474fc8
cmp ebx, 0xb
jne 0x4755fb
imul ebx, ebx
and ebx, 3
cmp ebx, 2
jae 0x4755fb
mov dword [esp + 0x1dc], esi
mov eax, dword [esp + 0x204]
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x1d4], edi
jmp 0x4769f9
mov eax, 0x12
mov edx, dword [esp + 0xa0]
mov edx, dword [edx + 8]
mov ecx, edi
mov edi, esi
mov esi, edx
and esi, 1
inc esi
xor esi, edx
sete bl
movzx esi, bl
cmp edx, esi
mov esi, edi
mov edi, ecx
mov ecx, 0x19
mov ebx, dword [esp + 0x204]
jne 0x476862
cmp ecx, 9
mov dword [esp + 0x1dc], esi
mov dword [esp + 0x1d8], ebx
mov dword [esp + 0x1d4], edi
mov eax, dword [esp + 0x170]
mov dword [esp + 0x204], eax
mov ecx, dword [esp + 0x16c]
mov eax, dword [esp + 0x1e0]
mov bl, al
je 0x472f4f
jmp 0x476126
mov ebx, edx
mov byte [esp + 0x5a], 0x65
mov eax, dword [esp + 0x60]
mov edi, dword [esp + 0xf4]
movzx esi, byte [eax + edi]
cmp esi, 0x22
sete al
mov ecx, esi
or ecx, 2
mov edx, esi
xor edx, 2
add edx, ecx
setne cl
test al, cl
jne 0x475709
movzx eax, word [esi + esi + str.________________________________H]
mov dword [esp + 0x15c], esi
and eax, 8
test ax, ax
mov edx, ebx
mov dword [esp + 0x13c], edx
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x17c]
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x180], edi
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x198], eax
mov dword [esp + 0x1bc], edx
mov dword [esp + 0x184], edi
je 0x475aa8
jmp 0x472b77
mov dword [esp + 0x15c], esi
mov edx, ebx
mov dword [esp + 0x13c], edx
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x180], edi
jmp 0x472b77
mov esi, edx
cmp eax, 0x6e
jne 0x4757d5
mov byte [esp + 0x5a], 0x2d
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0xf4]
movzx ecx, byte [eax + edx]
cmp ecx, 0x22
je 0x47586f
xor eax, eax
test al, al
jne 0x47586f
movzx eax, word [ecx + ecx + str.________________________________H]
mov dword [esp + 0x15c], ecx
and eax, 8
test ax, ax
mov dword [esp + 0x13c], esi
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x17c]
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x180], edx
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x198], eax
mov dword [esp + 0x1bc], esi
mov dword [esp + 0x184], edx
mov edx, esi
je 0x475aa8
jmp 0x472b77
mov byte [esp + 0x5a], 0x6e
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0xf4]
movzx edx, byte [ecx + eax]
cmp edx, 0x22
je 0x4758a4
xor ecx, ecx
test cl, cl
jne 0x4758a4
movzx ecx, word [edx + edx + str.________________________________H]
mov dword [esp + 0x15c], edx
and ecx, 8
test cx, cx
mov edi, dword [esp + 0x17c]
mov dword [esp + 0x1c0], edi
mov ecx, dword [esp + 0x1d4]
mov dword [esp + 0x198], ecx
mov edx, esi
mov dword [esp + 0x1bc], edx
mov dword [esp + 0x13c], edx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x1c8], edi
mov dword [esp + 0x184], eax
mov dword [esp + 0x178], edx
mov dword [esp + 0x174], edi
mov edi, ecx
mov eax, 4
je 0x475aa8
jmp 0x476d3a
mov dword [esp + 0x15c], ecx
mov dword [esp + 0x13c], esi
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x180], edx
mov edx, esi
jmp 0x472b77
mov dword [esp + 0x15c], edx
mov edx, esi
mov dword [esp + 0x178], edx
mov ecx, dword [esp + 0x1d4]
mov edi, ecx
mov esi, dword [esp + 0x17c]
mov dword [esp + 0x174], esi
mov dword [esp + 0x13c], edx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x1c8], esi
mov dword [esp + 0x184], eax
mov eax, 4
jmp 0x476d3a
mov byte [esp + 0x12b], bl
mov dword [esp + 0x120], edi
mov dword [esp + 0x130], esi
mov ecx, edx
or ecx, 2
xor edx, 2
add edx, ecx
mov esi, dword [esp + 0x1e4]
mov dword [esp + 0x1dc], esi
mov eax, dword [esp + 0x204]
mov dword [esp + 0x1d8], eax
mov edx, dword [esp + 0x134]
mov dword [esp + 0x178], edx
mov edi, dword [esp + 0x1d4]
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x174], eax
jne 0x475ad3
movzx eax, byte [esp + 0x5a]
cmp eax, 0x4d
je 0x475675
mov ebx, 0x10
cmp eax, 0x65
jne 0x47573e
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x180], eax
mov esi, dword [esp + 0x17c]
jmp 0x474aae
mov esi, edx
mov byte [esp + 0x4b], 0x3a
mov ebx, dword [esp + 0x15c]
mov al, bl
add al, 0xd0
movzx ecx, al
cmp ecx, 0xa
sbb al, al
mov edx, 3
sub edx, ecx
xor edx, ecx
setne cl
movzx edx, bl
cmp edx, 0x2d
sete ah
imul edx, edx
and edx, 3
cmp edx, 2
sbb dl, dl
test dl, ah
jne 0x4759d7
mov ebx, 0xd
and al, cl
mov edx, esi
je 0x477593
jmp 0x4759d9
mov edx, esi
mov dword [esp + 0x134], edx
movzx eax, byte [esp + 0x5b]
cmp eax, 0x32
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x13c]
je 0x47291a
test esi, esi
je 0x475a9e
mov byte [esp + 0x5b], 0x32
mov edx, 2
mov ecx, esi
and ecx, 1
inc ecx
xor ecx, esi
je 0x47295a
mov eax, dword [esp + 0x1dc]
mov dword [esp + 0x1e4], eax
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x204], eax
mov eax, dword [esp + 0x180]
mov dword [esp + 0x184], eax
mov esi, dword [esp + 0x130]
mov edi, dword [esp + 0x120]
mov bl, byte [esp + 0x12b]
cmp edx, 2
je 0x4758ee
mov byte [esp + 0x12b], bl
mov dword [esp + 0x120], edi
mov dword [esp + 0x130], esi
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0x1dc], eax
mov eax, dword [esp + 0x204]
mov dword [esp + 0x1d8], eax
mov edx, dword [esp + 0x134]
jmp 0x475952
mov byte [esp + 0x5b], 0x32
jmp 0x47295a
mov edi, 2
mov eax, 5
movzx ecx, byte [esp + 0x4b]
cmp ecx, 0x4d
mov ecx, dword [esp + 0x184]
mov dword [esp + 0x180], ecx
je 0x476b91
jmp 0x477105
mov ebx, 6
mov eax, 0xb
movzx ecx, byte [esp + 0x12b]
cmp ecx, 0x2a
mov dword [esp + 0x1dc], esi
mov ecx, dword [esp + 0x204]
mov dword [esp + 0x1d8], ecx
mov dword [esp + 0x1d4], edi
mov edx, dword [esp + 0x13c]
mov edi, dword [esp + 0x1c8]
mov esi, dword [esp + 0x184]
mov ecx, dword [esp + 0x170]
mov dword [esp + 0x204], ecx
mov ecx, dword [esp + 0x16c]
jne 0x475bff
mov dword [esp + 0x180], esi
mov dword [esp + 0x134], edx
cmp eax, 0xb
mov edx, dword [esp + 0x15c]
jne 0x472b35
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x472b35
mov dword [esp + 0x17c], edi
xor ecx, ecx
mov eax, 0x4e
add eax, 0xffffffba
mov esi, dword [esp + 0x11c]
mov edi, dword [esp + 0xfc]
mov bl, byte [esp + 0x12b]
jmp 0x475bb6
mov bl, al
add bl, 0x22
mov edx, ecx
and edx, 1
xor edx, ecx
cmp edx, 0xffffffff
setne dl
movzx edx, dl
add ecx, edx
xor edi, edi
mov dword [esp + 0x1e0], 0
xor esi, esi
mov edx, 3
sub edx, ecx
xor edx, ecx
setne dl
movzx edx, dl
cmp ecx, edx
jb 0x475b90
mov byte [esp + 0x12b], bl
mov dword [esp + 0xfc], edi
mov dword [esp + 0x11c], esi
mov ecx, dword [esp + 0x1e0]
mov edx, dword [esp + 0x134]
mov edi, dword [esp + 0x17c]
mov ebx, dword [esp + 0x180]
jmp 0x476fd8
cmp ebx, 6
je 0x472f2f
imul ebx, ebx
and ebx, 3
cmp ebx, 2
je 0x472f2f
mov esi, ecx
mov ecx, dword [esp + 0x1e0]
mov edx, dword [esp + 0x204]
mov dword [esp + 0x1e0], ecx
mov eax, esi
mov dword [esp + 0x16c], eax
mov esi, edx
mov dword [esp + 0x170], esi
mov dword [esp], eax
call fcn.007c9a20
mov dword [esp], esi
call fcn.004235e0
mov dword [esp + 0x84], 1
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x1a8], eax
mov esi, dword [esp + 0x1dc]
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x204], eax
mov edi, dword [esp + 0xec]
jmp 0x473641
mov byte [esp + 0xf2], 0x19
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
mov dword [esp + 4], str._haspscope__sessionhandle
call fcn.007c58b0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov eax, dword [esp + 0x134]
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x174], eax
mov eax, dword [esp + 0x180]
mov dword [esp + 0x184], eax
mov esi, dword [esp + 0x1dc]
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x204], eax
mov edi, dword [esp + 0x1d4]
jne 0x475ad3
jmp 0x4769f9
mov byte [esp + 0xf2], 0x19
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
mov dword [esp + 4], str._haspscope__sessionhandle
call fcn.007c58b0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
jmp 0x475cb1
mov dword [esp + 0x134], edx
mov eax, 0xa
movzx edx, cl
cmp edx, 0x48
je 0x475ee8
cmp edx, 0x62
je 0x475d0a
mov ecx, 0xf
cmp edx, 0x72
je 0x475c8a
mov esi, dword [esp + 0x1dc]
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x204], eax
mov eax, dword [esp + 0x134]
mov dword [esp + 0x178], eax
mov edi, dword [esp + 0x1d4]
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x174], eax
mov eax, dword [esp + 0x180]
mov dword [esp + 0x184], eax
cmp ecx, 0xf
je 0x475eac
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
je 0x475eac
mov eax, dword [esp + 0xec]
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x20], 0
mov dword [eax + 0x2c], 0
mov dword [eax + 0x28], 0
mov dword [eax + 0x34], 0
mov dword [eax + 0x30], 0
mov eax, dword [esp + 0x7c]
mov eax, dword [eax]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, 1
cmp eax, ecx
sete al
movzx eax, al
mov ecx, dword [esp + 0x78]
mov dword [ecx], eax
mov eax, dword [esp + 0x26c]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x74]
mov dword [edx], ecx
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x70]
mov dword [edx], ecx
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x6c]
mov dword [edx], ecx
mov byte [esp + 0xc3], 0x2b
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x475efb
mov dword [esp + 0x1a8], edi
mov eax, ecx
and eax, 1
xor eax, ecx
mov dword [esp + 0x34], ecx
not eax
test eax, eax
mov dword [esp + 0x1dc], esi
mov eax, dword [esp + 0x204]
mov dword [esp + 0x1d8], eax
jne 0x473b54
jmp 0x475f1b
mov ebx, 0xb
mov byte [esp + 0xf2], 0x19
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
mov dword [esp + 4], str._haspscope__sessionhandle
call fcn.007c58b0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x4755ca
jmp 0x475ad3
mov edi, dword [esp + 0x17c]
mov ebx, dword [esp + 0x180]
jmp 0x47691e
mov dword [esp + 0x1a8], edi
mov dword [esp + 0x34], ecx
mov dword [esp + 0x1dc], esi
mov eax, dword [esp + 0x204]
mov dword [esp + 0x1d8], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
mov dword [esp + 0xc], 0x4775e0
mov dword [esp + 4], 0x471ab0
call fcn.00426140
mov dword [esp + 0x154], eax
mov edi, 1
mov dword [esp], eax
call fcn.00423550
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
mov dword [esp + 0x114], 0
cmp eax, ecx
mov eax, dword [esp + 0x1a8]
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0x1e0]
mov bl, al
mov esi, dword [esp + 0x1dc]
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x204], eax
jne 0x47555c
mov edi, 9
mov cl, bl
mov edx, dword [esp + 0x170]
mov esi, dword [esp + 0x16c]
mov eax, dword [esp + 0x114]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x1e0], ecx
mov dword [esp + 0x16c], esi
mov dword [esp + 0x170], edx
cmp edi, 9
mov edx, dword [esp + 0x1dc]
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x204], eax
mov bl, cl
mov ecx, edx
je 0x4772ae
mov dword [esp + 0x1e4], ecx
mov dword [esp], 0x200
call fcn.0064bac0
xor esi, esi
test eax, eax
je 0x476141
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x476141
mov ecx, eax
mov dword [esp + 0xa8], ecx
mov ebx, 7
mov edi, 0x1e
mov eax, dword [esp + 0x25c]
mov dword [esp + 0xc], ecx
mov esi, dword [esp + 0x1e4]
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x124]
mov dword [esp], eax
call fcn.0049fd70
mov dword [esp + 0x24], eax
test eax, eax
mov edx, dword [esp + 0x178]
mov eax, dword [esp + 0x174]
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x180], eax
mov dword [esp + 0x1dc], esi
mov eax, dword [esp + 0x204]
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x190], esi
mov dword [esp + 0x18c], eax
jne 0x476175
xor edi, edi
cmp ebx, 7
mov edx, dword [esp + 0x1ac]
je 0x476154
mov eax, ebx
and eax, 1
inc eax
xor eax, ebx
je 0x476154
mov eax, 0xe
mov ecx, dword [esp + 0xa0]
cmp dword [ecx + 8], 0
mov ecx, dword [esp + 0x1d4]
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0x1dc], esi
mov ecx, dword [esp + 0x204]
mov dword [esp + 0x1d8], ecx
jne 0x4726d5
cmp eax, 0xd
je 0x476229
imul eax, eax
and eax, 3
cmp eax, 3
je 0x476229
mov dword [esp + 0x260], 0x70000024
xor ecx, ecx
mov eax, dword [esp + 0x1e0]
mov bl, al
jmp 0x4755a4
mov edi, dword [esp + 0x12c]
mov ebx, dword [esp + 0x144]
jmp 0x474b38
mov dword [esp + 0x1e4], esi
mov esi, dword [esp + 0x1a0]
mov ecx, dword [esp + 0x19c]
mov ebx, dword [esp + 0xa8]
jmp 0x474c23
cmp edi, 0xe
je 0x476338
imul edi, edi
and edi, 3
cmp edi, 3
je 0x476338
lea eax, [esp + 0x260]
mov dword [esp + 0x1a0], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x260], eax
mov dword [esp + 0x178], edx
mov ecx, dword [esp + 0x1d4]
mov dword [esp + 0x1a8], ecx
mov ecx, dword [esp + 0x17c]
mov dword [esp + 0x174], ecx
mov ecx, dword [esp + 0x180]
mov dword [esp + 0xf4], ecx
mov dword [esp + 0x1ac], eax
mov eax, dword [esp + 0x1f4]
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x1d0], eax
mov eax, dword [esp + 0x1f8]
mov dword [esp + 0x1cc], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x1f0], eax
mov eax, dword [esp + 0x190]
mov dword [esp + 0x1ec], eax
jmp 0x476820
mov eax, 0x17
mov bh, byte [esp + 0x33]
movzx ecx, bh
cmp ecx, 0xa
jne 0x47634b
xor edi, edi
mov eax, 0x9f
lea ecx, [eax + 0x54]
xor ecx, eax
add ecx, 0xffffff9f
mov dword [esp + 0x204], ecx
mov eax, dword [esp + 0x140]
lea eax, [eax + 0x274]
mov dword [esp + 0x1e4], eax
mov bl, 1
mov eax, dword [esp + 0xd4]
mov esi, dword [esp + 0x164]
mov ecx, dword [esp + 0x150]
mov edx, dword [esp + 0x138]
jmp 0x476302
mov eax, dword [esp + 0x204]
mov bh, al
dec bh
mov eax, 3
sub eax, edi
xor eax, edi
setne al
movzx eax, al
add edi, eax
mov esi, dword [esp + 0x140]
mov eax, dword [esi + 0x1b8]
mov ecx, dword [esi + 0x1bc]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x1e4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x200]
mov dword [esp], eax
mov dword [esp + 0x18], 1
mov dword [esp + 0x14], 0x1a
call fcn.00459370
xor eax, eax
xor ecx, ecx
xor edx, edx
test edi, edi
je 0x476290
test bl, bl
je 0x476290
mov dword [esp + 0x138], edx
mov dword [esp + 0x150], ecx
mov dword [esp + 0x164], esi
mov dword [esp + 0xd4], eax
mov byte [esp + 0x33], bh
mov eax, dword [esp + 0x1e0]
mov cl, al
jmp 0x476f53
mov eax, dword [esp + 0x180]
mov dword [esp + 0xf4], eax
jmp 0x475aa8
mov ecx, dword [esp + 0x1dc]
mov dword [esp + 0x1e4], ecx
mov ebx, dword [esp + 0x1d8]
mov edi, dword [esp + 0x1d4]
mov edx, dword [esp + 0x164]
mov esi, dword [esp + 0x148]
jmp 0x475344
mov byte [esp + 0xf2], 0xf
mov eax, dword [esp + 0x64]
mov dword [esp], eax
mov dword [esp + 4], str.____haspscope_
call fcn.007c58b0
test eax, eax
mov esi, dword [esp + 0x200]
je 0x472d20
mov esi, dword [esp + 0x1dc]
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x204], eax
mov edi, dword [esp + 0x1d4]
jmp 0x475ad3
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1d0], 0
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1f0], 0
mov dword [esp + 0x1ec], 0
jmp 0x476820
mov byte [esp + 0x59], 0x7e
mov bl, 0x28
mov eax, dword [esp + 0x25c]
mov dword [esp], eax
call fcn.0049f150
test eax, eax
jne 0x476569
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x1dc]
mov ecx, dword [esp + 0x1d8]
mov dword [esp + 0x204], ecx
je 0x476570
mov ebx, eax
movzx eax, byte [esp + 0x59]
cmp eax, 0x6f
jne 0x473452
mov edi, 0x1d
mov eax, dword [esp + 0x26c]
mov esi, dword [eax + 4]
call fcn.0040cad0
mov dword [esp + 0x160], 0
mov cl, 0x7a
test eax, eax
je 0x47654e
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x44], esi
mov byte [esp + 0x59], 0x7e
mov edx, 6
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov dword [esp + 0x40], eax
mov esi, ebx
je 0x4772fc
cmp edx, 2
je 0x4725f0
mov dword [esp + 0x1e4], esi
mov eax, dword [esp + 0x14c]
movzx eax, al
cmp eax, 0x13
jne 0x4764de
xor esi, esi
mov dword [esp + 0x160], eax
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x40]
jmp 0x473528
mov edi, 0x12
mov al, 0x13
mov dword [esp + 0x14c], eax
mov dword [esp], 1
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
mov edx, esi
call fcn.00477a60
mov dword [esp + 0x160], eax
mov dword [esp], esi
call fcn.00429990
mov eax, dword [esp + 0x1e0]
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x1a8]
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0x1dc], eax
mov eax, dword [esp + 0x204]
mov dword [esp + 0x1d8], eax
jmp 0x477168
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], esi
mov byte [esp + 0x59], 0x7e
mov esi, ebx
jmp 0x4772fc
mov dword [esp + 0x168], eax
xor eax, eax
movzx edx, bl
cmp edx, 0x2b
je 0x476603
cmp edx, 0x48
je 0x4766c0
mov ecx, 0x18
cmp edx, 0x73
jne 0x47677d
mov esi, dword [esp + 0x1dc]
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x204], eax
cmp ecx, 0x10
je 0x476db0
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x476db0
lea eax, [esp + 0x260]
mov dword [esp + 0x1a0], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 0x260], eax
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1dc], esi
mov ecx, dword [esp + 0x204]
mov dword [esp + 0x1d8], ecx
jmp 0x4763c6
mov ecx, 0x90
lea edx, [ecx + 6]
xor ecx, edx
xor ecx, 0xc
mov dword [esp + 0x204], ecx
xor edx, ecx
lea esi, [esp + 0x260]
mov ecx, dword [esp + 0x1d0]
mov edi, dword [esp + 0x1cc]
jmp 0x47668a
mov bl, dl
xor bl, 0xef
mov edi, eax
or edi, 2
mov ecx, eax
xor ecx, 2
add ecx, edi
setne cl
movzx ecx, cl
add eax, ecx
mov ecx, dword [esp + 0x168]
mov dword [esp + 0x260], ecx
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1a0], esi
mov dword [esp + 0x1ac], ecx
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x1f0], 0
mov dword [esp + 0x1ec], 0
test eax, eax
je 0x476630
mov dword [esp + 0x1cc], edi
mov dword [esp + 0x1d0], ecx
mov eax, dword [esp + 0x204]
cmp eax, 6
je 0x476570
imul eax, eax
and eax, 3
cmp eax, 3
jne 0x476820
jmp 0x476570
mov ecx, 0x15
lea ecx, [ecx + ecx - 0x1d]
mov dword [esp + 0x204], ecx
lea edx, [esp + 0x260]
mov ecx, dword [esp + 0x168]
jmp 0x476737
cmp esi, 0xffffffff
setne bl
movzx esi, bl
add eax, esi
mov dword [esp + 0x260], ecx
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1a0], edx
mov dword [esp + 0x1ac], ecx
mov dword [esp + 0x1d0], 0
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1f0], 0
mov dword [esp + 0x1ec], 0
mov esi, eax
and esi, 1
xor esi, eax
cmp esi, 0xffffffff
setne bl
movzx edi, bl
cmp eax, edi
jb 0x4766e0
mov esi, dword [esp + 0x200]
mov eax, dword [esp + 0x204]
mov dword [esp + 0x200], esi
cmp eax, 0xd
je 0x476820
imul eax, eax
and eax, 3
cmp eax, 2
jne 0x4763fe
jmp 0x476820
mov eax, 0xf
lea ecx, [esp + 0x260]
mov dword [esp + 0x1a0], ecx
mov ecx, dword [esp + 0x168]
mov dword [esp + 0x260], ecx
mov dword [esp + 0x19c], 0
mov esi, dword [esp + 0x1dc]
mov edx, dword [esp + 0x1d8]
mov dword [esp + 0x204], edx
mov dword [esp + 0x1ac], ecx
mov dword [esp + 0x1d0], 0
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1f0], 0
mov dword [esp + 0x1ec], 0
cmp eax, 0xf
jne 0x4725f0
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
mov dword [esp + 0x1dc], esi
mov eax, dword [esp + 0x204]
mov dword [esp + 0x1d8], eax
je 0x4725f0
mov eax, 0x19
movzx ecx, byte [esp + 0xfb]
cmp ecx, 0x28
je 0x4768f4
cmp ecx, 0x46
je 0x474c81
mov eax, 0xc
cmp ecx, 0x50
jne 0x476c58
mov esi, dword [esp + 0x1dc]
mov ebx, dword [esp + 0x1d8]
mov edi, dword [esp + 0x1a8]
cmp eax, 0xc
jne 0x476d9d
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x476d9d
mov dword [esp + 0x204], ebx
mov byte [esp + 0xfb], 0x51
cmp dword [esp + 0x1ac], 0x70000032
jne 0x474e43
mov eax, dword [esp + 0x1ec]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x1f0]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x1cc]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x1d0]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x19c]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x1a0]
mov dword [esp + 0xbc], eax
jmp 0x474ee0
mov ecx, dword [esp + 0x178]
mov dword [esp + 0x134], ecx
mov ecx, dword [esp + 0x1a8]
mov dword [esp + 0x1d4], ecx
mov edi, dword [esp + 0x174]
mov ebx, dword [esp + 0x184]
cmp eax, 0xa
jne 0x476a0f
mov dword [esp + 0x180], ebx
mov dword [esp + 0x17c], edi
mov edi, 0xa
mov ebx, 0x14
mov byte [esp + 0xf2], 0x19
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
mov dword [esp + 4], str._haspscope__sessionhandle
call fcn.007c58b0
test eax, eax
mov edx, dword [esp + 0x134]
je 0x4769c3
cmp edi, 0xa
jne 0x476be7
mov eax, edi
or eax, 2
xor edi, 2
add edi, eax
je 0x476be7
mov esi, dword [esp + 0x1dc]
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x204], eax
mov dword [esp + 0x178], edx
mov edi, dword [esp + 0x1d4]
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x174], eax
mov eax, dword [esp + 0x180]
mov dword [esp + 0x184], eax
jmp 0x475ad3
cmp ebx, 0xd
je 0x476b38
xor eax, eax
test al, al
jne 0x476b38
mov dword [esp + 0x178], edx
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x174], eax
mov eax, dword [esp + 0x180]
mov dword [esp + 0x184], eax
movzx eax, byte [esp + 0xf2]
cmp eax, 0x19
je 0x472c3a
jmp 0x47637a
mov byte [esp + 0xfb], 0x46
mov esi, dword [esp + 0x1ac]
cmp esi, 0x70000032
mov edx, dword [esp + 0x1a0]
mov eax, dword [esp + 0x1d0]
jne 0x476dc3
mov ecx, 3
sub ecx, esi
xor ecx, esi
mov ecx, eax
mov eax, dword [esp + 0x134]
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x174], edi
mov dword [esp + 0x184], ebx
mov eax, dword [esp + 0x1ec]
mov dword [esp + 0xe8], eax
mov ebx, dword [esp + 0x1f0]
mov dword [esp + 0xe4], ebx
mov esi, dword [esp + 0x1cc]
mov dword [esp + 0xe0], esi
mov dword [esp + 0xdc], ecx
mov ecx, dword [esp + 0x19c]
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xbc], edx
mov edx, dword [esp + 0x1dc]
mov edi, dword [esp + 0x1d8]
mov dword [esp + 0x204], edi
mov dword [esp + 0x12c], eax
mov dword [esp + 0x144], ebx
mov ebx, 6
mov dword [esp + 0x1b8], esi
mov esi, edx
mov eax, dword [esp + 0x1d0]
mov dword [esp + 0x1b4], eax
mov edi, dword [esp + 0x1a8]
mov dword [esp + 0x1b0], ecx
je 0x47457a
cmp ebx, 6
jne 0x473a88
imul ebx, ebx
and ebx, 3
cmp ebx, 2
jae 0x473a88
mov esi, dword [esp + 0x1dc]
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x204], eax
jmp 0x474ee0
mov eax, 0x11
mov byte [esp + 0x8b], 0x63
mov cl, 0x62
mov edi, edx
mov edx, dword [esp + 0xb0]
mov byte [esp + edx + 0x312], 0
mov edx, dword [esp + 0xb4]
mov byte [esp + edx + 0x2c1], 0
mov esi, dword [esp + 0xb8]
mov byte [esp + esi + 0x270], 0
mov edx, esi
imul edx, edx
and edx, 3
cmp edx, 2
sete dl
movzx edx, dl
cmp esi, edx
mov edx, edi
jne 0x475d30
mov edi, edx
cmp eax, 5
mov edx, dword [esp + 0x15c]
mov ebx, dword [esp + 0x180]
je 0x4728cd
mov esi, dword [esp + 0x1dc]
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x204], eax
mov dword [esp + 0x178], edi
mov edi, dword [esp + 0x1d4]
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x174], eax
mov dword [esp + 0x184], ebx
jmp 0x475ad3
mov byte [esp + 0x103], 0x3f
mov byte [esp + 0x83], 0x37
mov eax, dword [esp + 0x26c]
mov eax, dword [eax]
mov ecx, eax
or ecx, 2
mov esi, edx
mov edx, eax
xor edx, 2
add edx, ecx
mov edx, esi
setne cl
movzx ecx, cl
and ecx, eax
mov eax, ecx
imul eax, eax
cmp eax, 2
sete al
movzx eax, al
cmp ecx, eax
lea eax, [esp + 0x260]
mov dword [esp + 0x1a4], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xc4], eax
mov al, 0x37
mov edi, dword [esp + 0x17c]
jne 0x4744f3
jmp 0x47742a
mov byte [esp + 0xfb], 0x50
cmp dword [esp + 0x1ac], 0x70000032
mov eax, dword [esp + 0x1dc]
mov dword [esp + 0x1e4], eax
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x204], eax
mov ebx, dword [esp + 0x1ec]
mov dword [esp + 0xe8], ebx
mov edi, dword [esp + 0x1f0]
mov dword [esp + 0xe4], edi
mov esi, dword [esp + 0x1cc]
mov dword [esp + 0xe0], esi
mov edx, dword [esp + 0x1d0]
mov dword [esp + 0xdc], edx
mov ecx, dword [esp + 0x19c]
mov dword [esp + 0xd8], ecx
mov eax, dword [esp + 0x1a0]
mov dword [esp + 0xbc], eax
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x144], edi
mov dword [esp + 0x1b8], esi
mov esi, dword [esp + 0x1e4]
mov dword [esp + 0x1b4], edx
mov dword [esp + 0x1b0], ecx
mov eax, dword [esp + 0x1c0]
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0x1d4], eax
mov eax, 0xa
mov edx, dword [esp + 0x1bc]
mov edi, dword [esp + 0x1a8]
je 0x474ee0
cmp eax, 4
jne 0x476e85
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov eax, dword [esp + 0x184]
mov dword [esp + 0x180], eax
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x1c0], eax
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x198], eax
mov dword [esp + 0x1bc], edx
mov esi, dword [esp + 0x1dc]
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x204], eax
jne 0x472b77
jmp 0x47457a
mov dword [esp + 0x204], ebx
mov dword [esp + 0x1a8], edi
jmp 0x4726d5
mov dword [esp + 0x1e4], esi
mov ebx, dword [esp + 0x204]
jmp 0x474f48
mov eax, dword [esp + 0x134]
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x174], edi
mov dword [esp + 0x184], ebx
mov ebx, dword [esp + 0x1ec]
mov dword [esp + 0xe8], ebx
mov eax, dword [esp + 0x1dc]
mov dword [esp + 0x1e4], eax
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x204], eax
mov esi, dword [esp + 0x1f0]
mov dword [esp + 0xe4], esi
mov ecx, dword [esp + 0x1cc]
mov dword [esp + 0xe0], ecx
mov edi, dword [esp + 0x1d0]
mov dword [esp + 0xdc], edi
mov eax, dword [esp + 0x19c]
mov dword [esp + 0xd8], eax
mov dword [esp + 0xbc], edx
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x144], esi
mov esi, dword [esp + 0x1e4]
mov dword [esp + 0x1b8], ecx
mov dword [esp + 0x1b4], edi
mov edi, dword [esp + 0x1a8]
jmp 0x474573
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x1c0], eax
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x198], eax
mov dword [esp + 0x1bc], edx
mov esi, dword [esp + 0x1dc]
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x204], eax
jmp 0x47457a
mov dword [esp + 0x204], 0x18
mov byte [esp + 0xf3], 0x28
mov eax, dword [esp + 0x154]
mov dword [esp], eax
call fcn.00430370
mov ecx, dword [esp + 0x26c]
add ecx, 0x18
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x200]
mov ecx, dword [ecx]
add ecx, 0xc
mov dword [esp + 0x1e8], ecx
mov ecx, dword [esp + 0xa4]
cmp dword [ecx], 1
je 0x476f4a
mov dword [esp + 0x9c], eax
xor eax, eax
test al, al
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x1a8], eax
mov al, bl
mov dword [esp + 0x1e0], eax
mov esi, dword [esp + 0x1dc]
mov ecx, ebx
mov ebx, dword [esp + 0x1d8]
je 0x476f8b
jmp 0x476f53
mov dword [esp + 0x9c], eax
mov ecx, ebx
cmp dword [esp + 0x204], 0xb
mov esi, dword [esp + 0x1dc]
mov ebx, dword [esp + 0x1d8]
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x1a8], eax
mov al, cl
mov dword [esp + 0x1e0], eax
jne 0x473c13
jmp 0x4753eb
mov eax, 0x11
mov dword [esp + 0x1dc], esi
mov dword [esp + 0x1d8], ebx
mov ecx, dword [esp + 0x1a8]
mov dword [esp + 0x1d4], ecx
mov edx, dword [esp + 0x13c]
mov edi, dword [esp + 0x1c8]
mov ebx, dword [esp + 0x184]
mov ecx, dword [esp + 0x1e8]
mov ecx, dword [ecx]
mov dword [esp + 0x118], ecx
mov ecx, dword [esp + 0x1e0]
cmp eax, 8
mov eax, dword [esp + 0x170]
mov dword [esp + 0x204], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 0x13c], edx
mov dword [esp + 0x1c8], edi
mov dword [esp + 0x184], ebx
mov bl, cl
mov ecx, eax
je 0x472f4f
movzx eax, byte [esp + 0xf1]
cmp eax, 0x1e
je 0x473dc2
mov dword [esp + 0x134], ebx
cmp eax, 0x38
mov esi, dword [esp + 0x9c]
jne 0x47708d
mov byte [esp + 0xf1], 0x5a
mov eax, dword [esp + 0x258]
mov ecx, dword [esp + 0x98]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x118]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.0049d6c0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x68], esi
mov esi, dword [esp + 0x154]
jne 0x473e35
jmp 0x477146
mov edi, 0xe
mov ebx, 0xf
mov byte [esp + 0xf1], 0x38
mov eax, dword [esp + 0x258]
mov ecx, dword [esp + 0x98]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x118]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.0049d6c0
test eax, eax
mov eax, dword [esp + 0x134]
mov dword [esp + 0x1e0], eax
mov edx, dword [esp + 0x178]
mov eax, dword [esp + 0x174]
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x184]
mov dword [esp + 0x180], eax
mov dword [esp + 0x68], esi
jne 0x477593
cmp edi, 2
je 0x475988
mov eax, dword [esp + 0x1e0]
mov dword [esp + 0x134], eax
mov dword [esp + 0x178], edx
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x174], eax
mov eax, dword [esp + 0x180]
mov dword [esp + 0x184], eax
mov esi, dword [esp + 0x154]
mov dword [esp + 0x154], esi
mov ecx, 0x18
mov edi, 6
movzx eax, byte [esp + 0xd2]
cmp eax, 0x41
jne 0x477251
cmp edi, 6
jne 0x477544
mov eax, edi
not eax
and eax, 1
add eax, edi
je 0x477544
mov edi, 2
mov byte [esp + 0xd2], 0x3a
mov esi, dword [esp + 0x154]
mov dword [esp], esi
call fcn.00423570
mov dword [esp], esi
call fcn.00423550
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x114], eax
mov ebx, dword [esp + 0x134]
jne 0x473ef5
cmp edi, 2
je 0x4772ae
xor eax, eax
test al, al
jne 0x4772ae
mov edi, 0xf
mov byte [esp + 0xf0], 0x4d
mov dword [esp + 0x26c], 0
mov eax, dword [esp + 0x1c4]
mov dword [esp], eax
call fcn.00435360
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x1a8], eax
mov al, bl
mov dword [esp + 0x1e0], eax
mov eax, dword [esp + 0x1dc]
mov dword [esp + 0x1e4], eax
mov ebx, dword [esp + 0x1d8]
cmp edi, 0xc
jne 0x477249
mov eax, 3
sub eax, edi
xor eax, edi
jne 0x4749ab
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp ecx, 0xe
je 0x4775b1
xor eax, eax
test al, al
jne 0x4775b1
mov byte [esp + 0xd2], 0x41
mov esi, dword [esp + 0x154]
mov dword [esp], esi
call fcn.00423570
mov dword [esp], esi
call fcn.00423550
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x114], eax
mov ebx, dword [esp + 0x134]
jne 0x473ef5
mov eax, 0x11
mov cl, byte [esp + 0xf3]
movzx ecx, cl
cmp ecx, 0x20
je 0x477319
mov edi, 0xd
cmp ecx, 0x73
je 0x476ec2
mov esi, dword [esp + 0x1dc]
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x204], eax
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x1a8], eax
mov al, bl
mov dword [esp + 0x1e0], eax
cmp edi, 0xd
je 0x473ba3
imul edi, edi
and edi, 3
cmp edi, 3
jne 0x473544
jmp 0x473ba3
mov ecx, dword [esp + 0x1d4]
mov dword [esp + 0x1a8], ecx
mov cl, bl
mov dword [esp + 0x1e0], ecx
mov esi, dword [esp + 0x1dc]
mov ebx, dword [esp + 0x1d8]
mov dword [esp + 0x1e4], esi
cmp eax, 0xc
mov ecx, dword [esp + 0x184]
mov edx, dword [esp + 0x178]
mov esi, dword [esp + 0x174]
mov edi, dword [esp + 0x1a8]
je 0x47751a
xor eax, eax
test al, al
jne 0x47751a
mov edi, 0xb
mov byte [esp + 0xf3], 0x20
mov eax, dword [esp + 0x154]
mov dword [esp], eax
call fcn.00430370
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x26c]
add eax, 0x18
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0xa4]
mov eax, dword [eax]
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
mov edx, dword [esp + 0x200]
mov edx, dword [edx]
add edx, 0xc
mov dword [esp + 0x1e8], edx
cmp eax, ecx
mov esi, dword [esp + 0x1e4]
jne 0x476f8b
cmp edi, 2
mov dword [esp + 0x1dc], esi
mov dword [esp + 0x1d8], ebx
mov edx, dword [esp + 0x178]
mov eax, dword [esp + 0x1a8]
mov dword [esp + 0x1d4], eax
mov edi, dword [esp + 0x174]
mov eax, dword [esp + 0x184]
mov dword [esp + 0x180], eax
mov al, byte [esp + 0x83]
jne 0x473c13
mov dword [esp + 0x134], edx
movzx edx, al
xor ecx, ecx
cmp edx, 0x37
jne 0x47757a
mov ebx, dword [esp + 0x180]
jmp 0x477475
mov eax, 0xa8
add al, 0x5f
mov edx, ecx
not edx
and edx, 1
add edx, ecx
setne dl
movzx edx, dl
add ecx, edx
mov edx, dword [esp + 0x1a4]
mov dword [edx], 0x70000032
test ecx, ecx
jne 0x477486
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 1
jbe 0x477450
mov dword [esp + 0xe8], 0
mov esi, dword [esp + 0x1dc]
mov ecx, dword [esp + 0x1d8]
mov dword [esp + 0x204], ecx
mov ecx, dword [esp + 0x134]
mov dword [esp + 0x178], ecx
mov ecx, dword [esp + 0x1d4]
mov dword [esp + 0x174], edi
mov edi, ecx
mov dword [esp + 0x184], ebx
mov byte [esp + 0x83], al
mov dword [esp + 0xe4], 0
mov eax, dword [esp + 0x1f8]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x1f4]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x1a4]
mov dword [esp + 0xbc], eax
jmp 0x474ee0
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x1d8], ebx
mov dword [esp + 0x1d4], edi
mov edi, esi
mov dword [esp + 0x180], ecx
jmp 0x4744f3
mov esi, dword [esp + 0x1dc]
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x204], eax
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x1a8], eax
mov eax, dword [esp + 0x134]
mov dword [esp + 0x1e0], eax
jmp 0x473544
mov dword [esp + 0x17c], edi
mov esi, 0xf1
lea edx, [esi - 0xe0]
xor edx, esi
jmp 0x474a42
cmp ebx, 0xd
jne 0x4729f3
mov edi, edx
mov esi, dword [esp + 0x154]
mov ebx, dword [esp + 0x180]
jmp 0x472a3b
mov eax, dword [esp + 0x170]
mov dword [esp + 0x204], eax
mov ecx, dword [esp + 0x16c]
mov ebx, dword [esp + 0x134]
jmp 0x472f4f