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

Disassembly:
sub esp, 0x124
push ebp
push edi
mov edi, dword [esp + 0x130]
mov ebp, 0x70f0d4
mov dword [esp + 0x28], 0
mov dword [edi], ebp
mov eax, ebp
mov ecx, 1
lock xadd dword [eax], ecx
call fcn.0054cd80
test eax, eax
je 0x54ce6b
cmp dword [eax], 0
jne 0x54cf05
cmp dword [esp + 0x134], 0xb
ja case.0x54ce80.8
mov edx, dword [esp + 0x134]
jmp dword [edx*4 + 0x54d9a8]
mov eax, 0x68cb9c
jmp 0x54ced2
mov eax, 0x68cdac
jmp 0x54ced2
mov eax, 0x68cfbc
jmp 0x54ced2
mov eax, 0x68d1cc
jmp 0x54ced2
mov eax, 0x68d3dc
jmp 0x54ced2
mov eax, 0x68d5ec
jmp 0x54ced2
mov eax, 0x68d7fc
jmp 0x54ced2
mov eax, 0x68da0c
jmp 0x54ced2
mov eax, 0x68dc1c
jmp 0x54ced2
mov eax, 0x68de2c
jmp 0x54ced2
mov eax, 0x68e03c
push 0xffffffffffffffff
push eax
lea eax, [esp + 0x6c]
push eax
call fcn.00500b40
add esp, 0xc
push eax
mov ecx, edi
call fcn.004fc970
mov ecx, dword [esp + 0x64]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne case.0x54ce80.8
mov eax, dword [esp + 0x64]
push eax
jmp 0x54d7b4
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.0x54cf33
jmp dword [eax*4 + 0x54d9d8]
mov dword [esp + 0xd4], str.Prefix
lea edx, [esp + 0xd4]
jmp 0x54d130
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x10]
mov dword [esp + 0xa4], str.Documentation
call fcn.00501d30
lea ecx, [esp + 0xdc]
push ecx
mov dword [esp + 0xe0], 0x6cd5a8
lea ecx, [esp + 0x18]
jmp 0x54d135
lea edx, [esp + 0xa8]
push edx
lea ecx, [esp + 0x10]
mov dword [esp + 0xac], str.Headers
call fcn.00501d30
lea eax, [esp + 0x98]
mov dword [esp + 0x98], str.include
push eax
lea ecx, [esp + 0x18]
jmp 0x54d135
lea ecx, [esp + 0xb0]
push ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0xb4], str.Libraries
call fcn.00501d30
mov dword [esp + 0xcc], 0x68e2e8
lea edx, [esp + 0xcc]
lea ecx, [esp + 0x14]
jmp 0x54d134
lea eax, [esp + 0xb8]
push eax
lea ecx, [esp + 0x10]
mov dword [esp + 0xbc], str.Binaries
call fcn.00501d30
lea ecx, [esp + 0xd0]
push ecx
mov dword [esp + 0xd4], 0x6cc9c4
lea ecx, [esp + 0x18]
jmp 0x54d135
lea edx, [esp + 0xc0]
push edx
lea ecx, [esp + 0x10]
mov dword [esp + 0xc4], str.Plugins
call fcn.00501d30
lea eax, [esp + 0xd8]
mov dword [esp + 0xd8], str.plugins
push eax
lea ecx, [esp + 0x18]
jmp 0x54d135
lea ecx, [esp + 0xc8]
push ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0xcc], str.Imports
call fcn.00501d30
mov dword [esp + 0xe0], str.imports
lea edx, [esp + 0xe0]
lea ecx, [esp + 0x14]
jmp 0x54d134
lea eax, [esp + 0x9c]
mov dword [esp + 0x9c], 0x68e2b4
push eax
lea ecx, [esp + 0x10]
jmp 0x54d135
lea ecx, [esp + 0xa4]
push ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0xa8], str.Translations
call fcn.00501d30
mov dword [esp + 0xac], str.translations
lea edx, [esp + 0xac]
lea ecx, [esp + 0x14]
jmp 0x54d134
lea eax, [esp + 0xb4]
mov dword [esp + 0xb4], str.Settings
push eax
lea ecx, [esp + 0x10]
jmp 0x54d135
lea ecx, [esp + 0xbc]
push ecx
mov dword [esp + 0xc0], str.Examples
lea ecx, [esp + 0x10]
jmp 0x54d135
mov dword [esp + 0xc4], str.Demos
lea edx, [esp + 0xc4]
lea ecx, [esp + 0xc]
push edx
call fcn.00501d30
cmp dword [esp + 0xc], ebp
je 0x54d788
push ebx
push esi
call fcn.0054cd80
xor esi, esi
cmp eax, esi
je 0x54d155
mov ebx, dword [eax]
jmp 0x54d157
xor ebx, ebx
push 0xffffffffffffffff
push str.Paths
mov dword [esp + 0x48], ebx
call fcn.004ff3e0
mov dword [esp + 0x5c], eax
add esp, 8
lea eax, [esp + 0x54]
push eax
mov ecx, ebx
call fcn.00509ed0
mov ecx, dword [esp + 0x54]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x54d194
mov eax, dword [esp + 0x54]
push eax
call fcn.004ff160
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.005092d0
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 0x54d490
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.00505680
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
test eax, eax
jle 0x54d416
cmp eax, 4
jge 0x54d416
mov edx, dword [ecx]
or edi, 0xffffffff
or esi, edi
cmp edx, 1
je 0x54d251
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 4]
push ecx
lea ecx, [esp + 0x1c]
call fcn.004023e0
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.004ff5f0
cmp byte [esp + 0x13], 0
mov ebp, eax
je 0x54d828
test ebp, ebp
jl 0x54d828
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0xc]
sub edx, dword [eax + 8]
cmp edx, 2
jl 0x54d2cc
push 0xa
lea eax, [esp + 0x17]
push eax
push 1
lea ecx, [esp + 0x24]
call fcn.00402280
mov ecx, eax
call fcn.004ff5f0
cmp byte [esp + 0x13], 0
mov edi, eax
jne 0x54d2c5
lea ecx, [esp + 0x18]
call fcn.00401200
lea ecx, [esp + 0x20]
call fcn.00401110
jmp 0x54d465
test edi, edi
jge 0x54d2cc
or edi, 0xffffffff
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xc]
sub ecx, dword [eax + 8]
cmp ecx, 3
jl 0x54d304
push 0xa
lea edx, [esp + 0x17]
push edx
push 2
lea ecx, [esp + 0x24]
call fcn.00402280
mov ecx, eax
call fcn.004ff5f0
cmp byte [esp + 0x13], 0
mov esi, eax
je 0x54d2ae
test esi, esi
jge 0x54d304
or esi, 0xffffffff
cmp ebp, dword [esp + 0x90]
jl 0x54d3a3
cmp ebp, 4
jg 0x54d3a3
cmp edi, 0xffffffff
je 0x54d32a
cmp edi, dword [esp + 0x70]
jl 0x54d3a3
cmp edi, 8
jg 0x54d3a3
cmp esi, 0xffffffff
je 0x54d33d
cmp esi, dword [esp + 0x88]
jl 0x54d3a3
cmp esi, 6
jg 0x54d3a3
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.00536a00
mov ecx, dword [esp + 0x40]
or dword [esp + 0x30], 1
lea edx, [esp + 0x80]
push edx
call fcn.005081f0
test al, al
je 0x54d3a3
mov bl, 1
jmp 0x54d3a5
xor bl, bl
test byte [esp + 0x30], 1
je 0x54d3bd
and dword [esp + 0x30], 0xfffffffe
lea ecx, [esp + 0x80]
call fcn.00401110
test bl, bl
je 0x54d416
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.00506db0
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x38]
call fcn.004fc970
lea ecx, [esp + 0x68]
call fcn.00401110
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 0x54d44b
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.00402560
push esi
call fcn.005057e0
add esp, 4
mov ecx, dword [esp + 0x20]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x54d465
mov eax, dword [esp + 0x20]
push eax
call fcn.004ff160
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 0x54d1e0
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x138]
mov ebp, 0x70f0d4
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x54d4c1
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.00402560
push esi
call fcn.005057e0
add esp, 4
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x118]
call fcn.00511230
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.005003f0
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.00508280
mov ecx, eax
call fcn.00510650
push eax
mov ecx, edi
call fcn.004fc970
mov edx, dword [esp + 0x98]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x54d544
mov ecx, dword [esp + 0x98]
push ecx
call fcn.004ff160
add esp, 4
lea ecx, [esp + 0x124]
call fcn.0050f210
mov edx, dword [esp + 0x3c]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x54d56a
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.004ff160
add esp, 4
lea ecx, [esp + 0x114]
call fcn.0050f210
push 0xffffffffffffffff
push 0x68e26c
call fcn.004ff3e0
add esp, 8
push 0
push 1
lea edx, [esp + 0x4c]
push edx
lea ecx, [esp + 0x38]
mov dword [esp + 0x50], eax
call fcn.005338e0
mov eax, dword [esp + 0x44]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x54d5b5
mov edx, dword [esp + 0x44]
push edx
call fcn.004ff160
add esp, 4
push 1
lea ecx, [esp + 0x30]
call fcn.00528cb0
push 0
push 0
push edi
lea ecx, [esp + 0x38]
call fcn.00533ac0
mov esi, eax
cmp esi, 0xffffffff
je 0x54d6c5
lea esp, [esp]
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x30]
call fcn.00528cc0
sub eax, 3
push eax
lea ecx, [esi + 2]
push ecx
lea edx, [esp + 0x80]
push edx
mov ecx, edi
call fcn.005008c0
mov ecx, eax
call fcn.00500a80
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
push eax
lea ecx, [esp + 0x68]
push ecx
call fcn.004f8530
mov edx, dword [eax]
mov eax, dword [edx + 0xc]
push 0xffffffffffffffff
push eax
lea eax, [esp + 0x70]
push eax
call fcn.00500b40
add esp, 0x14
push eax
lea ecx, [esp + 0x30]
call fcn.00528cc0
push eax
push esi
mov ecx, edi
call fcn.00505010
mov ecx, dword [esp + 0x60]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x54d65e
mov eax, dword [esp + 0x60]
push eax
call fcn.004ff160
add esp, 4
mov ecx, dword [esp + 0x64]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x54d678
mov eax, dword [esp + 0x64]
push eax
call fcn.005057e0
add esp, 4
mov ecx, dword [esp + 0x5c]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x54d692
mov eax, dword [esp + 0x5c]
push eax
call fcn.005057e0
add esp, 4
mov ecx, dword [esp + 0x74]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x54d6ac
mov eax, dword [esp + 0x74]
push eax
call fcn.004ff160
add esp, 4
push 0
push 0
push edi
lea ecx, [esp + 0x38]
call fcn.00533ac0
mov esi, eax
cmp esi, 0xffffffff
jne 0x54d5e0
push 0xffffffffffffffff
push str.__EPOCROOT
call fcn.004ff3e0
add esp, 8
push 0
push 1
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esp + 0x5c]
mov dword [esp + 0x54], eax
call fcn.005338e0
mov edx, dword [esp + 0x48]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x54d704
mov ecx, dword [esp + 0x48]
push ecx
call fcn.004ff160
add esp, 4
push 0
push 0
push edi
lea ecx, [esp + 0x5c]
call fcn.00533ac0
mov esi, eax
cmp esi, 0xffffffff
je 0x54d753
lea edx, [esp + 0x7c]
push edx
call fcn.00574460
add esp, 4
push eax
lea ecx, [esp + 0x54]
call fcn.00528cc0
push eax
push esi
mov ecx, edi
call fcn.00505010
mov eax, dword [esp + 0x7c]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x54d753
mov edx, dword [esp + 0x7c]
push edx
call fcn.004ff160
add esp, 4
mov ecx, ebx
call fcn.0050ae20
lea ecx, [esp + 0x50]
call fcn.00533610
lea ecx, [esp + 0x2c]
call fcn.00533610
mov eax, dword [esp + 0x34]
pop esi
or ecx, 0xffffffff
pop ebx
lock xadd dword [eax], ecx
jne 0x54d788
mov edx, dword [esp + 0x2c]
push edx
call fcn.004ff160
add esp, 4
mov eax, dword [esp + 0x14]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x54d7a2
mov edx, dword [esp + 0x14]
push edx
call fcn.004ff160
add esp, 4
mov eax, dword [esp + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne case.0x54ce80.8
mov edx, dword [esp + 0xc]
push edx
call fcn.004ff160
add esp, 4
push edi
call fcn.00549370
add esp, 4
test al, al
je 0x54d99a
mov dword [esp + 0x20], ebp
mov eax, 1
lock xadd dword [ebp], eax
cmp dword [esp + 0x134], 0
jne 0x54d8ac
cmp dword [0x71714c], 0
je 0x54d878
lea ecx, [esp + 0x7c]
push ecx
call fcn.00520d60
add esp, 4
push eax
lea ecx, [esp + 0x24]
call fcn.004fc970
mov edx, dword [esp + 0x7c]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x54d8e8
mov ecx, dword [esp + 0x7c]
push ecx
jmp 0x54d8e0
mov ecx, dword [esp + 0x18]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x54d85d
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.00402560
push esi
call fcn.005057e0
add esp, 4
mov eax, dword [esp + 0x20]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x54d465
mov edx, dword [esp + 0x20]
push edx
jmp 0x54d45d
lea edx, [esp + 0x84]
push edx
call fcn.00549830
add esp, 4
push eax
lea ecx, [esp + 0x24]
call fcn.004fc970
mov eax, dword [esp + 0x84]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x54d8e8
mov edx, dword [esp + 0x84]
push edx
jmp 0x54d8e0
lea eax, [esp + 0x8c]
push 0
push eax
call fcn.0054ce30
add esp, 8
push eax
lea ecx, [esp + 0x24]
call fcn.004fc970
mov ecx, dword [esp + 0x8c]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x54d8e8
mov eax, dword [esp + 0x8c]
push eax
call fcn.004ff160
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.00536a00
lea edx, [esp + 0x50]
push edx
lea eax, [esp + 0x98]
push eax
call fcn.00549890
add esp, 8
push eax
mov ecx, edi
call fcn.004fc970
mov ecx, dword [esp + 0x94]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x54d966
mov eax, dword [esp + 0x94]
push eax
call fcn.004ff160
add esp, 4
mov ecx, dword [esp + 0x50]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x54d980
mov eax, dword [esp + 0x50]
push eax
call fcn.004ff160
add esp, 4
mov ecx, dword [esp + 0x20]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x54d99a
mov eax, dword [esp + 0x20]
push eax
call fcn.004ff160
add esp, 4
mov eax, edi
pop edi
pop ebp
add esp, 0x124
ret