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

Disassembly:
sub esp, 0x124
push ebp
push edi
mov edi, dword [esp + 0x130]
mov ebp, 0x6c30d4
mov dword [esp + 0x28], 0
mov dword [edi], ebp
mov eax, ebp
mov ecx, 1
lock xadd dword [eax], ecx
call fcn.00513c60
test eax, eax
je 0x513d4b
cmp dword [eax], 0
jne 0x513de5
cmp dword [esp + 0x134], 0xb
ja case.0x513d60.8
mov edx, dword [esp + 0x134]
jmp dword [edx*4 + 0x514888]
mov eax, 0x643c44
jmp 0x513db2
mov eax, 0x643e54
jmp 0x513db2
mov eax, 0x644064
jmp 0x513db2
mov eax, 0x644274
jmp 0x513db2
mov eax, 0x644484
jmp 0x513db2
mov eax, 0x644694
jmp 0x513db2
mov eax, 0x6448a4
jmp 0x513db2
mov eax, 0x644ab4
jmp 0x513db2
mov eax, 0x644cc4
jmp 0x513db2
mov eax, 0x644ed4
jmp 0x513db2
mov eax, 0x6450e4
push 0xffffffffffffffff
push eax
lea eax, [esp + 0x6c]
push eax
call fcn.004c7b30
add esp, 0xc
push eax
mov ecx, edi
call fcn.004c3960
mov ecx, dword [esp + 0x64]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne case.0x513d60.8
mov eax, dword [esp + 0x64]
push eax
jmp 0x514694
mov dword [esp + 0xc], ebp
mov ecx, ebp
mov edx, 1
lock xadd dword [ecx], edx
mov dword [esp + 0x14], ebp
mov eax, ebp
mov ecx, 1
lock xadd dword [eax], ecx
mov eax, dword [esp + 0x134]
cmp eax, 0xb
ja case.default.0x513e13
jmp dword [eax*4 + 0x5148b8]
mov dword [esp + 0xd4], str.Prefix
lea edx, [esp + 0xd4]
jmp 0x514010
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x10]
mov dword [esp + 0xa4], str.Documentation
call fcn.004c8d20
lea ecx, [esp + 0xdc]
push ecx
mov dword [esp + 0xe0], 0x684560
lea ecx, [esp + 0x18]
jmp 0x514015
lea edx, [esp + 0xa8]
push edx
lea ecx, [esp + 0x10]
mov dword [esp + 0xac], str.Headers
call fcn.004c8d20
lea eax, [esp + 0x98]
mov dword [esp + 0x98], str.include
push eax
lea ecx, [esp + 0x18]
jmp 0x514015
lea ecx, [esp + 0xb0]
push ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0xb4], str.Libraries
call fcn.004c8d20
mov dword [esp + 0xcc], 0x645390
lea edx, [esp + 0xcc]
lea ecx, [esp + 0x14]
jmp 0x514014
lea eax, [esp + 0xb8]
push eax
lea ecx, [esp + 0x10]
mov dword [esp + 0xbc], str.Binaries
call fcn.004c8d20
lea ecx, [esp + 0xd0]
push ecx
mov dword [esp + 0xd4], 0x68398c
lea ecx, [esp + 0x18]
jmp 0x514015
lea edx, [esp + 0xc0]
push edx
lea ecx, [esp + 0x10]
mov dword [esp + 0xc4], str.Plugins
call fcn.004c8d20
lea eax, [esp + 0xd8]
mov dword [esp + 0xd8], str.plugins
push eax
lea ecx, [esp + 0x18]
jmp 0x514015
lea ecx, [esp + 0xc8]
push ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0xcc], str.Imports
call fcn.004c8d20
mov dword [esp + 0xe0], str.imports
lea edx, [esp + 0xe0]
lea ecx, [esp + 0x14]
jmp 0x514014
lea eax, [esp + 0x9c]
mov dword [esp + 0x9c], 0x64535c
push eax
lea ecx, [esp + 0x10]
jmp 0x514015
lea ecx, [esp + 0xa4]
push ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0xa8], str.Translations
call fcn.004c8d20
mov dword [esp + 0xac], str.translations
lea edx, [esp + 0xac]
lea ecx, [esp + 0x14]
jmp 0x514014
lea eax, [esp + 0xb4]
mov dword [esp + 0xb4], str.Settings
push eax
lea ecx, [esp + 0x10]
jmp 0x514015
lea ecx, [esp + 0xbc]
push ecx
mov dword [esp + 0xc0], str.Examples
lea ecx, [esp + 0x10]
jmp 0x514015
mov dword [esp + 0xc4], str.Demos
lea edx, [esp + 0xc4]
lea ecx, [esp + 0xc]
push edx
call fcn.004c8d20
cmp dword [esp + 0xc], ebp
je 0x514668
push ebx
push esi
call fcn.00513c60
xor esi, esi
cmp eax, esi
je 0x514035
mov ebx, dword [eax]
jmp 0x514037
xor ebx, ebx
push 0xffffffffffffffff
push str.Paths
mov dword [esp + 0x48], ebx
call fcn.004c63d0
mov dword [esp + 0x5c], eax
add esp, 8
lea eax, [esp + 0x54]
push eax
mov ecx, ebx
call fcn.004d0ea0
mov ecx, dword [esp + 0x54]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x514074
mov eax, dword [esp + 0x54]
push eax
call fcn.004c6150
add esp, 4
mov dword [esp + 0x34], ebp
mov ecx, ebp
mov edx, 1
lock xadd dword [ecx], edx
lea eax, [esp + 0x38]
push eax
mov ecx, ebx
mov dword [esp + 0x94], esi
mov dword [esp + 0x74], esi
mov dword [esp + 0x8c], esi
call fcn.004d02a0
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 0xc]
sub edx, dword [eax + 8]
xor ecx, ecx
mov dword [esp + 0x78], ecx
test edx, edx
jle 0x514370
lea esp, [esp]
mov edx, dword [eax + 8]
add edx, ecx
lea eax, [eax + edx*4 + 0x14]
mov eax, dword [eax]
mov dword [esp + 0x20], eax
mov ecx, 1
lock xadd dword [eax], ecx
push 1
push 0
lea eax, [esp + 0x56]
push eax
lea ecx, [esp + 0x24]
mov edx, 0x2e
push ecx
lea ecx, [esp + 0x30]
mov word [esp + 0x5e], dx
call fcn.004cc660
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
test eax, eax
jle 0x5142f6
cmp eax, 4
jge 0x5142f6
mov edx, dword [ecx]
or edi, 0xffffffff
or esi, edi
cmp edx, 1
je 0x514131
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 4]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00401e74
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 8]
push 0xa
lea edx, [esp + 0x17]
push edx
lea ecx, [eax + ecx*4 + 0x14]
call fcn.004c65e0
cmp byte [esp + 0x13], 0
mov ebp, eax
je 0x514708
test ebp, ebp
jl 0x514708
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0xc]
sub edx, dword [eax + 8]
cmp edx, 2
jl 0x5141ac
push 0xa
lea eax, [esp + 0x17]
push eax
push 1
lea ecx, [esp + 0x24]
call fcn.00401d47
mov ecx, eax
call fcn.004c65e0
cmp byte [esp + 0x13], 0
mov edi, eax
jne 0x5141a5
lea ecx, [esp + 0x18]
call fcn.00401114
lea ecx, [esp + 0x20]
call fcn.004010b1
jmp 0x514345
test edi, edi
jge 0x5141ac
or edi, 0xffffffff
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xc]
sub ecx, dword [eax + 8]
cmp ecx, 3
jl 0x5141e4
push 0xa
lea edx, [esp + 0x17]
push edx
push 2
lea ecx, [esp + 0x24]
call fcn.00401d47
mov ecx, eax
call fcn.004c65e0
cmp byte [esp + 0x13], 0
mov esi, eax
je 0x51418e
test esi, esi
jge 0x5141e4
or esi, 0xffffffff
cmp ebp, dword [esp + 0x90]
jl 0x514283
cmp ebp, 4
jg 0x514283
cmp edi, 0xffffffff
je 0x51420a
cmp edi, dword [esp + 0x70]
jl 0x514283
cmp edi, 8
jg 0x514283
cmp esi, 0xffffffff
je 0x51421d
cmp esi, dword [esp + 0x88]
jl 0x514283
cmp esi, 6
jg 0x514283
lea ecx, [esp + 0x27]
mov dword [esp + 0xf0], ecx
lea eax, [esp + 0x20]
lea ecx, [esp + 0x80]
mov dword [esp + 0xec], eax
lea edx, [esp + 0xec]
lea eax, [esp + 0x14]
push ecx
lea ecx, [esp + 0x110]
mov byte [esp + 0x2b], 0x2f
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], eax
call fcn.004fd9d0
mov ecx, dword [esp + 0x40]
or dword [esp + 0x30], 1
lea edx, [esp + 0x80]
push edx
call fcn.004cf1c0
test al, al
je 0x514283
mov bl, 1
jmp 0x514285
xor bl, bl
test byte [esp + 0x30], 1
je 0x51429d
and dword [esp + 0x30], 0xfffffffe
lea ecx, [esp + 0x80]
call fcn.004010b1
test bl, bl
je 0x5142f6
lea ecx, [esp + 0x26]
lea edx, [esp + 0x68]
lea eax, [esp + 0x20]
mov dword [esp + 0x108], ecx
push edx
lea ecx, [esp + 0x108]
mov byte [esp + 0x2a], 0x2f
mov dword [esp + 0x108], eax
call fcn.004cdd80
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x38]
call fcn.004c3960
lea ecx, [esp + 0x68]
call fcn.004010b1
mov dword [esp + 0x90], ebp
mov dword [esp + 0x70], edi
mov dword [esp + 0x88], esi
mov eax, dword [esp + 0x18]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x51432b
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0xc]
lea ecx, [eax + edx*4 + 0x14]
mov edx, dword [eax + 8]
mov esi, eax
push ecx
lea eax, [eax + edx*4 + 0x14]
push eax
lea ecx, [esp + 0x20]
call fcn.00401f5c
push esi
call fcn.004cc7c0
add esp, 4
mov ecx, dword [esp + 0x20]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x514345
mov eax, dword [esp + 0x20]
push eax
call fcn.004c6150
add esp, 4
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x78]
mov edx, dword [eax + 0xc]
sub edx, dword [eax + 8]
inc ecx
cmp ecx, edx
mov dword [esp + 0x78], ecx
jl 0x5140c0
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x138]
mov ebp, 0x6c30d4
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x5143a1
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 0xc]
lea ecx, [eax + edx*4 + 0x14]
mov edx, dword [eax + 8]
mov esi, eax
push ecx
lea eax, [eax + edx*4 + 0x14]
push eax
lea ecx, [esp + 0x40]
call fcn.00401f5c
push esi
call fcn.004cc7c0
add esp, 4
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x118]
call fcn.004d8290
mov eax, dword [esp + 0x34]
mov dword [esp + 0x3c], eax
mov edx, 1
lock xadd dword [eax], edx
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x40]
call fcn.004c73e0
lea ecx, [esp + 0x98]
push ecx
lea edx, [esp + 0x118]
push edx
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x130]
push ecx
mov ecx, ebx
call fcn.004cf250
mov ecx, eax
call fcn.004d76b0
push eax
mov ecx, edi
call fcn.004c3960
mov edx, dword [esp + 0x98]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x514424
mov ecx, dword [esp + 0x98]
push ecx
call fcn.004c6150
add esp, 4
lea ecx, [esp + 0x124]
call fcn.004d6200
mov edx, dword [esp + 0x3c]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x51444a
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.004c6150
add esp, 4
lea ecx, [esp + 0x114]
call fcn.004d6200
push 0xffffffffffffffff
push 0x645314
call fcn.004c63d0
add esp, 8
push 0
push 1
lea edx, [esp + 0x4c]
push edx
lea ecx, [esp + 0x38]
mov dword [esp + 0x50], eax
call fcn.004fa8b0
mov eax, dword [esp + 0x44]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x514495
mov edx, dword [esp + 0x44]
push edx
call fcn.004c6150
add esp, 4
push 1
lea ecx, [esp + 0x30]
call fcn.004efb60
push 0
push 0
push edi
lea ecx, [esp + 0x38]
call fcn.004faa90
mov esi, eax
cmp esi, 0xffffffff
je 0x5145a5
lea esp, [esp]
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x30]
call fcn.004efb70
sub eax, 3
push eax
lea ecx, [esi + 2]
push ecx
lea edx, [esp + 0x80]
push edx
mov ecx, edi
call fcn.004c78b0
mov ecx, eax
call fcn.004c7a70
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
push eax
lea ecx, [esp + 0x68]
push ecx
call fcn.004bf480
mov edx, dword [eax]
mov eax, dword [edx + 0xc]
push 0xffffffffffffffff
push eax
lea eax, [esp + 0x70]
push eax
call fcn.004c7b30
add esp, 0x14
push eax
lea ecx, [esp + 0x30]
call fcn.004efb70
push eax
push esi
mov ecx, edi
call fcn.004cbff0
mov ecx, dword [esp + 0x60]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x51453e
mov eax, dword [esp + 0x60]
push eax
call fcn.004c6150
add esp, 4
mov ecx, dword [esp + 0x64]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x514558
mov eax, dword [esp + 0x64]
push eax
call fcn.004cc7c0
add esp, 4
mov ecx, dword [esp + 0x5c]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x514572
mov eax, dword [esp + 0x5c]
push eax
call fcn.004cc7c0
add esp, 4
mov ecx, dword [esp + 0x74]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x51458c
mov eax, dword [esp + 0x74]
push eax
call fcn.004c6150
add esp, 4
push 0
push 0
push edi
lea ecx, [esp + 0x38]
call fcn.004faa90
mov esi, eax
cmp esi, 0xffffffff
jne 0x5144c0
push 0xffffffffffffffff
push str.__EPOCROOT
call fcn.004c63d0
add esp, 8
push 0
push 1
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esp + 0x5c]
mov dword [esp + 0x54], eax
call fcn.004fa8b0
mov edx, dword [esp + 0x48]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x5145e4
mov ecx, dword [esp + 0x48]
push ecx
call fcn.004c6150
add esp, 4
push 0
push 0
push edi
lea ecx, [esp + 0x5c]
call fcn.004faa90
mov esi, eax
cmp esi, 0xffffffff
je 0x514633
lea edx, [esp + 0x7c]
push edx
call fcn.0053b3c0
add esp, 4
push eax
lea ecx, [esp + 0x54]
call fcn.004efb70
push eax
push esi
mov ecx, edi
call fcn.004cbff0
mov eax, dword [esp + 0x7c]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x514633
mov edx, dword [esp + 0x7c]
push edx
call fcn.004c6150
add esp, 4
mov ecx, ebx
call fcn.004d1df0
lea ecx, [esp + 0x50]
call fcn.004fa5e0
lea ecx, [esp + 0x2c]
call fcn.004fa5e0
mov eax, dword [esp + 0x34]
pop esi
or ecx, 0xffffffff
pop ebx
lock xadd dword [eax], ecx
jne 0x514668
mov edx, dword [esp + 0x2c]
push edx
call fcn.004c6150
add esp, 4
mov eax, dword [esp + 0x14]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x514682
mov edx, dword [esp + 0x14]
push edx
call fcn.004c6150
add esp, 4
mov eax, dword [esp + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne case.0x513d60.8
mov edx, dword [esp + 0xc]
push edx
call fcn.004c6150
add esp, 4
push edi
call fcn.005101c0
add esp, 4
test al, al
je 0x51487a
mov dword [esp + 0x20], ebp
mov eax, 1
lock xadd dword [ebp], eax
cmp dword [esp + 0x134], 0
jne 0x51478c
cmp dword [0x6ca9cc], 0
je 0x514758
lea ecx, [esp + 0x7c]
push ecx
call fcn.004e7db0
add esp, 4
push eax
lea ecx, [esp + 0x24]
call fcn.004c3960
mov edx, dword [esp + 0x7c]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x5147c8
mov ecx, dword [esp + 0x7c]
push ecx
jmp 0x5147c0
mov ecx, dword [esp + 0x18]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x51473d
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xc]
lea edx, [eax + ecx*4 + 0x14]
mov ecx, dword [eax + 8]
push edx
lea edx, [eax + ecx*4 + 0x14]
push edx
lea ecx, [esp + 0x20]
mov esi, eax
call fcn.00401f5c
push esi
call fcn.004cc7c0
add esp, 4
mov eax, dword [esp + 0x20]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x514345
mov edx, dword [esp + 0x20]
push edx
jmp 0x51433d
lea edx, [esp + 0x84]
push edx
call fcn.00510680
add esp, 4
push eax
lea ecx, [esp + 0x24]
call fcn.004c3960
mov eax, dword [esp + 0x84]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x5147c8
mov edx, dword [esp + 0x84]
push edx
jmp 0x5147c0
lea eax, [esp + 0x8c]
push 0
push eax
call fcn.00513d10
add esp, 8
push eax
lea ecx, [esp + 0x24]
call fcn.004c3960
mov ecx, dword [esp + 0x8c]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x5147c8
mov eax, dword [esp + 0x8c]
push eax
call fcn.004c6150
add esp, 4
lea ecx, [esp + 0x20]
mov dword [esp + 0xec], ecx
lea ecx, [esp + 0x50]
lea edx, [esp + 0x1d]
lea eax, [esp + 0xec]
push ecx
lea ecx, [esp + 0xf8]
mov byte [esp + 0x21], 0x2f
mov dword [esp + 0xf4], edx
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], edi
call fcn.004fd9d0
lea edx, [esp + 0x50]
push edx
lea eax, [esp + 0x98]
push eax
call fcn.005106e0
add esp, 8
push eax
mov ecx, edi
call fcn.004c3960
mov ecx, dword [esp + 0x94]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x514846
mov eax, dword [esp + 0x94]
push eax
call fcn.004c6150
add esp, 4
mov ecx, dword [esp + 0x50]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x514860
mov eax, dword [esp + 0x50]
push eax
call fcn.004c6150
add esp, 4
mov ecx, dword [esp + 0x20]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x51487a
mov eax, dword [esp + 0x20]
push eax
call fcn.004c6150
add esp, 4
mov eax, edi
pop edi
pop ebp
add esp, 0x124
ret