Function at 0x4b91c0
Capabilities:
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x48]
cmp eax, dword [ecx + 8]
jbe 0x4b9df4
sub esp, 0xc8
mov eax, dword [esp + 0xcc]
test eax, eax
jl 0x4b9ddb
mov ecx, dword [0x663104]
mov edx, dword [esp + 0xd0]
lea ebx, [0x663100]
cmp edx, ebx
jne 0x4b9dc5
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xa8], 0x11
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], 0x11
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], eax
lea edx, [0x7a20c0]
mov dword [esp], edx
lea ebx, [0x5f5100]
mov dword [esp + 4], ebx
lea ebp, [esp + 0xb8]
mov dword [esp + 8], ebp
call fcn.00469a10
movzx eax, byte [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
test al, al
jne 0x4b937e
mov eax, dword [esp + 0xcc]
mov ecx, eax
sar eax, 0x1f
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], 0xa
call fcn.004abcf0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0xd4]
mov dword [esp], edx
call fcn.004b5410
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
lea edx, [esp + 0x54]
mov dword [esp], edx
lea edx, [0x661160]
mov dword [esp + 4], edx
mov dword [esp + 8], 1
mov edx, dword [esp + 0x74]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x10], edx
lea edx, [0x661164]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], 1
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
call fcn.0044dd50
mov eax, dword [esp + 0x24]
mov dword [esp + 0x84], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x44], ecx
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004b7a00
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xd4]
xor ebx, ebx
jmp 0x4b93b8
mov dword [esp + 0x90], edx
lea eax, [0x6029a0]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409910
mov eax, dword [esp + 8]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0xdc], eax
add esp, 0xc8
ret
inc ebx
cmp ebx, ecx
jge 0x4b9450
mov ebp, dword [eax + ebx*4]
cmp dword [ebp + 0x20], edx
jne 0x4b93b7
mov dword [esp + 0x78], ebp
lea eax, [0x5f5100]
mov dword [esp], eax
lea ecx, [esp + 0xa8]
mov dword [esp + 4], ecx
call fcn.004094a0
lea eax, [0x7a20c0]
mov dword [esp], eax
lea eax, [0x5f5100]
mov dword [esp + 4], eax
lea eax, [0x607180]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x10], eax
call fcn.00469bf0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x80], ecx
lea edx, [0x6029a0]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.00409910
mov eax, dword [esp + 8]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0xdc], eax
add esp, 0xc8
ret
lea eax, [0x5de620]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], 0
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x88], eax
lea ecx, [0x5f5080]
mov dword [esp], ecx
call fcn.0040bd40
mov esi, dword [esp + 0x88]
test byte [esi], al
mov edi, dword [esp + 4]
mov dword [esp + 0x9c], edi
mov eax, dword [0x7c78f0]
test eax, eax
jne 0x4b94a9
call fcn.00463e02
jmp 0x4b94bf
lea eax, [0x5f5080]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], esi
call fcn.00410860
mov eax, dword [esp + 0xd4]
movzx ecx, byte [eax + 0xc]
and ecx, 8
mov edx, dword [esp + 0x9c]
mov byte [edx + 0xc], cl
mov ecx, dword [esp + 0x84]
mov dword [esp], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov word [esp + 0x10], 0
call fcn.004b4f90
mov eax, dword [esp + 0x14]
mov dword [esp], eax
call fcn.00460540
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x9c]
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0xd4]
mov edx, dword [eax + 8]
mov byte [esp + 0x2f], 0
mov byte [esp + 0x2f], 0x5b
xor ebx, ebx
jmp 0x4b9545
movzx ebp, byte [esp + ebx + 0x2f]
inc ebx
imul edx, edx, 0x1000193
xor edx, ebp
cmp ebx, 1
jl 0x4b9537
mov dword [ecx + 8], edx
mov edx, dword [esp + 0xcc]
mov ebx, edx
jmp 0x4b955e
mov dword [ecx + 8], ebp
shr edx, 8
test edx, edx
jbe 0x4b9575
mov ebp, dword [ecx + 8]
mov byte [esp + 0x2e], 0
mov byte [esp + 0x2e], dl
xor esi, esi
jmp 0x4b9dbb
mov edx, dword [ecx + 8]
mov byte [esp + 0x2d], 0
mov byte [esp + 0x2d], 0x5d
xor ebp, ebp
jmp 0x4b9594
movzx esi, byte [esp + ebp + 0x2d]
inc ebp
imul edx, edx, 0x1000193
xor edx, esi
cmp ebp, 1
jl 0x4b9586
mov dword [ecx + 8], edx
mov edx, dword [0x7c78f0]
test edx, edx
jne 0x4b95ab
mov dword [ecx + 0x20], eax
jmp 0x4b95b3
lea edi, [ecx + 0x20]
call fcn.00463730
mov dword [ecx + 0x1c], 0
mov edx, dword [eax]
test edx, edx
jbe 0x4b95d6
mov ebp, eax
mov eax, 0xffffffff
mov esi, edx
xor edx, edx
div esi
cmp ebx, eax
jbe 0x4b95da
jmp 0x4b9d95
mov ebp, eax
mov esi, edx
imul esi, ebx
mov dword [ecx], esi
test ebx, ebx
jle 0x4b95f6
mov eax, dword [ebp + 4]
test eax, eax
je 0x4b95f6
lea edx, [ebx - 1]
imul edx, dword [ebp]
add eax, edx
mov dword [ecx + 4], eax
movzx eax, byte [ebp + 0xd]
mov byte [ecx + 0xd], al
movzx eax, byte [ebp + 0xe]
mov byte [ecx + 0xe], al
mov dword [ecx + 0x28], ebx
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 4], eax
call fcn.004b8e00
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [0x663104]
lea ebx, [0x663100]
cmp eax, ebx
jne 0x4b9d7f
mov edx, dword [0x7c78f0]
test edx, edx
jne 0x4b9653
mov edx, dword [esp + 0x9c]
mov dword [edx + 0x24], ecx
jmp 0x4b9664
mov edx, dword [esp + 0x9c]
lea edi, [edx + 0x24]
mov eax, ecx
call fcn.00463730
mov ecx, dword [esp + 0xd4]
mov ebx, dword [ecx + 4]
test ebx, ebx
je 0x4b98ad
mov ebx, dword [edx]
test ebx, ebx
je 0x4b98ad
mov ebp, dword [esp + 0xcc]
cmp ebp, 1
je 0x4b987b
movzx eax, byte [ecx + 0xf]
test al, 0x40
jne 0x4b9769
cmp ebx, 0x10000
ja 0x4b9769
mov eax, dword [edx + 4]
lea ecx, [0x5e2160]
mov dword [esp], ecx
shr eax, 2
add eax, 7
shr eax, 3
add eax, 3
and eax, 0xfffffffc
mov dword [esp + 0x48], eax
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call fcn.0044a130
mov eax, dword [esp + 0xc]
mov dword [esp + 0x98], eax
mov ecx, dword [esp + 0x9c]
mov edx, dword [ecx + 0x28]
mov dword [esp], eax
mov ebx, dword [esp + 0x48]
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0
mov ebp, dword [esp + 0xd4]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], edx
call fcn.004b8980
mov eax, dword [esp + 0x48]
test eax, eax
jbe 0x4b9d76
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x4b973e
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
mov dword [edx + 0x14], ecx
jmp 0x4b9756
mov ecx, dword [esp + 0x9c]
lea edi, [ecx + 0x14]
mov eax, dword [esp + 0x98]
call fcn.00463730
mov edx, ecx
mov ecx, dword [esp + 0xd4]
mov ebp, dword [esp + 0xcc]
jmp 0x4b98d8
lea eax, [0x5deb60]
mov dword [esp], eax
call fcn.0040bd40
mov eax, dword [esp + 4]
mov dword [esp], eax
mov dword [esp + 4], 4
mov dword [esp + 8], 4
mov eax, dword [esp + 0xd4]
mov dword [esp + 0xc], eax
call fcn.004b8af0
mov eax, dword [esp + 0xd4]
mov ecx, dword [eax + 4]
shr ecx, 2
mov edx, dword [eax]
shr edx, 2
mov dword [esp + 0x4c], edx
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
cmp edx, ecx
jbe 0x4b9a34
mov dword [esp + 0x50], ecx
add esi, 2
cmp ebx, esi
jae 0x4b9810
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 2
lea eax, [0x5e2160]
mov dword [esp + 0x10], eax
call fcn.0044a1f0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
mov word [esi + ebp - 2], 1
mov edi, ebp
lea ebp, [ecx + 1]
cmp edx, ebp
jbe 0x4b9cbf
lea ebp, [esi + 1]
cmp ebx, ebp
jae 0x4b986c
mov dword [esp], edi
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5e2160]
mov dword [esp + 0x10], eax
call fcn.0044a1f0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
mov edi, ebp
mov ebp, eax
mov eax, dword [esp + 0xd4]
mov byte [ebp + edi - 1], 0x81
mov esi, edx
sub edx, ecx
dec edx
jmp 0x4b9cd7
movzx ebx, byte [edx + 0xf]
movzx esi, byte [ecx + 0xf]
and esi, 0x40
or ebx, esi
mov byte [edx + 0xf], bl
mov ebx, dword [0x7c78f0]
mov eax, dword [ecx + 0x14]
test ebx, ebx
jne 0x4b989d
mov dword [edx + 0x14], eax
jmp 0x4b98a5
lea edi, [edx + 0x14]
call fcn.00463730
mov ebx, dword [ecx + 4]
mov dword [edx + 4], ebx
jmp 0x4b98d8
mov ebx, dword [0x7c78f0]
test ebx, ebx
jne 0x4b98c0
mov dword [edx + 0x14], 0
jmp 0x4b98ca
lea edi, [edx + 0x14]
xor eax, eax
call fcn.00463730
mov dword [edx + 4], 0
mov ebp, dword [esp + 0xcc]
nop
lea edi, [edx + 0x10]
mov ebx, dword [0x7c78f0]
mov esi, dword [ecx]
test ebx, ebx
jne 0x4b98f1
mov dword [edx + 0x10], 0
jmp 0x4b98f8
xor eax, eax
call fcn.00463730
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x4b998f
mov dword [esp + 0x34], esi
mov dword [esp + 0x94], edi
mov dword [esp + 0x8c], eax
lea eax, [0x5f0280]
mov dword [esp], eax
call fcn.0040bd40
mov eax, dword [esp + 4]
lea ecx, [0x4b9e00]
mov dword [eax], ecx
mov ecx, dword [esp + 0xcc]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0x34]
mov dword [eax + 8], edx
mov edx, dword [0x7c78f0]
test edx, edx
jne 0x4b9960
mov edx, dword [esp + 0x8c]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x9c]
mov dword [edx + 0x10], eax
jmp 0x4b9986
lea edi, [eax + 0xc]
mov edx, eax
mov eax, dword [esp + 0x8c]
call fcn.00463730
mov edi, dword [esp + 0x94]
mov eax, edx
call fcn.00463730
mov edx, dword [esp + 0x9c]
mov ebp, ecx
mov ecx, dword [esp + 0xd4]
cmp ebp, 1
jne 0x4b99a9
movzx eax, byte [ecx + 0xf]
test al, 0x20
je 0x4b99a9
movzx eax, byte [edx + 0xf]
or eax, 0x20
mov byte [edx + 0xf], al
jmp 0x4b99b3
movzx eax, byte [edx + 0xf]
and eax, 0xffffffdf
mov byte [edx + 0xf], al
lea eax, [0x5f5100]
mov dword [esp], eax
lea ecx, [esp + 0xa8]
mov dword [esp + 4], ecx
call fcn.004094a0
lea eax, [0x7a20c0]
mov dword [esp], eax
lea eax, [0x5f5100]
mov dword [esp + 4], eax
lea eax, [0x607180]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x10], eax
call fcn.00469bf0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x7c], ecx
lea edx, [0x6029a0]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.00409910
mov eax, dword [esp + 8]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xdc], eax
add esp, 0xc8
ret
cmp edx, 0x80
jae 0x4b9a89
inc esi
cmp ebx, esi
jae 0x4b9a7a
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5e2160]
mov dword [esp + 0x10], eax
call fcn.0044a1f0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0xd4]
mov edx, dword [esp + 0x4c]
or edx, 0x80
mov byte [esi + ebp - 1], dl
jmp 0x4b9b6e
inc esi
cmp ebx, esi
jae 0x4b9ac7
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5e2160]
mov dword [esp + 0x10], eax
call fcn.0044a1f0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0xd4]
mov edx, dword [esp + 0x4c]
mov byte [esi + ebp - 1], pe_nt_image_headers32
nop
jmp 0x4b9ae0
mov ecx, edx
or edx, 0x80
mov byte [esi + ebp - 1], dl
shr ecx, 7
mov edx, ecx
mov dword [esp + 0x3c], edx
cmp edx, 0x80
jb 0x4b9b2c
inc esi
cmp ebx, esi
jae 0x4b9acf
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5e2160]
mov dword [esp + 0x10], eax
call fcn.0044a1f0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0xd4]
mov edx, dword [esp + 0x3c]
jmp 0x4b9acf
inc esi
cmp ebx, esi
jae 0x4b9b6a
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5e2160]
mov dword [esp + 0x10], eax
call fcn.0044a1f0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0xd4]
mov edx, dword [esp + 0x3c]
mov byte [esi + ebp - 1], dl
mov edx, dword [esp + 0xcc]
mov ecx, edx
dec edx
jmp 0x4b9b8b
mov edi, edx
or edx, 0x80
mov byte [esi + ebp - 1], dl
shr edi, 7
mov edx, edi
mov dword [esp + 0x38], edx
cmp edx, 0x80
jb 0x4b9bde
inc esi
cmp ebx, esi
jae 0x4b9b7a
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5e2160]
mov dword [esp + 0x10], eax
call fcn.0044a1f0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0x38]
jmp 0x4b9b7a
inc esi
cmp ebx, esi
jae 0x4b9c23
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5e2160]
mov dword [esp + 0x10], eax
call fcn.0044a1f0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0x38]
mov byte [esi + ebp - 1], dl
lea edx, [esi + 1]
cmp ebx, edx
jae 0x4b9c66
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5e2160]
mov dword [esp + 0x10], eax
call fcn.0044a1f0
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xcc]
mov byte [edx + ebp - 1], 0
test edx, edx
jbe 0x4b9cb6
add edx, 0xfffffffc
mov dword [ebp], edx
mov edx, dword [esp + 0x9c]
movzx ebx, byte [edx + 0xf]
or ebx, 0x40
mov byte [edx + 0xf], bl
mov ebx, dword [0x7c78f0]
test ebx, ebx
jne 0x4b9c95
mov dword [edx + 0x14], ebp
jmp 0x4b9ca3
lea edi, [edx + 0x14]
mov ebx, eax
mov eax, ebp
call fcn.00463730
mov eax, ebx
mov ebx, dword [edx]
mov dword [edx + 4], ebx
mov ecx, eax
mov ebp, dword [esp + 0xcc]
jmp 0x4b98d8
xor eax, eax
mov ecx, eax
call fcn.004637b0
mov ebp, edi
jmp 0x4b9a34
mov ecx, edx
or edx, 0x80
mov byte [ebp + edi - 1], dl
shr ecx, 7
mov edx, ecx
mov dword [esp + 0x40], edx
cmp edx, 0x80
jb 0x4b9d27
inc ebp
cmp ebx, ebp
jae 0x4b9cc6
mov dword [esp], edi
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5e2160]
mov dword [esp + 0x10], eax
call fcn.0044a1f0
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0xd4]
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x4c]
jmp 0x4b9cc6
inc ebp
cmp ebx, ebp
jae 0x4b9d69
mov dword [esp], edi
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5e2160]
mov dword [esp + 0x10], eax
call fcn.0044a1f0
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0xd4]
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x4c]
mov byte [ebp + edi - 1], dl
mov edx, esi
mov esi, ebp
jmp 0x4b9cbf
xor eax, eax
mov ecx, eax
call fcn.004637b0
mov dword [esp], eax
mov dword [esp + 4], edx
lea eax, [0x6029a0]
mov dword [esp + 8], eax
call fcn.004093e0
lea eax, [0x5e1fa0]
mov dword [esp], eax
lea eax, [0x661704]
mov dword [esp + 4], eax
call fcn.00435720
movzx edi, byte [esp + esi + 0x2e]
inc esi
imul ebp, ebp, 0x1000193
xor ebp, edi
cmp esi, 1
jl 0x4b9dad
jmp 0x4b9558
mov dword [esp], edx
mov dword [esp + 4], ecx
lea eax, [0x6029a0]
mov dword [esp + 8], eax
call fcn.004093e0
lea eax, [0x5e1fa0]
mov dword [esp], eax
lea eax, [0x6616fc]
mov dword [esp + 4], eax
call fcn.00435720
nop
call fcn.00462320
jmp fcn.004b91c0