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

Disassembly:
push 0xffffffffffffffff
push 0x524f18
mov eax, dword fs:[0]
push eax
sub esp, 0x5c
mov eax, dword [0x557b14]
xor eax, esp
mov dword [esp + 0x58], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x557b14]
xor eax, esp
push eax
lea eax, [esp + 0x70]
mov dword fs:[0], eax
mov eax, dword [esp + 0x80]
cmp eax, 0xfffffffe
mov esi, dword [esp + 0x90]
mov ebp, edx
mov ebx, ecx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x28], esi
lea edi, [ebp + 0x20]
je 0x5181f1
test eax, eax
je 0x5181e5
cmp eax, dword [esp + 0x88]
je 0x5181f1
call fcn.004e0f8f
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
cmp ecx, dword [esp + 0x8c]
jne 0x51820d
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov eax, ebx
jmp 0x5189b1
cmp dword [ebp + 8], 0
mov ebx, dword [esi]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], 0
jbe 0x5183c0
jmp 0x518230
cmp byte [edi], 0
mov ebp, dword [esp + 0x84]
mov esi, eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], ebp
jne 0x5182c0
cmp eax, 0xfffffffe
je 0x51827e
test eax, eax
jne 0x51825b
call fcn.004e0f8f
mov eax, dword [esp + 0x80]
cmp dword [esi + 0x18], 0x10
jb 0x518266
mov ecx, dword [esi + 4]
jmp 0x518269
lea ecx, [esi + 4]
mov edx, dword [esi + 0x14]
add edx, ecx
cmp ebp, edx
jb 0x51827e
call fcn.004e0f8f
mov eax, dword [esp + 0x80]
cmp byte [esp + 0x94], 0
mov cl, byte [ebp]
je 0x518297
mov edx, dword [ebx]
movzx ecx, cl
mov cl, byte [ecx + edx + 0x104]
mov dl, byte [edi]
cmp cl, dl
je 0x5183e4
test dl, dl
jne 0x5183a8
lea esp, [esp]
add edi, 1
cmp byte [edi], 0
je 0x5182b0
jmp 0x5183a8
cmp esi, 0xfffffffe
je 0x5182d7
test esi, esi
je 0x5182d2
cmp esi, dword [esp + 0x88]
je 0x5182d7
call fcn.004e0f8f
cmp ebp, dword [esp + 0x8c]
je 0x51838f
cmp esi, 0xfffffffe
je 0x51830e
test esi, esi
jne 0x5182f2
call fcn.004e0f8f
cmp dword [esi + 0x18], 0x10
jb 0x5182fd
mov eax, dword [esi + 4]
jmp 0x518300
lea eax, [esi + 4]
mov edx, dword [esi + 0x14]
add edx, eax
cmp ebp, edx
jb 0x51830e
call fcn.004e0f8f
cmp byte [esp + 0x94], 0
mov al, byte [ebp]
je 0x518327
mov ecx, dword [ebx]
movzx eax, al
mov al, byte [eax + ecx + 0x104]
cmp al, byte [edi]
jne 0x51838f
add edi, 1
cmp esi, 0xfffffffe
je 0x518358
test esi, esi
jne 0x51833c
call fcn.004e0f8f
cmp dword [esi + 0x18], 0x10
jb 0x518347
mov eax, dword [esi + 4]
jmp 0x51834a
lea eax, [esi + 4]
mov ecx, dword [esi + 0x14]
add ecx, eax
cmp ebp, ecx
jb 0x518358
call fcn.004e0f8f
add ebp, 1
cmp byte [edi], 0
mov dword [esp + 0x30], ebp
jne 0x5182c0
mov ecx, dword [esp + 0x1c]
cmp byte [ecx + 0x1c], 0
jne 0x5183ee
cmp esi, 0xfffffffe
je 0x518417
test esi, esi
je 0x518412
cmp esi, dword [esp + 0x80]
jmp 0x518410
cmp byte [edi], 0
je 0x518368
mov eax, edi
add eax, 1
cmp byte [eax], 0
jne 0x518396
lea edi, [eax + 1]
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
add ecx, 1
cmp ecx, dword [edx + 8]
mov dword [esp + 0x18], ecx
jb 0x518230
cmp eax, 0xfffffffe
je 0x51846d
test eax, eax
jne 0x5183d9
call fcn.004e0f8f
mov eax, dword [esp + 0x80]
cmp dword [eax + 0x18], 0x10
jb 0x518450
mov ecx, dword [eax + 4]
jmp 0x518453
mov ecx, dword [esp + 0x1c]
cmp byte [ecx + 0x1c], 0
je 0x518405
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x80]
mov edx, dword [eax]
mov dword [ecx], edx
mov eax, dword [eax + 4]
jmp 0x5189ac
cmp esi, 0xfffffffe
je 0x518417
test esi, esi
je 0x518412
cmp esi, eax
je 0x518417
call fcn.004e0f8f
cmp ebp, dword [esp + 0x84]
jne 0x51843c
lea ecx, [esp + 0x80]
call fcn.004a7b70
mov edx, dword [eax]
mov ecx, dword [esp + 0x20]
mov dword [ecx], edx
mov eax, dword [eax + 4]
jmp 0x5189ac
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x2c]
mov edx, dword [eax]
mov dword [ecx], edx
mov eax, dword [eax + 4]
jmp 0x5189ac
lea ecx, [eax + 4]
mov edx, dword [eax + 0x14]
add edx, ecx
cmp dword [esp + 0x84], edx
jb 0x51846d
call fcn.004e0f8f
mov eax, dword [esp + 0x80]
cmp byte [esp + 0x94], 0
mov ecx, dword [esp + 0x84]
mov cl, byte [ecx]
je 0x518495
mov ebp, ebx
mov edx, dword [ebp]
movzx ecx, cl
mov bl, byte [ecx + edx + 0x104]
mov byte [esp + 0x17], bl
jmp 0x51849f
mov ebp, dword [esp + 0x24]
mov byte [esp + 0x17], cl
mov bl, cl
mov esi, dword [esp + 0x1c]
mov ecx, dword [esi + 0xc]
xor edx, edx
cmp ecx, edx
jne 0x5184b5
cmp dword [esi + 0x10], edx
je 0x5187cb
mov dword [esp + 0x68], 0xf
mov dword [esp + 0x64], edx
mov byte [esp + 0x54], 0
cmp ecx, edx
mov dword [esp + 0x78], edx
je 0x51866e
mov edx, dword [esp + 0x28]
test dword [edx + 8], 0x200000
jne 0x5184f3
mov ebp, 1
mov byte [esp + 0x54], bl
mov dword [esp + 0x64], ebp
mov byte [esp + 0x55], 0
jmp 0x51854c
lea eax, [esp + 0x19]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x3c]
push edx
mov ecx, ebp
mov byte [esp + 0x24], bl
mov byte [esp + 0x25], 0
call fcn.0050f8d0
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x5c]
mov byte [esp + 0x84], 1
call fcn.00401201
cmp dword [esp + 0x4c], 0x10
mov byte [esp + 0x78], 0
jb 0x518541
mov eax, dword [esp + 0x38]
push eax
call fcn.004e001f
add esp, 4
mov ebp, dword [esp + 0x64]
mov eax, dword [esp + 0x80]
cmp dword [esi + 0xc], 0
mov dword [esp + 0x18], 0
jbe 0x51866e
mov ebx, dword [esp + 0x54]
cmp byte [edi], 0
jne 0x518582
test ebp, ebp
je 0x5185c5
cmp ebp, 1
jne 0x518582
cmp dword [esp + 0x68], 0x10
mov eax, ebx
jae 0x51857d
lea eax, [esp + 0x54]
cmp byte [eax], 0
je 0x5185c5
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x518587
sub eax, edx
mov esi, eax
cmp ebp, esi
mov ecx, ebp
jb 0x51859c
mov ecx, esi
cmp dword [esp + 0x68], 0x10
mov eax, ebx
jae 0x5185a9
lea eax, [esp + 0x54]
push ecx
push edi
push eax
call fcn.004067a4
add esp, 0xc
test eax, eax
jne 0x5185c3
cmp ebp, esi
jb 0x518630
cmp ebp, esi
setne al
test eax, eax
jl 0x518630
add edi, 1
cmp byte [edi], 0
jne 0x5185c5
add edi, 1
cmp byte [edi], 0
jne 0x5185f8
test ebp, ebp
je 0x518812
cmp ebp, 1
jne 0x5185f8
cmp dword [esp + 0x68], 0x10
mov eax, ebx
jae 0x5185ef
lea eax, [esp + 0x54]
cmp byte [eax], 0
je 0x518812
mov eax, edi
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x518600
sub eax, edx
push eax
push edi
push ebp
push 0
lea ecx, [esp + 0x60]
call fcn.00406ac6
test eax, eax
mov ebx, dword [esp + 0x54]
jle 0x518812
mov ebp, dword [esp + 0x64]
jmp 0x518640
add edi, 1
cmp byte [edi], 0
jne 0x518630
add edi, 1
jmp 0x518640
add edi, 1
cmp byte [edi], 0
jne 0x518640
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
add eax, 1
add edi, 1
cmp eax, dword [ecx + 0xc]
mov dword [esp + 0x18], eax
jb 0x518562
mov eax, dword [esp + 0x80]
mov bl, byte [esp + 0x17]
mov ecx, dword [esp + 0x1c]
cmp dword [ecx + 0x10], 0
je 0x51878b
lea edx, [esp + 0x19]
push edx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x30]
mov byte [esp + 0x24], bl
mov byte [esp + 0x25], 0
call fcn.005146a0
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x5c]
mov byte [esp + 0x84], 2
call fcn.00401201
cmp dword [esp + 0x4c], 0x10
mov byte [esp + 0x78], 0
jb 0x5186cc
mov edx, dword [esp + 0x38]
push edx
call fcn.004e001f
add esp, 4
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x10]
xor ebx, ebx
cmp eax, ebx
mov dword [esp + 0x4c], 0xf
mov dword [esp + 0x48], ebx
mov byte [esp + 0x38], bl
mov dword [esp + 0x28], eax
jbe 0x518780
mov ebp, dword [esp + 0x64]
cmp byte [edi], 0
jne 0x51871f
test ebp, ebp
je 0x518897
cmp ebp, 1
jne 0x51871f
cmp dword [esp + 0x68], 0x10
mov eax, dword [esp + 0x54]
jae 0x518716
lea eax, [esp + 0x54]
cmp byte [eax], 0
je 0x518897
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x518724
sub eax, edx
mov esi, eax
cmp ebp, esi
mov ecx, ebp
jb 0x518739
mov ecx, esi
cmp dword [esp + 0x68], 0x10
mov eax, dword [esp + 0x54]
jae 0x518748
lea eax, [esp + 0x54]
push ecx
push edi
push eax
call fcn.004067a4
add esp, 0xc
test eax, eax
jne 0x518768
cmp ebp, esi
jb 0x518768
cmp ebp, esi
setne al
test eax, eax
je 0x518897
add edi, 1
cmp byte [edi], 0
jne 0x518768
add ebx, 1
add edi, 1
cmp ebx, dword [esp + 0x28]
jb 0x5186f5
mov bl, byte [esp + 0x17]
mov eax, dword [esp + 0x80]
cmp dword [esp + 0x68], 0x10
mov dword [esp + 0x78], 0xffffffff
jb 0x5187ae
mov edx, dword [esp + 0x54]
push edx
call fcn.004e001f
mov eax, dword [esp + 0x84]
add esp, 4
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x68], 0xf
mov dword [esp + 0x64], 0
mov byte [esp + 0x54], 0
mov ecx, dword [esi + 0x14]
test ecx, 0x3ff
je 0x5187ee
mov edi, dword [ebp]
movzx edx, bl
movzx edx, word [edi + edx*2 + 0x204]
and edx, ecx
test edx, 0x3ff
jne 0x518803
test ecx, 0x400
je 0x518918
cmp bl, 0x5f
jne 0x518918
cmp byte [esi + 0x1c], 0
jne 0x51899f
jmp 0x51895a
mov edx, dword [esp + 0x1c]
cmp byte [edx + 0x1c], 0
mov eax, dword [esp + 0x80]
jne 0x518870
cmp eax, 0xfffffffe
je 0x518868
test eax, eax
jne 0x51883c
call fcn.004e0f8f
mov eax, dword [esp + 0x80]
mov ebx, dword [esp + 0x54]
cmp dword [eax + 0x18], 0x10
jb 0x518847
mov ecx, dword [eax + 4]
jmp 0x51884a
lea ecx, [eax + 4]
mov edx, dword [eax + 0x14]
add edx, ecx
cmp dword [esp + 0x84], edx
jb 0x518868
call fcn.004e0f8f
mov eax, dword [esp + 0x80]
mov ebx, dword [esp + 0x54]
add dword [esp + 0x84], 1
cmp dword [esp + 0x68], 0x10
mov esi, dword [esp + 0x20]
mov dword [esi], eax
mov eax, dword [esp + 0x84]
mov dword [esi + 4], eax
jb 0x518890
push ebx
call fcn.004e001f
add esp, 4
mov eax, esi
jmp 0x5189b1
mov ecx, dword [esp + 0x1c]
cmp byte [ecx + 0x1c], 0
mov eax, dword [esp + 0x80]
jne 0x5188ed
cmp eax, 0xfffffffe
je 0x5188e5
test eax, eax
jne 0x5188bd
call fcn.004e0f8f
mov eax, dword [esp + 0x80]
cmp dword [eax + 0x18], 0x10
jb 0x5188c8
mov ecx, dword [eax + 4]
jmp 0x5188cb
lea ecx, [eax + 4]
mov edx, dword [eax + 0x14]
add edx, ecx
cmp dword [esp + 0x84], edx
jb 0x5188e5
call fcn.004e0f8f
mov eax, dword [esp + 0x80]
add dword [esp + 0x84], 1
cmp dword [esp + 0x68], 0x10
mov esi, dword [esp + 0x20]
mov dword [esi], eax
mov eax, dword [esp + 0x84]
mov dword [esi + 4], eax
jb 0x518890
mov ecx, dword [esp + 0x54]
push ecx
call fcn.004e001f
add esp, 4
mov eax, esi
jmp 0x5189b1
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x518954
test ecx, 0x3ff
je 0x51893f
mov edi, dword [ebp]
movzx edx, bl
movzx edx, word [edi + edx*2 + 0x204]
and edx, ecx
test edx, 0x3ff
jne 0x518954
test ecx, 0x400
je 0x51894c
cmp bl, 0x5f
je 0x518954
cmp byte [esi + 0x1c], 0
jne 0x51899f
jmp 0x51895a
cmp byte [esi + 0x1c], 0
je 0x51899f
cmp eax, 0xfffffffe
je 0x518997
test eax, eax
jne 0x51896f
call fcn.004e0f8f
mov eax, dword [esp + 0x80]
cmp dword [eax + 0x18], 0x10
jb 0x51897a
mov ecx, dword [eax + 4]
jmp 0x51897d
lea ecx, [eax + 4]
mov edx, dword [eax + 0x14]
add edx, ecx
cmp dword [esp + 0x84], edx
jb 0x518997
call fcn.004e0f8f
mov eax, dword [esp + 0x80]
add dword [esp + 0x84], 1
mov ecx, dword [esp + 0x20]
mov dword [ecx], eax
mov eax, dword [esp + 0x84]
mov dword [ecx + 4], eax
mov eax, ecx
mov ecx, dword [esp + 0x70]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.004e0010
add esp, 0x68
ret 0x18