Function at 0x4ab580
Capabilities:
Access peb ldr_data
Authenticate hmac
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x128
mov dword [ebp - 0x24], 0
mov eax, 0x3f
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x9c], 0x72
mov word [ebp - 0x98], ax
mov eax, 0x11
push ebx
push esi
push edi
mov edi, 0x1b
mov dword [ebp - 8], ecx
mov word [ebp - 0x96], di
mov ebx, 0x1d
mov word [ebp - 0x94], ax
mov ecx, 6
xor eax, eax
mov dword [ebp - 0x28], edx
mov word [ebp - 0x92], ax
mov esi, 0x52
mov word [ebp - 0x90], bx
mov eax, 1
mov word [ebp - 0x8e], ax
mov edx, 0x22
mov word [ebp - 0x8c], bx
mov eax, 0x14
mov word [ebp - 0x8a], ax
xor eax, eax
mov word [ebp - 0x88], cx
mov word [ebp - 0x86], si
mov word [ebp - 0x84], dx
mov word [ebp - 0x82], ax
mov eax, 0x1c
mov word [ebp - 0x80], di
mov word [ebp - 0x7e], ax
mov eax, 0x36
mov word [ebp - 0x7c], cx
mov word [ebp - 0x7a], si
mov word [ebp - 0x78], cx
mov word [ebp - 0x76], bx
mov word [ebp - 0x74], si
mov word [ebp - 0x72], dx
mov word [ebp - 0x70], ax
mov eax, 0x34
mov word [ebp - 0x6e], ax
mov eax, 0x72
mov word [ebp - 0x6c], ax
movzx eax, word [0x40373e]
xor eax, 0x72
mov word [ebp - 0x6a], ax
movzx eax, word [0x403740]
xor eax, 0x72
mov word [ebp - 0x68], ax
movzx eax, word [0x403742]
xor eax, 0x72
mov word [ebp - 0x66], ax
movzx eax, word [0x403744]
xor eax, 0x72
mov word [ebp - 0x64], ax
movzx eax, word [0x403746]
xor eax, 0x72
mov word [ebp - 0x62], ax
movzx eax, word [0x403748]
xor eax, 0x72
mov word [ebp - 0x60], ax
movzx eax, word [0x40374a]
xor eax, 0x72
mov word [ebp - 0x5e], ax
movzx eax, word [0x40374c]
xor eax, 0x72
mov word [ebp - 0x5c], ax
movzx eax, word [0x40374e]
xor eax, 0x72
mov word [ebp - 0x5a], ax
movzx eax, word [0x403750]
xor eax, 0x72
mov word [ebp - 0x58], ax
movzx eax, word [0x403752]
xor eax, 0x72
mov word [ebp - 0x56], ax
movzx eax, word [0x403754]
xor eax, 0x72
mov word [ebp - 0x54], ax
movzx eax, word [0x403756]
xor eax, 0x72
mov word [ebp - 0x52], ax
movzx eax, word [0x403758]
xor eax, 0x72
mov word [ebp - 0x50], ax
movzx eax, word [0x40375a]
xor eax, 0x72
mov word [ebp - 0x4e], ax
movzx eax, word [0x40375c]
xor eax, 0x72
mov word [ebp - 0x4c], ax
movzx eax, word [0x40375e]
xor eax, 0x72
mov word [ebp - 0x4a], ax
movzx eax, word [0x403760]
xor eax, 0x72
mov word [ebp - 0x48], ax
movzx eax, word [0x403762]
xor eax, 0x72
mov word [ebp - 0x46], ax
movzx eax, word [0x403764]
xor eax, 0x72
mov word [ebp - 0x44], ax
movzx eax, word [0x403766]
xor eax, 0x72
mov word [ebp - 0x42], ax
movzx eax, word [0x403768]
xor eax, 0x72
mov word [ebp - 0x40], ax
xor eax, eax
mov word [ebp - 0x3e], ax
xor edx, edx
mov ax, word [ebp - 0x98]
mov ax, word [ebp + edx*2 - 0x98]
movzx ecx, ax
movzx eax, word [ebp - 0x9c]
xor ecx, eax
mov word [ebp + edx*2 - 0x98], cx
inc edx
cmp edx, 0x2d
jb 0x4ab7b5
mov ebx, dword [0x4f3810]
xor eax, eax
mov word [ebp - 0x3e], ax
test ebx, ebx
jne 0x4ab872
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 - 0x10], ecx
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 0x4ab859
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 0x4ab821
cmp eax, 0xa3e6f6c3
je 0x4ac751
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp eax, edx
je 0x4ab86a
cmp dword [ecx + 0x18], 0
jne 0x4ab803
xor ebx, ebx
mov dword [0x4f3810], ebx
mov eax, dword [0x4f37b8]
test eax, eax
jne 0x4ab90f
test ebx, ebx
je 0x4ab908
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
mov eax, dword [eax + ebx + 0x7c]
mov dword [ebp - 0x1c], eax
lea eax, [ecx + ebx]
mov dword [ebp - 0xc], eax
cmp eax, ebx
je 0x4ab908
xor ecx, ecx
mov dword [ebp - 0x10], ecx
cmp dword [eax + 0x18], ecx
je 0x4ab908
mov eax, dword [eax + 0x20]
add eax, ebx
mov dword [ebp - 0x14], eax
mov esi, dword [eax]
mov edi, 0x811c9dc5
add esi, ebx
mov dl, byte [esi]
inc esi
test dl, dl
je 0x4ab8f6
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 0x4ab8c1
cmp edi, 0xb3c5b296
je 0x4ac75c
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
inc ecx
add eax, 4
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x14], eax
cmp ecx, dword [edx + 0x18]
jne 0x4ab8b1
xor eax, eax
mov dword [0x4f37b8], eax
lea ecx, [ebp - 0x98]
push ecx
push dword [ebp - 8]
call eax
test eax, eax
je 0x4ac748
mov eax, 0x58
mov ebx, 0x74
mov word [ebp - 0x114], ax
mov esi, 0x6e
mov word [ebp - 0x112], bx
mov eax, 0x7d
mov word [ebp - 0x110], si
mov ecx, 0x7a
mov word [ebp - 0x10e], ax
mov edi, 0x7f
mov word [ebp - 0x10c], cx
mov eax, 0x7e
mov word [ebp - 0x10a], ax
mov edx, 0x2b
mov word [ebp - 0x108], cx
mov eax, 0x71
mov word [ebp - 0x106], ax
mov eax, 0x63
mov word [ebp - 0x104], di
mov word [ebp - 0x102], dx
mov word [ebp - 0x100], ax
mov eax, 0x5b
mov word [ebp - 0xfe], ax
mov eax, 0x5e
mov word [ebp - 0xfc], ax
mov eax, 0x4f
mov word [ebp - 0xfa], dx
mov word [ebp - 0xf8], ax
mov eax, 0x80
mov word [ebp - 0xf6], cx
mov ecx, 0x70
mov word [ebp - 0xf4], si
mov word [ebp - 0xf2], ax
mov eax, 0x78
mov word [ebp - 0xf0], ax
mov eax, 0x79
mov word [ebp - 0xee], cx
mov word [ebp - 0xec], ax
mov eax, 0x62
mov word [ebp - 0xea], di
mov word [ebp - 0xe8], dx
mov word [ebp - 0xe6], ax
mov eax, 0x7d
mov word [ebp - 0xe4], ax
mov word [ebp - 0xe2], bx
mov word [ebp - 0xe0], di
mov word [ebp - 0xde], cx
mov word [ebp - 0xdc], ax
mov eax, 0xb
mov word [ebp - 0xda], ax
movzx eax, word [0x40377c]
add eax, 0xb
mov word [ebp - 0xd8], ax
movzx eax, word [0x40377e]
add eax, 0xb
mov word [ebp - 0xd6], ax
movzx eax, word [0x403780]
add eax, 0xb
mov word [ebp - 0xd4], ax
movzx eax, word [0x403782]
add eax, 0xb
mov word [ebp - 0xd2], ax
movzx eax, word [0x403784]
add eax, 0xb
mov word [ebp - 0xd0], ax
movzx eax, word [0x403786]
add eax, 0xb
mov word [ebp - 0xce], ax
movzx eax, word [0x403788]
add eax, 0xb
mov word [ebp - 0xcc], ax
movzx eax, word [0x40378a]
add eax, 0xb
mov word [ebp - 0xca], ax
movzx eax, word [0x40378c]
add eax, 0xb
mov word [ebp - 0xc8], ax
movzx eax, word [0x40378e]
add eax, 0xb
mov word [ebp - 0xc6], ax
movzx eax, word [0x403790]
add eax, 0xb
mov word [ebp - 0xc4], ax
movzx eax, word [0x403792]
add eax, 0xb
mov word [ebp - 0xc2], ax
movzx eax, word [0x403794]
add eax, 0xb
mov word [ebp - 0xc0], ax
movzx eax, word [0x403796]
add eax, 0xb
mov word [ebp - 0xbe], ax
movzx eax, word [0x403798]
add eax, 0xb
mov word [ebp - 0xbc], ax
movzx eax, word [0x40379a]
add eax, 0xb
mov word [ebp - 0xba], ax
movzx eax, word [0x40379c]
add eax, 0xb
mov word [ebp - 0xb8], ax
movzx eax, word [0x40379e]
add eax, 0xb
mov word [ebp - 0xb6], ax
movzx eax, word [0x4037a0]
add eax, 0xb
mov word [ebp - 0xb4], ax
movzx eax, word [0x4037a2]
add eax, 0xb
mov word [ebp - 0xb2], ax
movzx eax, word [0x4037a4]
add eax, 0xb
mov word [ebp - 0xb0], ax
movzx eax, word [0x4037a6]
add eax, 0xb
mov word [ebp - 0xae], ax
movzx eax, word [0x4037a8]
add eax, 0xb
mov word [ebp - 0xac], ax
movzx eax, word [0x4037aa]
add eax, 0xb
mov word [ebp - 0xaa], ax
movzx eax, word [0x4037ac]
add eax, 0xb
mov word [ebp - 0xa8], ax
movzx eax, word [0x4037ae]
add eax, 0xb
mov word [ebp - 0xa6], ax
movzx eax, word [0x4037b0]
add eax, 0xb
mov word [ebp - 0xa4], ax
movzx eax, word [0x4037b2]
add eax, 0xb
mov word [ebp - 0xa2], ax
movzx eax, word [0x4037b4]
add eax, 0xb
mov word [ebp - 0xa0], ax
xor eax, eax
mov word [ebp - 0x9e], ax
xor ecx, ecx
mov ax, word [ebp - 0x114]
nop dword [eax + eax]
mov ax, word [ebp + ecx*2 - 0x114]
movzx eax, ax
add eax, 0xfffffff5
mov word [ebp + ecx*2 - 0x114], ax
inc ecx
cmp ecx, 0x3b
jb 0x4abc60
mov ebx, dword [0x4f3810]
test ebx, ebx
jne 0x4abd11
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 - 0x10], ecx
movzx ebx, word [ecx + 0x2c]
xor edi, edi
mov esi, dword [ecx + 0x30]
shr ebx, 1
mov dword [ebp - 0x14], 0x811c9dc5
lea eax, [esi + ebx*2]
cmp esi, eax
cmova ebx, edi
test ebx, ebx
je 0x4abcf8
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 - 0x14]
imul eax, eax, 0x1000193
mov dword [ebp - 0x14], eax
cmp edi, ebx
jne 0x4abcc0
cmp eax, 0xa3e6f6c3
je 0x4ac77a
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp eax, edx
je 0x4abd09
cmp dword [ecx + 0x18], 0
jne 0x4abca2
xor ebx, ebx
mov dword [0x4f3810], ebx
mov eax, dword [0x4f37b8]
test eax, eax
jne 0x4abdae
test ebx, ebx
je 0x4abda7
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
mov eax, dword [eax + ebx + 0x7c]
mov dword [ebp - 0x1c], eax
lea eax, [ecx + ebx]
mov dword [ebp - 0xc], eax
cmp eax, ebx
je 0x4abda7
xor ecx, ecx
mov dword [ebp - 0x10], ecx
cmp dword [eax + 0x18], ecx
je 0x4abda7
mov eax, dword [eax + 0x20]
add eax, ebx
mov dword [ebp - 0x14], eax
mov esi, dword [eax]
mov edi, 0x811c9dc5
add esi, ebx
mov dl, byte [esi]
inc esi
test dl, dl
je 0x4abd95
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 0x4abd60
cmp edi, 0xb3c5b296
je 0x4ac785
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
inc ecx
add eax, 4
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x14], eax
cmp ecx, dword [edx + 0x18]
jne 0x4abd50
xor eax, eax
mov dword [0x4f37b8], eax
lea ecx, [ebp - 0x114]
push ecx
push dword [ebp - 8]
call eax
test eax, eax
je 0x4ac748
mov ebx, dword [0x4fbd44]
test ebx, ebx
jne 0x4abe61
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 - 0x10], ecx
nop dword [eax + eax]
movzx ebx, word [ecx + 0x2c]
xor edi, edi
mov esi, dword [ecx + 0x30]
shr ebx, 1
mov dword [ebp - 0x14], 0x811c9dc5
lea eax, [esi + ebx*2]
cmp esi, eax
cmova ebx, edi
test ebx, ebx
je 0x4abe48
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 - 0x14]
imul eax, eax, 0x1000193
mov dword [ebp - 0x14], eax
cmp edi, ebx
jne 0x4abe10
cmp eax, 0x4597ecd6
je 0x4ac7a3
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp eax, edx
je 0x4abe59
cmp dword [ecx + 0x18], 0
jne 0x4abdf0
xor ebx, ebx
mov dword [0x4fbd44], ebx
mov eax, dword [0x4fbd3c]
test eax, eax
jne 0x4abefe
test ebx, ebx
je 0x4abef7
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
mov eax, dword [eax + ebx + 0x7c]
mov dword [ebp - 0x1c], eax
lea eax, [ecx + ebx]
mov dword [ebp - 0xc], eax
cmp eax, ebx
je 0x4abef7
xor ecx, ecx
mov dword [ebp - 0x10], ecx
cmp dword [eax + 0x18], ecx
je 0x4abef7
mov eax, dword [eax + 0x20]
add eax, ebx
mov dword [ebp - 0x14], eax
mov esi, dword [eax]
mov edi, 0x811c9dc5
add esi, ebx
mov dl, byte [esi]
inc esi
test dl, dl
je 0x4abee5
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 0x4abeb0
cmp edi, 0xebb18dec
je 0x4ac7ae
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
inc ecx
add eax, 4
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x14], eax
cmp ecx, dword [edx + 0x18]
jne 0x4abea0
xor eax, eax
mov dword [0x4fbd3c], eax
mov ebx, dword [ebp - 8]
lea ecx, [ebp - 0x24]
push 0
push ecx
push ebx
call eax
test eax, eax
je 0x4ac748
mov dword [ebp - 0x124], ebx
mov eax, 0x57
mov dword [ebp - 0x120], 0
mov word [ebp - 0x3c], ax
mov eax, 0x46
mov word [ebp - 0x3a], ax
mov eax, 0x5c
mov word [ebp - 0x38], ax
mov eax, 5
mov word [ebp - 0x36], ax
movzx eax, word [0x403784]
add eax, 5
mov word [ebp - 0x34], ax
movzx eax, word [0x403786]
add eax, 5
mov word [ebp - 0x32], ax
movzx eax, word [0x403788]
add eax, 5
mov word [ebp - 0x30], ax
xor eax, eax
mov word [ebp - 0x2e], ax
xor ecx, ecx
mov ax, word [ebp - 0x3c]
nop dword [eax]
mov ax, word [ebp + ecx*2 - 0x3c]
movzx eax, ax
add eax, 0xfffffffb
mov word [ebp + ecx*2 - 0x3c], ax
inc ecx
cmp ecx, 7
jb 0x4abf80
mov ebx, dword [0x4fbd44]
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x11c], eax
test ebx, ebx
jne 0x4ac034
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 - 8], ecx
movzx ebx, word [ecx + 0x2c]
xor edi, edi
mov esi, dword [ecx + 0x30]
shr ebx, 1
mov dword [ebp - 0x14], 0x811c9dc5
lea eax, [esi + ebx*2]
cmp esi, eax
cmova ebx, edi
test ebx, ebx
je 0x4ac01b
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 - 0x14]
imul eax, eax, 0x1000193
mov dword [ebp - 0x14], eax
cmp edi, ebx
jne 0x4abfe3
cmp eax, 0x4597ecd6
je 0x4ac7cc
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 8], ecx
cmp eax, edx
je 0x4ac02c
cmp dword [ecx + 0x18], 0
jne 0x4abfc5
xor ebx, ebx
mov dword [0x4fbd44], ebx
mov eax, dword [0x4fbd40]
test eax, eax
jne 0x4ac0d1
test ebx, ebx
je 0x4ac0ca
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
mov eax, dword [eax + ebx + 0x7c]
mov dword [ebp - 0x1c], eax
lea eax, [ecx + ebx]
mov dword [ebp - 0xc], eax
cmp eax, ebx
je 0x4ac0ca
xor ecx, ecx
mov dword [ebp - 8], ecx
cmp dword [eax + 0x18], ecx
je 0x4ac0ca
mov eax, dword [eax + 0x20]
add eax, ebx
mov dword [ebp - 0x14], eax
mov esi, dword [eax]
mov edi, 0x811c9dc5
add esi, ebx
mov dl, byte [esi]
inc esi
test dl, dl
je 0x4ac0b8
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 0x4ac083
mov ecx, dword [ebp - 8]
cmp edi, 0x161b8aae
je 0x4ac7d7
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0xc]
inc ecx
add eax, 4
mov dword [ebp - 8], ecx
mov dword [ebp - 0x14], eax
cmp ecx, dword [edx + 0x18]
jne 0x4ac073
xor eax, eax
mov dword [0x4fbd40], eax
lea ecx, [ebp - 0x124]
push ecx
push 1
push dword [ebp - 0x24]
call eax
test eax, eax
je 0x4ac613
mov dword [ebp - 0x1c], 0
nop
mov ebx, dword [0x4fbd44]
test ebx, ebx
jne 0x4ac185
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 - 8], ecx
movzx ebx, word [ecx + 0x2c]
xor edi, edi
mov esi, dword [ecx + 0x30]
shr ebx, 1
mov dword [ebp - 0x14], 0x811c9dc5
lea eax, [esi + ebx*2]
cmp esi, eax
cmova ebx, edi
test ebx, ebx
je 0x4ac16c
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 - 0x14]
imul eax, eax, 0x1000193
mov dword [ebp - 0x14], eax
cmp edi, ebx
jne 0x4ac134
cmp eax, 0x4597ecd6
je 0x4ac7f4
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 8], ecx
cmp eax, edx
je 0x4ac17d
cmp dword [ecx + 0x18], 0
jne 0x4ac116
xor ebx, ebx
mov dword [0x4fbd44], ebx
mov eax, dword [0x4fbd54]
test eax, eax
jne 0x4ac222
test ebx, ebx
je 0x4ac21b
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
mov eax, dword [eax + ebx + 0x7c]
mov dword [ebp - 0x14], eax
lea eax, [ecx + ebx]
mov dword [ebp - 0xc], eax
cmp eax, ebx
je 0x4ac21b
xor ecx, ecx
mov dword [ebp - 8], ecx
cmp dword [eax + 0x18], ecx
je 0x4ac21b
mov eax, dword [eax + 0x20]
add eax, ebx
mov dword [ebp - 0x14], eax
mov esi, dword [eax]
mov edi, 0x811c9dc5
add esi, ebx
mov dl, byte [esi]
inc esi
test dl, dl
je 0x4ac209
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 0x4ac1d4
mov ecx, dword [ebp - 8]
cmp edi, 0x717e41d0
je 0x4ac7ff
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0xc]
inc ecx
add eax, 4
mov dword [ebp - 8], ecx
mov dword [ebp - 0x14], eax
cmp ecx, dword [edx + 0x18]
jne 0x4ac1c4
xor eax, eax
mov dword [0x4fbd54], eax
push dword [ebp - 0x24]
call eax
mov ebx, dword [0x4fbd44]
test ebx, ebx
jne 0x4ac2c1
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 - 8], ecx
nop dword [eax]
movzx ebx, word [ecx + 0x2c]
xor edi, edi
mov esi, dword [ecx + 0x30]
shr ebx, 1
mov dword [ebp - 0x14], 0x811c9dc5
lea eax, [esi + ebx*2]
cmp esi, eax
cmova ebx, edi
test ebx, ebx
je 0x4ac2a8
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 - 0x14]
imul eax, eax, 0x1000193
mov dword [ebp - 0x14], eax
cmp edi, ebx
jne 0x4ac270
cmp eax, 0x4597ecd6
je 0x4ac81c
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 8], ecx
cmp eax, edx
je 0x4ac2b9
cmp dword [ecx + 0x18], 0
jne 0x4ac250
xor ebx, ebx
mov dword [0x4fbd44], ebx
mov eax, dword [0x4fbd50]
test eax, eax
jne 0x4ac35e
test ebx, ebx
je 0x4ac357
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
mov eax, dword [eax + ebx + 0x7c]
mov dword [ebp - 0x14], eax
lea eax, [ecx + ebx]
mov dword [ebp - 0xc], eax
cmp eax, ebx
je 0x4ac357
xor ecx, ecx
mov dword [ebp - 8], ecx
cmp dword [eax + 0x18], ecx
je 0x4ac357
mov eax, dword [eax + 0x20]
add eax, ebx
mov dword [ebp - 0x14], eax
mov esi, dword [eax]
mov edi, 0x811c9dc5
add esi, ebx
mov dl, byte [esi]
inc esi
test dl, dl
je 0x4ac345
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 0x4ac310
mov ecx, dword [ebp - 8]
cmp edi, 0x70ba9318
je 0x4ac827
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0xc]
inc ecx
add eax, 4
mov dword [ebp - 8], ecx
mov dword [ebp - 0x14], eax
cmp ecx, dword [edx + 0x18]
jne 0x4ac300
xor eax, eax
mov dword [0x4fbd50], eax
lea ecx, [ebp - 0x118]
push ecx
push dword [ebp + 8]
push dword [ebp - 0x28]
push dword [ebp - 0x24]
call eax
test eax, eax
je 0x4ac613
mov ebx, dword [0x4fbd44]
test ebx, ebx
jne 0x4ac411
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 - 8], ecx
nop
movzx ebx, word [ecx + 0x2c]
xor edi, edi
mov esi, dword [ecx + 0x30]
shr ebx, 1
mov dword [ebp - 0x14], 0x811c9dc5
lea eax, [esi + ebx*2]
cmp esi, eax
cmova ebx, edi
test ebx, ebx
je 0x4ac3f8
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 - 0x14]
imul eax, eax, 0x1000193
mov dword [ebp - 0x14], eax
cmp edi, ebx
jne 0x4ac3c0
cmp eax, 0x4597ecd6
je 0x4ac844
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 8], ecx
cmp eax, edx
je 0x4ac409
cmp dword [ecx + 0x18], 0
jne 0x4ac3a0
xor ebx, ebx
mov dword [0x4fbd44], ebx
mov eax, dword [0x4fbd48]
test eax, eax
jne 0x4ac4bd
test ebx, ebx
je 0x4ac4b6
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
mov eax, dword [eax + ebx + 0x7c]
mov dword [ebp - 0x14], eax
lea eax, [ecx + ebx]
mov dword [ebp - 8], eax
cmp eax, ebx
je 0x4ac4b6
xor ecx, ecx
mov dword [ebp - 0x10], ecx
cmp dword [eax + 0x18], ecx
je 0x4ac4b6
mov eax, dword [eax + 0x20]
mov edx, dword [ebp - 8]
add eax, ebx
mov dword [ebp - 0x14], 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 0x4ac4a4
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 0x4ac471
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 8]
cmp edi, 0x1b07772b
je 0x4ac84f
mov eax, dword [ebp - 0x14]
inc ecx
add eax, 4
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x14], eax
cmp ecx, dword [edx + 0x18]
jne 0x4ac460
xor eax, eax
mov dword [0x4fbd48], eax
push dword [ebp - 0x24]
call eax
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 0x270f
jl 0x4ac0f0
mov ebx, dword [0x4fbd44]
test ebx, ebx
jne 0x4ac571
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 - 8], ecx
nop word [eax + eax]
movzx ebx, word [ecx + 0x2c]
xor edi, edi
mov esi, dword [ecx + 0x30]
shr ebx, 1
mov dword [ebp - 0x1c], 0x811c9dc5
lea eax, [esi + ebx*2]
cmp esi, eax
cmova ebx, edi
test ebx, ebx
je 0x4ac558
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 - 0x1c]
imul eax, eax, 0x1000193
mov dword [ebp - 0x1c], eax
cmp edi, ebx
jne 0x4ac520
cmp eax, 0x4597ecd6
je 0x4ac869
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x14]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 8], ecx
cmp eax, edx
je 0x4ac569
cmp dword [ecx + 0x18], 0
jne 0x4ac500
xor ebx, ebx
mov dword [0x4fbd44], ebx
mov eax, dword [0x4fbd34]
test eax, eax
jne 0x4ac60e
test ebx, ebx
je 0x4ac607
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
lea eax, [ecx + ebx]
mov dword [ebp - 0x14], eax
cmp eax, ebx
je 0x4ac607
xor ecx, ecx
mov dword [ebp - 8], ecx
cmp dword [eax + 0x18], ecx
je 0x4ac607
mov eax, dword [eax + 0x20]
add eax, ebx
mov dword [ebp - 0x1c], eax
nop dword [eax]
mov esi, dword [eax]
mov edi, 0x811c9dc5
add esi, ebx
mov dl, byte [esi]
inc esi
test dl, dl
je 0x4ac5f5
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 0x4ac5c0
mov ecx, dword [ebp - 8]
cmp edi, 0x18c94680
je 0x4ac874
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
inc ecx
add eax, 4
mov dword [ebp - 8], ecx
mov dword [ebp - 0x1c], eax
cmp ecx, dword [edx + 0x18]
jne 0x4ac5b0
xor eax, eax
mov dword [0x4fbd34], eax
push dword [ebp - 0x24]
call eax
mov ebx, dword [0x4fbd44]
test ebx, ebx
jne 0x4ac6b1
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 - 8], ecx
nop dword [eax]
movzx ebx, word [ecx + 0x2c]
xor edi, edi
mov esi, dword [ecx + 0x30]
shr ebx, 1
mov dword [ebp - 0x1c], 0x811c9dc5
lea eax, [esi + ebx*2]
cmp esi, eax
cmova ebx, edi
test ebx, ebx
je 0x4ac698
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 - 0x1c]
imul eax, eax, 0x1000193
mov dword [ebp - 0x1c], eax
cmp edi, ebx
jne 0x4ac660
cmp eax, 0x4597ecd6
je 0x4ac891
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x14]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 8], ecx
cmp eax, edx
je 0x4ac6a9
cmp dword [ecx + 0x18], 0
jne 0x4ac640
xor ebx, ebx
mov dword [0x4fbd44], ebx
mov eax, dword [0x4fbd38]
test eax, eax
jne 0x4ac743
test ebx, ebx
je 0x4ac73c
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
lea eax, [ecx + ebx]
mov dword [ebp - 0x14], eax
cmp eax, ebx
je 0x4ac73c
xor ecx, ecx
mov dword [ebp - 8], ecx
cmp dword [eax + 0x18], ecx
je 0x4ac73c
mov eax, dword [eax + 0x20]
add eax, ebx
mov dword [ebp - 0x1c], eax
mov esi, dword [eax]
mov edi, 0x811c9dc5
add esi, ebx
mov dl, byte [esi]
inc esi
test dl, dl
je 0x4ac72a
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 0x4ac6f5
mov ecx, dword [ebp - 8]
cmp edi, 0x3a3e1d5
je 0x4ac89c
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
inc ecx
add eax, 4
mov dword [ebp - 8], ecx
mov dword [ebp - 0x1c], eax
cmp ecx, dword [edx + 0x18]
jne 0x4ac6e5
xor eax, eax
mov dword [0x4fbd38], eax
push dword [ebp - 0x24]
call eax
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax + 0x18]
jmp 0x4ab86c
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 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 0x4ab90a
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax + 0x18]
jmp 0x4abd0b
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 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 0x4abda9
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax + 0x18]
jmp 0x4abe5b
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 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 0x4abef9
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x18]
jmp 0x4ac02e
mov edx, dword [ebp - 0xc]
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 0x4ac0cc
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x18]
jmp 0x4ac17f
mov edx, dword [ebp - 0xc]
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 0x4ac21d
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x18]
jmp 0x4ac2bb
mov edx, dword [ebp - 0xc]
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 0x4ac359
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x18]
jmp 0x4ac40b
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 0x4ac4b8
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x18]
jmp 0x4ac56b
mov edx, dword [ebp - 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 0x4ac609
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x18]
jmp 0x4ac6ab
mov edx, dword [ebp - 0x14]
push dword [ebp - 0x24]
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
mov dword [0x4fbd38], eax
call eax
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret