Function at 0x514800
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 8]
cmp eax, dword [ecx + 8]
jbe 0x51535f
sub esp, 0x88
mov eax, 0
lea edi, [esp + 0x70]
call fcn.0044d9ba
mov eax, dword [esp + 0x8c]
mov edx, dword [eax]
movzx edx, byte [edx + 0x44]
mov byte [eax + 0x50], 0
mov ebx, dword [esp + 0x90]
mov ebp, dword [ebx]
mov ecx, edx
mov edx, dword [ebp + 4]
mov ebp, dword [ebp]
mov esi, eax
mov eax, dword [esp + 0x9c]
cmp eax, edx
jae 0x515358
mov byte [esp + 0x23], cl
lea edx, [eax + eax*2]
shl edx, 3
movzx edx, byte [ebp + edx]
cmp dl, 5
je 0x5152bb
mov edx, dword [ebx + 4]
inc edx
imul edx, eax
mov ebp, dword [esp + 0xa0]
add edx, ebp
mov dword [esp + 0x50], edx
mov edi, ebp
mov ebp, dword [ebx + 0x24]
mov eax, dword [ebx + 0x20]
shr edx, 5
cmp edx, ebp
jae 0x515351
mov ebp, dword [eax + edx*4]
mov ecx, dword [esp + 0x50]
mov ebx, 1
shl ebx, cl
test ebp, ebx
je 0x5152ac
xor eax, eax
test al, al
je 0x5152a0
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0x1c]
mov ebx, dword [eax + 0x18]
lea ebp, [eax + 0x14]
mov dword [esp + 0x6c], ebp
lea ebp, [ebx + 1]
cmp ebp, edx
jg 0x515218
lea edx, [ebx + 1]
mov dword [eax + 0x18], edx
lea edx, [ebx + ebx*2]
mov ebx, dword [esp + 0x9c]
mov dword [ecx + edx*4], ebx
lea ebx, [ecx + edx*4]
mov byte [ebx + 4], 0
mov dword [ecx + edx*4 + 8], edi
jmp 0x5149d8
mov eax, edi
mov edi, dword [esp + 0x68]
mov edx, esi
movzx ecx, byte [esp + 0x22]
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x8c]
mov ebp, dword [eax]
mov eax, dword [ebp + 4]
mov ebp, dword [ebp]
cmp edx, eax
jae 0x51533c
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x22], cl
lea eax, [edx + edx*2]
lea ebp, [ebp + eax*8]
lea edi, [esp + 0x70]
mov esi, ebp
call fcn.0044de94
shl eax, 3
movzx ecx, byte [esp + 0x70]
cmp cl, 4
ja 0x515074
mov dword [esp + 0x34], edx
cmp cl, 1
ja 0x514dc5
test cl, cl
jne 0x514b0b
movzx ebp, byte [esp + 0x22]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x514a31
mov eax, dword [esp + 0x78]
xor ecx, ecx
mov edx, dword [esp + 0x90]
mov ebp, dword [edx + 4]
inc ebp
imul ebp, eax
add ebp, ebx
mov dword [esp + 0x50], ebp
mov esi, eax
mov eax, dword [edx + 0x20]
mov edi, edx
mov edx, dword [edx + 0x24]
shr ebp, 5
cmp ebp, edx
jae 0x515343
mov dword [esp + 0x28], ebx
mov byte [esp + 0x22], cl
mov edx, dword [eax + ebp*4]
mov ecx, dword [esp + 0x50]
mov ebx, 1
shl ebx, cl
test edx, ebx
je 0x514a25
xor eax, eax
test al, al
jne 0x514905
mov eax, edi
mov esi, dword [esp + 0x8c]
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x14]
lea ebx, [eax + 0x14]
test ecx, ecx
jle 0x515206
lea ebp, [ecx - 1]
cmp ebp, ecx
jae 0x51534a
mov dword [esp + 0x68], ebx
lea ecx, [ecx + ecx*2]
mov dword [esp + 0x50], ecx
mov edi, ebx
mov ebx, dword [edx + ecx*4 - 0xc]
mov dword [esp + 0x4c], ebx
shl ecx, 2
mov ebx, dword [esp + 0x50]
mov ebx, dword [edx + ebx*4 - 4]
movzx ecx, byte [ecx + edx - 8]
mov dword [eax + 0x18], ebp
mov edx, dword [esp + 0x4c]
jmp 0x51491d
or ebx, edx
mov dword [eax + ebp*4], ebx
mov eax, 1
jmp 0x5149c7
mov ecx, ebx
mov ebx, dword [esp + 0x90]
mov esi, ebp
mov ebp, dword [ebx]
mov edi, ebx
mov ebx, dword [ebp]
mov ebp, dword [ebp + 4]
cmp edx, ebp
jae 0x515301
movzx eax, byte [eax + ebx]
cmp al, 5
je 0x514a83
mov eax, dword [edi + 0x1c]
mov ebx, dword [edi + 0x14]
mov ebp, dword [edi + 0x18]
lea edx, [ebp + 1]
cmp edx, eax
jg 0x514a90
lea eax, [ebp + 1]
mov dword [edi + 0x18], eax
lea eax, [ebp + ebp*2]
mov edx, dword [esp + 0x34]
mov dword [ebx + eax*4], edx
lea edx, [ebx + eax*4]
mov byte [edx + 4], 1
mov dword [ebx + eax*4 + 8], ecx
mov eax, dword [esp + 0x74]
mov ebx, ecx
mov ecx, esi
jmp 0x514982
lea ecx, [0x76ec60]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.00439c80
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x90]
mov dword [ebx + 0x1c], edx
mov edx, dword [0xa08230]
test edx, edx
jne 0x514ae2
mov dword [ebx + 0x14], eax
movzx esi, byte [esp + 0x22]
mov edi, ebx
mov ebp, ecx
mov ebx, eax
mov ecx, dword [esp + 0x2c]
jmp 0x514a67
mov dword [esp + 0x64], eax
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040f250
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x90]
jmp 0x514ad1
mov eax, dword [esp + 0x90]
mov edx, dword [eax]
mov ebp, dword [edx]
mov edx, dword [edx + 4]
mov ecx, ebx
mov ebx, dword [esp + 0x74]
cmp ebx, edx
jae 0x5152fa
mov esi, ebx
lea ebx, [ebx + ebx*2]
shl ebx, 3
movzx ebx, byte [ebx + ebp]
mov edi, ebp
lea ebp, [ebx - 7]
xchg ebp, eax
cmp al, 3
xchg ebp, eax
ja 0x514c88
mov ebx, dword [esp + 0x78]
cmp ebx, edx
jae 0x5152f3
lea edx, [ebx + ebx*2]
shl edx, 3
movzx edx, byte [edx + edi]
cmp dl, 5
je 0x514c81
mov edx, dword [eax + 4]
inc edx
imul edx, ebx
add edx, ecx
mov ebp, dword [eax + 0x24]
mov esi, ebx
mov ebx, dword [eax + 0x20]
mov edi, edx
shr edx, 5
cmp edx, ebp
jae 0x5152ec
mov ebp, dword [ebx + edx*4]
mov ecx, edi
mov eax, 1
shl eax, cl
test ebp, eax
je 0x514c72
xor eax, eax
test al, al
je 0x514c66
mov eax, dword [esp + 0x90]
mov edx, dword [eax + 0x1c]
mov ebx, dword [eax + 0x14]
mov ebp, dword [eax + 0x18]
mov ecx, eax
lea eax, [ebp + 1]
cmp eax, edx
jg 0x514be4
lea eax, [ebp + 1]
mov dword [ecx + 0x18], eax
lea eax, [ebp + ebp*2]
mov dword [ebx + eax*4], esi
lea edx, [ebx + eax*4]
mov byte [edx + 4], 0
mov edx, dword [esp + 0x2c]
mov dword [ebx + eax*4 + 8], edx
mov eax, dword [esp + 0x78]
mov ebx, dword [ecx + 4]
movzx ecx, byte [esp + 0x22]
jmp 0x514982
mov dword [esp + 0x4c], esi
lea ecx, [0x76ec60]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
call fcn.00439c80
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x90]
mov dword [ebx + 0x1c], edx
mov edx, dword [0xa08230]
test edx, edx
jne 0x514c3d
mov dword [ebx + 0x14], eax
mov esi, dword [esp + 0x4c]
mov ebp, ecx
mov ebx, eax
mov ecx, dword [esp + 0x90]
jmp 0x514bb7
mov dword [esp + 0x60], eax
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040f250
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x90]
jmp 0x514c29
mov ecx, dword [esp + 0x90]
jmp 0x514bd3
or eax, ebp
mov dword [ebx + edx*4], eax
mov eax, 1
jmp 0x514b96
mov ecx, eax
jmp 0x514bd3
mov edx, dword [eax + 4]
cmp bl, 5
je 0x514dbe
lea ebx, [edx + 1]
imul ebx, esi
add ebx, edx
mov dword [esp + 0x50], ebx
mov ebp, dword [eax + 0x20]
mov edi, edx
mov edx, dword [eax + 0x24]
shr ebx, 5
cmp ebx, edx
jae 0x5152e5
mov edx, dword [ebp + ebx*4]
mov ecx, dword [esp + 0x50]
mov eax, 1
shl eax, cl
test eax, edx
je 0x514dae
xor eax, eax
test al, al
je 0x514da2
mov eax, dword [esp + 0x90]
mov edx, dword [eax + 0x1c]
mov ebx, dword [eax + 0x18]
mov ebp, dword [eax + 0x14]
mov ecx, eax
lea eax, [ebx + 1]
cmp eax, edx
jg 0x514d18
lea eax, [ebx + 1]
mov dword [ecx + 0x18], eax
lea eax, [ebx + ebx*2]
mov dword [ebp + eax*4], esi
lea edx, [ebp + eax*4]
mov byte [edx + 4], 0
mov dword [ebp + eax*4 + 8], edi
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0x2c]
movzx ecx, byte [esp + 0x22]
jmp 0x514982
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], edi
lea ecx, [0x76ec60]
mov dword [esp], ecx
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
call fcn.00439c80
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x90]
mov dword [ebx + 0x1c], edx
mov edx, dword [0xa08230]
test edx, edx
jne 0x514d79
mov dword [ebx + 0x14], eax
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x50]
mov ebx, ecx
mov ebp, eax
mov ecx, dword [esp + 0x90]
jmp 0x514ced
mov dword [esp + 0x5c], eax
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040f250
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x90]
jmp 0x514d61
mov ecx, dword [esp + 0x90]
jmp 0x514d06
or edx, eax
mov dword [ebp + ebx*4], edx
mov eax, 1
jmp 0x514ccc
mov ecx, eax
jmp 0x514d06
cmp cl, 2
jne 0x514f2c
movzx ebp, byte [esp + 0x22]
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x514f09
mov ecx, ebx
mov ebx, dword [esp + 0x78]
test ebx, ebx
jb 0x514ef8
mov esi, ebp
mov ebp, dword [esp + 0x90]
mov edi, eax
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
cmp ebx, eax
jae 0x514e6d
mov eax, dword [ebp]
mov edx, dword [edx + ebx*4]
mov dword [esp + 0x30], edx
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov edx, dword [esp + 0x34]
cmp edx, eax
jae 0x5152d0
movzx eax, byte [edi + ebx]
cmp al, 5
je 0x514e58
mov eax, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x18]
mov edi, edx
mov edx, dword [ebp + 0x1c]
lea ebp, [ebx + 1]
cmp ebp, edx
jg 0x514e7a
lea edx, [ebx + 1]
mov ebp, dword [esp + 0x90]
mov dword [ebp + 0x18], edx
lea edx, [ebx + ebx*2]
mov dword [eax + edx*4], edi
lea ebx, [eax + edx*4]
mov byte [ebx + 4], 1
mov ebx, dword [esp + 0x30]
mov dword [eax + edx*4 + 8], ebx
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov ebx, dword [esp + 0x78]
cmp ebx, edx
jae 0x5152c9
mov dword [eax + ebx*4], ecx
mov eax, dword [esp + 0x74]
mov ebx, ecx
mov ecx, esi
jmp 0x514982
lea ecx, [0x76ec60]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebp
call fcn.00439c80
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x90]
mov dword [ebx + 0x1c], edx
mov edx, dword [0xa08230]
test edx, edx
jne 0x514ecf
mov dword [ebx + 0x14], eax
movzx esi, byte [esp + 0x22]
mov edi, dword [esp + 0x34]
mov ebx, ecx
mov ecx, dword [esp + 0x2c]
jmp 0x514e36
mov dword [esp + 0x58], eax
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040f250
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x90]
jmp 0x514ebb
mov ebp, dword [esp + 0x90]
movzx esi, byte [esp + 0x22]
jmp 0x514e6d
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
mov ebp, dword [esp + 0x78]
cmp ebp, ecx
jae 0x5152d7
mov dword [edx + ebp*4], ebx
mov edi, eax
jmp 0x5149cf
cmp cl, 3
jne 0x514f78
mov eax, dword [esp + 0x94]
mov ecx, dword [eax + 0x14]
mov dword [esp + 4], ebx
mov edx, dword [esp + 0x98]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 0x78]
movzx ecx, byte [esp + 8]
not ecx
test al, cl
jne 0x514f6c
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0x2c]
movzx ecx, byte [esp + 0x22]
jmp 0x514982
mov edi, dword [esp + 0x90]
jmp 0x5149cf
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
test ecx, ecx
je 0x51505a
cmp ecx, 1
jle 0x514f95
mov dword [edx + 4], ebx
mov ecx, dword [esp + 0x8c]
movzx edx, byte [ecx + 0x50]
test dl, dl
je 0x515051
movzx edx, byte [esp + 0x23]
test dl, dl
je 0x51504d
test ebx, ebx
jle 0x515049
mov ebp, dword [ecx + 0x58]
mov esi, eax
mov eax, dword [ecx + 0x54]
cmp ebp, 1
jbe 0x5152c2
mov eax, dword [eax + 4]
cmp ebx, eax
jg 0x515009
mov byte [ecx + 0x50], 1
test dl, dl
je 0x514ffa
mov eax, dword [esi + 4]
cmp ebx, eax
je 0x514feb
mov edi, esi
jmp 0x5149cf
mov byte [esp + 0xa4], 1
add esp, 0x88
ret
mov byte [esp + 0xa4], 1
add esp, 0x88
ret
mov eax, dword [ecx + 0x54]
mov ebp, dword [ecx + 0x58]
mov edi, dword [esi + 0xc]
mov ebx, dword [esi + 8]
cmp ebp, edi
jle 0x515045
mov dword [esp], eax
mov dword [esp + 4], ebx
shl edi, 2
mov dword [esp + 8], edi
call fcn.0044e0c0
mov ecx, dword [esp + 0x8c]
movzx edx, byte [esp + 0x23]
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x90]
jmp 0x514fd5
mov edi, ebp
jmp 0x515019
mov esi, eax
jmp 0x514fd5
mov esi, eax
jmp 0x514fd5
movzx edx, byte [esp + 0x23]
mov esi, eax
jmp 0x515009
mov eax, dword [esp + 0x8c]
mov byte [eax + 0x50], 1
mov byte [esp + 0xa4], 1
add esp, 0x88
ret
cmp cl, 7
ja 0x5150fe
cmp cl, 5
je 0x515322
cmp cl, 6
jne 0x515099
mov eax, dword [esp + 0x74]
movzx ecx, byte [esp + 0x22]
jmp 0x514982
mov eax, dword [esp + 0x94]
mov ecx, dword [eax + 0x20]
mov dword [esp + 4], ebx
mov edx, dword [esp + 0x98]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x24], ecx
lea edx, [esp + 0x70]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.0050fda0
movzx eax, byte [esp + 8]
test al, al
je 0x5150f2
mov edx, dword [esp + 0x24]
mov ebp, dword [esp + 0x2c]
lea ebx, [ebp + edx]
mov eax, dword [esp + 0x74]
movzx ecx, byte [esp + 0x22]
jmp 0x514982
mov edi, dword [esp + 0x90]
jmp 0x5149cf
cmp cl, 8
je 0x5151aa
cmp cl, 9
je 0x515162
cmp cl, 0xa
jne 0x515308
mov eax, dword [esp + 0x94]
mov ecx, dword [eax + 0x20]
mov dword [esp + 4], ebx
mov edx, dword [esp + 0x98]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
cmp eax, 0xa
je 0x515156
cmp eax, 0xffffffff
je 0x515156
mov edx, dword [esp + 0x2c]
lea ebx, [edx + ecx]
mov eax, dword [esp + 0x74]
movzx ecx, byte [esp + 0x22]
jmp 0x514982
mov edi, dword [esp + 0x90]
jmp 0x5149cf
mov eax, dword [esp + 0x94]
mov ecx, dword [eax + 0x20]
mov dword [esp + 4], ebx
mov edx, dword [esp + 0x98]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
cmp eax, 0xffffffff
je 0x51519e
mov edx, dword [esp + 0x2c]
lea ebx, [edx + ecx]
mov eax, dword [esp + 0x74]
movzx ecx, byte [esp + 0x22]
jmp 0x514982
mov edi, dword [esp + 0x90]
jmp 0x5149cf
mov eax, dword [esp + 0x94]
mov ecx, dword [eax + 0x20]
mov dword [esp + 4], ebx
mov edx, dword [esp + 0x98]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x80]
mov ebx, dword [esp + 0x7c]
test edx, edx
jbe 0x5152de
mov edx, dword [ebx]
cmp eax, edx
jne 0x5151fa
mov edx, dword [esp + 0x2c]
lea ebx, [edx + ecx]
mov eax, dword [esp + 0x74]
movzx ecx, byte [esp + 0x22]
jmp 0x514982
mov edi, dword [esp + 0x90]
jmp 0x5149cf
movzx eax, byte [esi + 0x50]
mov byte [esp + 0xa4], al
add esp, 0x88
ret
lea eax, [0x76ec60]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebp
call fcn.00439c80
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x90]
mov dword [ebx + 0x1c], edx
mov edx, dword [0xa08230]
test edx, edx
jne 0x515277
mov dword [ebx + 0x14], eax
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0xa0]
mov ebx, ecx
mov ecx, eax
mov eax, dword [esp + 0x90]
jmp 0x5148e2
mov dword [esp + 0x54], eax
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040f250
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x90]
jmp 0x515259
mov eax, dword [esp + 0x90]
jmp 0x5149d8
or ebx, ebp
mov dword [eax + edx*4], ebx
mov eax, 1
jmp 0x5148b8
mov eax, ebx
jmp 0x5149d8
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
lea eax, [0x744900]
mov dword [esp], eax
lea eax, [0x7ffab0]
mov dword [esp + 4], eax
call fcn.004277b0
ud2
lea eax, [0x744900]
mov dword [esp], eax
lea eax, [0x7ffab8]
mov dword [esp + 4], eax
call fcn.004277b0
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.0044be50
jmp fcn.00514800