Function at 0x477d20
Capabilities:
Check for peb ntglobalflag flag
Contain obfuscated stackstrings
Encode data using base64
Get number of processors
Get process heap flags
Get process heap force flags
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x524ffc
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1dc
push ebx
push esi
push edi
lea ecx, [esp + 0x20]
mov dword [esp + 0x1f0], 1
call fcn.004f5840
lea ecx, [esp + 0x18]
mov byte [esp + 0x1f0], 2
call fcn.004f5840
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1f0], 3
call fcn.004f5840
push 0x50
push 0x54b7c8
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1f8], 4
call fcn.004f58e0
mov al, 0x2c
mov ecx, 0x40
mov byte [esp + 0x40], al
mov byte [esp + 0x41], al
mov byte [esp + 0x42], al
mov byte [esp + 0x43], al
mov byte [esp + 0x44], al
mov byte [esp + 0x45], al
mov byte [esp + 0x46], al
mov al, 0x2d
mov byte [esp + 0x47], al
mov byte [esp + 0x48], al
mov byte [esp + 0x49], al
mov byte [esp + 0x4a], al
mov byte [esp + 0x4b], al
mov byte [esp + 0x4c], al
mov byte [esp + 0x4d], al
mov al, 0x2e
mov byte [esp + 0x4e], al
mov byte [esp + 0x4f], al
mov byte [esp + 0x50], al
mov byte [esp + 0x51], al
mov byte [esp + 0x52], al
mov al, 0x20
mov byte [esp + 0x1f0], 5
mov byte [esp + 0x28], 0x14
mov byte [esp + 0x29], 0x13
mov byte [esp + 0x2a], 0x15
mov byte [esp + 0x2b], 0x1c
mov byte [esp + 0x2c], 0x11
mov byte [esp + 0x2d], 0x1e
mov byte [esp + 0x2e], 0xa
mov byte [esp + 0x2f], 0x23
mov byte [esp + 0x30], 0xf
mov byte [esp + 0x31], 0x24
mov byte [esp + 0x32], 0xe
mov byte [esp + 0x33], 0x1d
mov byte [esp + 0x34], 0x21
mov byte [esp + 0x35], 0x26
mov byte [esp + 0x36], 0xc
mov byte [esp + 0x37], 0x22
mov byte [esp + 0x38], 0x28
mov byte [esp + 0x39], 0x16
mov byte [esp + 0x3a], 0x10
mov byte [esp + 0x3b], 0x25
mov byte [esp + 0x3c], 0x1f
mov byte [esp + 0x68], 1
mov byte [esp + 0x69], 2
mov byte [esp + 0x6a], 4
mov byte [esp + 0x6b], 8
mov byte [esp + 0x6c], 0x10
mov byte [esp + 0x6d], al
mov byte [esp + 0x6e], cl
mov byte [esp + 0x6f], 1
mov byte [esp + 0x70], 2
mov byte [esp + 0x71], 4
mov byte [esp + 0x72], 8
mov byte [esp + 0x73], 0x10
mov edx, 0x80
xor ebx, ebx
mov byte [esp + 0x74], al
mov byte [esp + 0x75], cl
mov byte [esp + 0x76], 1
mov byte [esp + 0x77], 8
mov byte [esp + 0x78], 0x10
mov byte [esp + 0x79], al
mov byte [esp + 0x7a], dl
mov byte [esp + 0x54], bl
mov byte [esp + 0x55], 1
mov byte [esp + 0x56], 2
mov byte [esp + 0x57], bl
mov byte [esp + 0x58], bl
mov byte [esp + 0x59], bl
mov byte [esp + 0x5a], bl
mov byte [esp + 0x5b], bl
mov byte [esp + 0x5c], bl
mov byte [esp + 0x5d], bl
mov byte [esp + 0x5e], 3
mov byte [esp + 0x5f], 3
mov byte [esp + 0x60], 3
mov byte [esp + 0x61], bl
mov byte [esp + 0x62], 3
mov byte [esp + 0x63], bl
mov byte [esp + 0x64], bl
mov byte [esp + 0x65], 2
mov byte [esp + 0x66], 2
mov byte [esp + 0x10], 1
mov byte [esp + 0x11], 2
mov byte [esp + 0x12], 4
mov byte [esp + 0x13], 8
mov byte [esp + 0x14], 0x10
mov byte [esp + 0x15], al
mov byte [esp + 0x16], cl
mov byte [esp + 0x7c], bl
mov byte [esp + 0x7d], bl
mov byte [esp + 0x7e], 1
mov byte [esp + 0x7f], 1
mov byte [esp + 0x80], 2
mov byte [esp + 0x81], 2
mov byte [esp + 0x82], 3
mov byte [esp + 0x83], 4
mov byte [esp + 0x84], 4
mov byte [esp + 0x85], 5
mov byte [esp + 0x86], 6
mov byte [esp + 0x87], 7
mov byte [esp + 0x88], 7
mov byte [esp + 0x89], 8
mov byte [esp + 0x8a], 9
mov byte [esp + 0x8b], 9
mov byte [esp + 0x8c], 0xa
mov byte [esp + 0x8d], 0xb
mov byte [esp + 0x8e], 0xb
mov byte [esp + 0x8f], 0xc
mov byte [esp + 0x90], 0xd
mov byte [esp + 0x91], 0xe
mov byte [esp + 0x92], 0xe
mov byte [esp + 0x93], 0xf
mov byte [esp + 0x94], 0x10
mov byte [esp + 0x95], 0x11
mov byte [esp + 0x96], 0x12
mov byte [esp + 0x97], 0x12
mov byte [esp + 0x98], 0x13
mov byte [esp + 0x99], 0x14
mov byte [esp + 0x9a], 0x15
mov byte [esp + 0x9b], 0x15
mov byte [esp + 0x9c], 0x16
mov byte [esp + 0x9d], 0x17
mov byte [esp + 0x9e], 0x17
mov byte [esp + 0x9f], 0x18
mov byte [esp + 0xa0], 0x19
mov byte [esp + 0xa1], 0x1a
mov byte [esp + 0xa2], 0x1a
mov byte [esp + 0xa3], 0x1b
mov byte [esp + 0xa4], 0x1c
mov byte [esp + 0xa5], 0x1c
mov byte [esp + 0xa6], 0x1d
mov byte [esp + 0xa7], 0x1e
mov byte [esp + 0xa8], 0x1e
mov byte [esp + 0xa9], 0x1f
mov byte [esp + 0xaa], al
mov eax, 0x38
mov word [esp + 0xb8], ax
mov word [esp + 0xba], ax
mov eax, 0x3b
mov byte [esp + 0xab], 0x21
mov word [esp + 0xc0], ax
mov word [esp + 0xc2], ax
mov eax, 0x3e
mov byte [esp + 0xac], 0x21
mov word [esp + 0xc8], ax
mov word [esp + 0xca], ax
mov eax, 0x41
mov byte [esp + 0xad], 0x22
mov word [esp + 0xd0], ax
mov word [esp + 0xd2], ax
mov eax, 0x44
mov byte [esp + 0xae], 0x23
mov word [esp + 0xd8], ax
mov word [esp + 0xda], ax
mov eax, 0x47
mov byte [esp + 0xaf], 0x23
mov word [esp + 0xe0], ax
mov word [esp + 0xe2], ax
mov eax, 0x4a
mov byte [esp + 0xb0], 0x24
mov word [esp + 0xe8], ax
mov word [esp + 0xea], ax
mov eax, 0x53
mov byte [esp + 0xb1], 0x25
mov word [esp + 0xfc], ax
mov word [esp + 0xfe], ax
mov eax, 0x55
mov byte [esp + 0xb2], 0x25
mov word [esp + 0x102], ax
mov word [esp + 0x104], ax
mov eax, 0x57
mov byte [esp + 0xb3], 0x26
mov word [esp + 0x108], ax
mov word [esp + 0x10a], ax
mov eax, 0x5c
mov byte [esp + 0xb4], 0x27
mov word [esp + 0x114], ax
mov word [esp + 0x116], ax
mov eax, 0x5f
mov byte [esp + 0xb5], 0x28
mov word [esp + 0x11c], ax
mov word [esp + 0x11e], ax
mov byte [esp + 0xb6], 0x28
mov byte [esp + 0xb7], 0x29
mov word [esp + 0xbc], 0x39
mov word [esp + 0xbe], 0x3a
mov word [esp + 0xc4], 0x3c
mov word [esp + 0xc6], 0x3d
mov word [esp + 0xcc], 0x3f
mov word [esp + 0xce], cx
mov word [esp + 0xd4], 0x42
mov word [esp + 0xd6], 0x43
mov word [esp + 0xdc], 0x45
mov word [esp + 0xde], 0x46
mov word [esp + 0xe4], 0x48
mov word [esp + 0xe6], 0x49
mov word [esp + 0xec], 0x4b
mov word [esp + 0xee], 0x4c
mov word [esp + 0xf0], 0x4d
mov word [esp + 0xf2], 0x4e
mov word [esp + 0xf4], 0x4f
mov word [esp + 0xf6], 0x50
mov word [esp + 0xf8], 0x51
mov word [esp + 0xfa], 0x52
mov word [esp + 0x100], 0x54
mov word [esp + 0x106], 0x56
mov word [esp + 0x10c], 0x58
mov word [esp + 0x10e], 0x59
mov word [esp + 0x110], 0x5a
mov word [esp + 0x112], 0x5b
mov word [esp + 0x118], 0x5d
mov word [esp + 0x11a], 0x5e
mov word [esp + 0x120], 0x60
mov word [esp + 0x122], 0x61
mov eax, 0x62
mov word [esp + 0x124], ax
mov word [esp + 0x126], ax
mov eax, 0x65
mov word [esp + 0x128], 0x63
mov word [esp + 0x12c], ax
mov word [esp + 0x12e], ax
mov eax, 0x68
mov word [esp + 0x12a], 0x64
mov word [esp + 0x134], ax
mov word [esp + 0x136], ax
mov eax, 0x6b
mov word [esp + 0x130], 0x66
mov word [esp + 0x13c], ax
mov word [esp + 0x13e], ax
mov eax, 0x6e
mov word [esp + 0x132], 0x67
mov word [esp + 0x144], ax
mov word [esp + 0x146], ax
mov eax, 0x71
mov word [esp + 0x138], 0x69
mov word [esp + 0x14c], ax
mov word [esp + 0x14e], ax
mov eax, 0x74
mov word [esp + 0x13a], 0x6a
mov word [esp + 0x154], ax
mov word [esp + 0x156], ax
mov eax, 0x77
mov word [esp + 0x140], 0x6c
mov word [esp + 0x15c], ax
mov word [esp + 0x15e], ax
mov eax, 0x7a
mov word [esp + 0x142], 0x6d
mov word [esp + 0x164], ax
mov word [esp + 0x166], ax
mov eax, 0x7d
mov word [esp + 0x148], 0x6f
mov word [esp + 0x16c], ax
mov word [esp + 0x16e], ax
mov eax, 0x85
mov word [esp + 0x14a], 0x70
mov word [esp + 0x180], ax
mov word [esp + 0x182], ax
mov eax, 0x86
mov word [esp + 0x150], 0x72
mov word [esp + 0x184], ax
mov word [esp + 0x186], ax
mov eax, 0x89
mov word [esp + 0x152], 0x73
mov word [esp + 0x18c], ax
mov word [esp + 0x18e], ax
mov eax, 0x8c
mov word [esp + 0x158], 0x75
mov word [esp + 0x194], ax
mov word [esp + 0x196], ax
mov eax, 0x8f
mov word [esp + 0x15a], 0x76
mov word [esp + 0x160], 0x78
mov word [esp + 0x162], 0x79
mov word [esp + 0x168], 0x7b
mov word [esp + 0x16a], 0x7c
mov word [esp + 0x170], 0x7e
mov word [esp + 0x172], 0x7f
mov word [esp + 0x174], dx
mov word [esp + 0x176], dx
mov word [esp + 0x178], 0x81
mov word [esp + 0x17a], 0x82
mov word [esp + 0x17c], 0x83
mov word [esp + 0x17e], 0x84
mov word [esp + 0x188], 0x87
mov word [esp + 0x18a], 0x88
mov word [esp + 0x190], 0x8a
mov word [esp + 0x192], 0x8b
mov word [esp + 0x198], 0x8d
mov word [esp + 0x19a], 0x8e
mov word [esp + 0x19c], ax
mov word [esp + 0x19e], ax
mov word [esp + 0x1a0], 0x90
mov word [esp + 0x1a2], 0x91
mov word [esp + 0x1a4], 0x92
mov word [esp + 0x1a6], 0x93
mov word [esp + 0x1a8], 0x94
mov eax, 0x95
push ecx
mov word [esp + 0x1ae], ax
mov word [esp + 0x1b0], ax
mov eax, 0x97
mov ecx, esp
mov word [esp + 0x1b4], ax
mov word [esp + 0x1b6], ax
mov word [esp + 0x1b8], ax
lea eax, [esp + 0x21c]
mov dword [esp + 0x10], esp
push eax
mov word [esp + 0x1b6], 0x96
call fcn.004f5850
lea ecx, [esp + 0x1c]
call fcn.004f5b70
lea ecx, [esp + 0x18]
call fcn.004f5d00
test ax, ax
jg 0x4786d6
lea ecx, [esp + 0x24]
mov byte [esp + 0x1f0], 4
call fcn.004f5980
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1f0], 3
call fcn.004f5980
lea ecx, [esp + 0x18]
mov byte [esp + 0x1f0], 2
call fcn.004f5980
lea ecx, [esp + 0x20]
mov byte [esp + 0x1f0], 1
call fcn.004f5980
mov eax, dword [esp + 0x20c]
mov esi, dword [esp + 0x208]
cmp esi, eax
mov byte [esp + 0x1f0], 7
mov edi, eax
je 0x4786ab
mov ecx, esi
call fcn.004f5980
add esi, 4
cmp esi, edi
jne 0x478696
mov esi, dword [esp + 0x208]
push esi
call fcn.00514140
add esp, 4
mov dword [esp + 0x208], ebx
mov dword [esp + 0x20c], ebx
mov dword [esp + 0x210], ebx
mov byte [esp + 0x1f0], 6
jmp 0x479187
movsx eax, word [esp + 0x21c]
sub eax, ebx
je 0x478b7e
sub eax, 0x101
je 0x478925
sub eax, 2
jne case.default.0x478c77
mov esi, dword [esp + 0x1fc]
lea ecx, [esp + 0x18]
call fcn.004f5d00
cmp ax, 0x15
jg 0x4787b4
lea ecx, [esp + 0x24]
mov byte [esp + 0x1f0], 4
call fcn.004f5980
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1f0], 3
call fcn.004f5980
lea ecx, [esp + 0x18]
mov byte [esp + 0x1f0], 2
call fcn.004f5980
lea ecx, [esp + 0x20]
mov byte [esp + 0x1f0], 1
call fcn.004f5980
mov eax, dword [esp + 0x20c]
mov esi, dword [esp + 0x208]
cmp esi, eax
mov byte [esp + 0x1f0], 0xf
mov edi, eax
je 0x478789
mov ecx, esi
call fcn.004f5980
add esi, 4
cmp esi, edi
jne 0x478774
mov esi, dword [esp + 0x208]
push esi
call fcn.00514140
add esp, 4
mov dword [esp + 0x208], ebx
mov dword [esp + 0x20c], ebx
mov dword [esp + 0x210], ebx
mov byte [esp + 0x1f0], 0xe
jmp 0x479187
push 0x15
lea ecx, [esp + 0x1c]
call fcn.004f5b60
movsx ecx, si
push ecx
mov dl, byte [esp + ecx + 0x14]
mov ecx, esp
test dl, al
je 0x47887b
mov dword [esp + 0x10], esp
push 6
push 0x54b7c0
call fcn.004f58e0
lea edx, [esp + 0x1cc]
push edx
call fcn.004fd210
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebx
jne 0x4787fd
mov eax, 0x530164
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x214]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x1cc]
and ecx, 3
cmp eax, ebx
rep movsb byte es:[edi], byte [esi]
je 0x478861
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x478858
cmp al, 0xff
je 0x478858
dec al
mov byte [ecx], al
mov dword [esp + 0x1cc], ebx
mov dword [esp + 0x1d0], ebx
mov dword [esp + 0x1d4], ebx
jmp case.default.0x478c77
push ecx
call fcn.00514140
add esp, 4
mov dword [esp + 0x1cc], ebx
mov dword [esp + 0x1d0], ebx
mov dword [esp + 0x1d4], ebx
jmp case.default.0x478c77
mov dword [esp + 0x10], esp
push 6
push 0x54b7b8
call fcn.004f58e0
lea ecx, [esp + 0x1bc]
push ecx
call fcn.004fd210
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebx
jne 0x4788a7
mov eax, 0x530164
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0x1bc]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x214]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, ebx
rep movsb byte es:[edi], byte [esi]
je 0x47890b
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x478902
cmp al, 0xff
je 0x478902
dec al
mov byte [ecx], al
mov dword [esp + 0x1bc], ebx
mov dword [esp + 0x1c0], ebx
mov dword [esp + 0x1c4], ebx
jmp case.default.0x478c77
push ecx
call fcn.00514140
add esp, 4
mov dword [esp + 0x1bc], ebx
mov dword [esp + 0x1c0], ebx
mov dword [esp + 0x1c4], ebx
jmp case.default.0x478c77
movsx esi, word [esp + 0x1fc]
lea ecx, [esp + 0x18]
call fcn.004f5d00
movsx ecx, ax
mov al, byte [esp + esi + 0x40]
and eax, 0xff
add eax, 3
cmp ecx, eax
jg 0x4789ed
lea ecx, [esp + 0x24]
mov byte [esp + 0x1f0], 4
call fcn.004f5980
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1f0], 3
call fcn.004f5980
lea ecx, [esp + 0x18]
mov byte [esp + 0x1f0], 2
call fcn.004f5980
lea ecx, [esp + 0x20]
mov byte [esp + 0x1f0], 1
call fcn.004f5980
mov eax, dword [esp + 0x20c]
mov esi, dword [esp + 0x208]
cmp esi, eax
mov byte [esp + 0x1f0], 0xd
mov edi, eax
je 0x4789c2
mov ecx, esi
call fcn.004f5980
add esi, 4
cmp esi, edi
jne 0x4789ad
mov esi, dword [esp + 0x208]
push esi
call fcn.00514140
add esp, 4
mov dword [esp + 0x208], ebx
mov dword [esp + 0x20c], ebx
mov dword [esp + 0x210], ebx
mov byte [esp + 0x1f0], 0xc
jmp 0x479187
push 6
push 0x54b7b0
lea ecx, [esp + 0x24]
call fcn.004f5de0
mov al, byte [esp + esi + 0x54]
lea ecx, [esp + 0x1c]
shl al, 1
push eax
push 5
mov byte [esp + 0x14], al
call fcn.004f5c80
movzx dx, byte [esp + esi + 0x40]
add edx, 3
lea ecx, [esp + 0x18]
push edx
call fcn.004f5b60
test byte [esp + esi + 0x68], al
je 0x478ad9
push ecx
lea eax, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x10], esp
push eax
call fcn.004f5850
lea ecx, [esp + 0x1dc]
push ecx
call fcn.004fd210
mov edi, dword [eax + 4]
add esp, 8
cmp edi, ebx
jne 0x478a5d
mov edi, 0x530164
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0x1dc]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x214]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, ebx
rep movsb byte es:[edi], byte [esi]
je 0x478abf
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x478ab6
cmp al, 0xff
je 0x478ab6
dec al
mov byte [ecx], al
mov dword [esp + 0x1dc], ebx
mov dword [esp + 0x1e0], ebx
mov dword [esp + 0x1e4], ebx
jmp case.default.0x478c77
push ecx
call fcn.00514140
add esp, 4
mov dword [esp + 0x1dc], ebx
mov dword [esp + 0x1e0], ebx
mov dword [esp + 0x1e4], ebx
jmp case.default.0x478c77
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x1c]
inc al
push eax
push 5
call fcn.004f5c80
push ecx
lea eax, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x10], esp
push eax
call fcn.004f5850
lea ecx, [esp + 0x2c]
push ecx
call fcn.004fd210
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebx
jne 0x478b15
mov eax, 0x530164
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0x2c]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x214]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, ebx
rep movsb byte es:[edi], byte [esi]
je 0x478b6d
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x478b64
cmp al, 0xff
je 0x478b64
dec al
mov byte [ecx], al
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
jmp case.default.0x478c77
push ecx
call fcn.00514140
add esp, 4
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
jmp case.default.0x478c77
movsx eax, word [esp + 0x1fc]
mov cl, byte [esp + eax + 0x28]
mov byte [esp + 0xc], cl
lea ecx, [esp + 0x18]
mov edi, dword [esp + 0xc]
and edi, 0xff
call fcn.004f5d00
movsx edx, ax
lea eax, [edi + 3]
cmp eax, edx
jl 0x478c4f
lea ecx, [esp + 0x24]
mov byte [esp + 0x1f0], 4
call fcn.004f5980
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1f0], 3
call fcn.004f5980
lea ecx, [esp + 0x18]
mov byte [esp + 0x1f0], 2
call fcn.004f5980
lea ecx, [esp + 0x20]
mov byte [esp + 0x1f0], 1
call fcn.004f5980
mov eax, dword [esp + 0x20c]
mov esi, dword [esp + 0x208]
cmp esi, eax
mov byte [esp + 0x1f0], 9
mov edi, eax
je 0x478c24
mov ecx, esi
call fcn.004f5980
add esi, 4
cmp esi, edi
jne 0x478c0f
mov esi, dword [esp + 0x208]
push esi
call fcn.00514140
add esp, 4
mov dword [esp + 0x208], ebx
mov dword [esp + 0x20c], ebx
mov dword [esp + 0x210], ebx
mov byte [esp + 0x1f0], 8
jmp 0x479187
movzx si, byte [esp + 0xc]
lea ecx, [esi + 3]
push ecx
lea ecx, [esp + 0x1c]
call fcn.004f5b60
mov byte [esp + 0xc], al
movsx eax, word [esp + 0x1fc]
cmp eax, 0x14
ja case.default.0x478c77
jmp dword [eax*4 + 0x4791d8]
mov eax, dword [esp + 0xc]
and eax, 0xff
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
jmp 0x4790d6
mov al, byte [esp + 0xc]
cmp al, 0x7f
jbe 0x478cbf
cmp al, 0xbc
jae 0x478cbf
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x214]
and eax, 0xff
movsx eax, byte [esp + eax - 4]
push eax
push 0x5482f0
push ecx
jmp 0x4790e4
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x214]
and eax, 0xff
sub eax, 0x5a
push eax
push 0x5482f0
push ecx
jmp 0x4790e4
mov edx, dword [esp + 0xc]
and edx, 0xff
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x214]
fild dword [esp + 0xc]
fmul qword [0x530958]
fstp qword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push eax
push ecx
push str._.2f
push edx
call fcn.0051497a
add esp, 0x10
jmp case.default.0x478c77
mov eax, dword [esp + 0xc]
and eax, 0xff
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fmul qword [0x530950]
fstp qword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x214]
push ecx
push edx
push str._.1f
push eax
call fcn.0051497a
add esp, 0x10
jmp case.default.0x478c77
mov ecx, dword [esp + 0xc]
and ecx, 0xff
mov dword [esp + 0xc], ecx
fild dword [esp + 0xc]
fmul qword [0x530948]
fstp qword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x214]
push edx
push eax
push str._.1f
push ecx
call fcn.0051497a
add esp, 0x10
jmp case.default.0x478c77
mov edx, dword [esp + 0xc]
and edx, 0xff
mov dword [esp + 0xc], edx
fild dword [esp + 0xc]
fmul qword [0x530940]
fadd qword [0x5302e0]
jmp 0x478fe0
mov eax, dword [esp + 0xc]
and eax, 0xff
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fmul qword [0x530940]
fadd qword [0x5302e0]
jmp 0x478d35
cmp byte [esp + 0xc], 0x7f
jbe 0x478e05
mov ecx, dword [esp + 0xc]
and ecx, 0xff
movsx edx, word [esp + ecx*2 - 0x48]
mov dword [esp + 0xc], edx
fild dword [esp + 0xc]
jmp 0x478d35
mov eax, dword [esp + 0xc]
and eax, 0xff
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fmul qword [0x530938]
fsub qword [0x530930]
jmp 0x478d35
mov ecx, dword [esp + 0xc]
and ecx, 0xff
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x214]
fild dword [esp + 0xc]
fmul qword [0x530948]
fstp qword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
push eax
push str._.1f
push ecx
call fcn.0051497a
add esp, 0x10
jmp case.default.0x478c77
cmp byte [esp + 0xc], 0x7f
jbe 0x478e8a
mov edx, dword [esp + 0xc]
and edx, 0xff
movsx eax, word [esp + edx*2 - 0x48]
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
jmp 0x478d75
mov ecx, dword [esp + 0xc]
and ecx, 0xff
mov dword [esp + 0xc], ecx
fild dword [esp + 0xc]
fmul qword [0x530938]
fsub qword [0x530930]
jmp 0x478d75
mov edx, dword [esp + 0xc]
and edx, 0xff
mov dword [esp + 0xc], edx
fild dword [esp + 0xc]
fmul qword [0x530948]
jmp 0x478fe0
mov eax, dword [esp + 0xc]
and eax, 0xff
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fmul dword [0x53092c]
jmp 0x478d35
mov ecx, dword [esp + 0xc]
and ecx, 0xff
mov dword [esp + 0xc], ecx
fild dword [esp + 0xc]
fmul dword [0x530928]
jmp 0x478d75
mov edx, dword [esp + 0xc]
and edx, 0xff
mov dword [esp + 0xc], edx
fild dword [esp + 0xc]
fmul qword [0x530178]
jmp 0x478fe0
mov eax, dword [esp + 0xc]
and eax, 0xff
add eax, 0x64
lea eax, [eax + eax*2]
push eax
mov eax, dword [esp + 0x218]
push 0x5482f0
push eax
jmp 0x4790e4
mov ecx, dword [esp + 0xc]
and ecx, 0xff
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x214]
fild dword [esp + 0xc]
fmul qword [0x530178]
fstp qword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
push eax
push str._.1f
push ecx
call fcn.0051497a
add esp, 0x10
jmp case.default.0x478c77
mov eax, dword [esp + 0xc]
and eax, 0xff
jmp 0x4790d6
mov eax, dword [esp + 0xc]
and eax, 0xff
push eax
mov eax, dword [esp + 0x218]
push 0x5482f0
push eax
jmp 0x4790e4
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x214]
and eax, 0xff
push eax
push 0x5482f0
push ecx
jmp 0x4790e4
mov edx, dword [esp + 0xc]
and edx, 0xff
mov dword [esp + 0xc], edx
fild dword [esp + 0xc]
fmul qword [0x530920]
fstp qword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x214]
push eax
push ecx
push str._.1f
push edx
call fcn.0051497a
add esp, 0x10
jmp case.default.0x478c77
lea ecx, [esp + 0x18]
call fcn.004f5d00
movsx eax, ax
add edi, 4
cmp eax, edi
jg 0x4790bf
lea ecx, [esp + 0x24]
mov byte [esp + 0x1f0], 4
call fcn.004f5980
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1f0], 3
call fcn.004f5980
lea ecx, [esp + 0x18]
mov byte [esp + 0x1f0], 2
call fcn.004f5980
lea ecx, [esp + 0x20]
mov byte [esp + 0x1f0], 1
call fcn.004f5980
mov eax, dword [esp + 0x20c]
mov esi, dword [esp + 0x208]
cmp esi, eax
mov byte [esp + 0x1f0], 0xb
mov edi, eax
je 0x479094
mov ecx, esi
call fcn.004f5980
add esi, 4
cmp esi, edi
jne 0x47907f
mov esi, dword [esp + 0x208]
push esi
call fcn.00514140
add esp, 4
mov dword [esp + 0x208], ebx
mov dword [esp + 0x20c], ebx
mov dword [esp + 0x210], ebx
mov byte [esp + 0x1f0], 0xa
jmp 0x479187
add esi, 4
lea ecx, [esp + 0x18]
push esi
call fcn.004f5b60
xor ecx, ecx
mov ch, byte [esp + 0xc]
mov cl, al
mov eax, ecx
mov edx, dword [esp + 0x214]
push eax
push 0x5482f0
push edx
call fcn.0051497a
add esp, 0xc
lea ecx, [esp + 0x24]
mov byte [esp + 0x1f0], 4
call fcn.004f5980
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1f0], 3
call fcn.004f5980
lea ecx, [esp + 0x18]
mov byte [esp + 0x1f0], 2
call fcn.004f5980
lea ecx, [esp + 0x20]
mov byte [esp + 0x1f0], 1
call fcn.004f5980
mov eax, dword [esp + 0x20c]
mov esi, dword [esp + 0x208]
cmp esi, eax
mov byte [esp + 0x1f0], 0x11
mov edi, eax
je 0x479161
mov ecx, esi
call fcn.004f5980
add esi, 4
cmp esi, edi
jne 0x47914c
mov esi, dword [esp + 0x208]
push esi
call fcn.00514140
add esp, 4
mov dword [esp + 0x208], ebx
mov dword [esp + 0x20c], ebx
mov dword [esp + 0x210], ebx
mov byte [esp + 0x1f0], 0x10
lea ecx, [esp + 0x200]
call fcn.004f5980
lea ecx, [esp + 0x1f8]
mov byte [esp + 0x1f0], bl
call fcn.004f5980
lea ecx, [esp + 0x218]
mov dword [esp + 0x1f0], 0xffffffff
call fcn.004f5980
mov ecx, dword [esp + 0x1e8]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
add esp, 0x1e8
ret 0x28