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

Disassembly:
sub esp, 0x124
push ebp
push edi
mov edi, dword [esp + 0x130]
mov ebp, 0x6510b4
mov dword [esp + 0x28], 0
mov dword [edi], ebp
mov eax, ebp
mov ecx, 1
lock xadd dword [eax], ecx
call fcn.004cd530
test eax, eax
je 0x4cd61b
cmp dword [eax], 0
jne 0x4cd6b5
cmp dword [esp + 0x134], 0xb
ja case.0x4cd630.8
mov edx, dword [esp + 0x134]
jmp dword [edx*4 + 0x4ce158]
mov eax, 0x5f19fc
jmp 0x4cd682
mov eax, 0x5f1c0c
jmp 0x4cd682
mov eax, 0x5f1e1c
jmp 0x4cd682
mov eax, 0x5f202c
jmp 0x4cd682
mov eax, 0x5f223c
jmp 0x4cd682
mov eax, 0x5f244c
jmp 0x4cd682
mov eax, 0x5f265c
jmp 0x4cd682
mov eax, 0x5f286c
jmp 0x4cd682
mov eax, 0x5f2a7c
jmp 0x4cd682
mov eax, 0x5f2c8c
jmp 0x4cd682
mov eax, 0x5f2e9c
push 0xffffffffffffffff
push eax
lea eax, [esp + 0x6c]
push eax
call fcn.00481520
add esp, 0xc
push eax
mov ecx, edi
call fcn.0047fb70
mov ecx, dword [esp + 0x64]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne case.0x4cd630.8
mov eax, dword [esp + 0x64]
push eax
jmp 0x4cdf64
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.0x4cd6e3
jmp dword [eax*4 + 0x4ce188]
mov dword [esp + 0xd4], str.Prefix
lea edx, [esp + 0xd4]
jmp 0x4cd8e0
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x10]
mov dword [esp + 0xa4], str.Documentation
call fcn.00482770
lea ecx, [esp + 0xdc]
push ecx
mov dword [esp + 0xe0], 0x5f316c
lea ecx, [esp + 0x18]
jmp 0x4cd8e5
lea edx, [esp + 0xa8]
push edx
lea ecx, [esp + 0x10]
mov dword [esp + 0xac], str.Headers
call fcn.00482770
lea eax, [esp + 0x98]
mov dword [esp + 0x98], str.include
push eax
lea ecx, [esp + 0x18]
jmp 0x4cd8e5
lea ecx, [esp + 0xb0]
push ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0xb4], str.Libraries
call fcn.00482770
mov dword [esp + 0xcc], 0x5f314c
lea edx, [esp + 0xcc]
lea ecx, [esp + 0x14]
jmp 0x4cd8e4
lea eax, [esp + 0xb8]
push eax
lea ecx, [esp + 0x10]
mov dword [esp + 0xbc], str.Binaries
call fcn.00482770
lea ecx, [esp + 0xd0]
push ecx
mov dword [esp + 0xd4], 0x5f313c
lea ecx, [esp + 0x18]
jmp 0x4cd8e5
lea edx, [esp + 0xc0]
push edx
lea ecx, [esp + 0x10]
mov dword [esp + 0xc4], str.Plugins
call fcn.00482770
lea eax, [esp + 0xd8]
mov dword [esp + 0xd8], str.plugins
push eax
lea ecx, [esp + 0x18]
jmp 0x4cd8e5
lea ecx, [esp + 0xc8]
push ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0xcc], str.Imports
call fcn.00482770
mov dword [esp + 0xe0], str.imports
lea edx, [esp + 0xe0]
lea ecx, [esp + 0x14]
jmp 0x4cd8e4
lea eax, [esp + 0x9c]
mov dword [esp + 0x9c], str.Data
push eax
lea ecx, [esp + 0x10]
jmp 0x4cd8e5
lea ecx, [esp + 0xa4]
push ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0xa8], str.Translations
call fcn.00482770
mov dword [esp + 0xac], str.translations
lea edx, [esp + 0xac]
lea ecx, [esp + 0x14]
jmp 0x4cd8e4
lea eax, [esp + 0xb4]
mov dword [esp + 0xb4], str.Settings
push eax
lea ecx, [esp + 0x10]
jmp 0x4cd8e5
lea ecx, [esp + 0xbc]
push ecx
mov dword [esp + 0xc0], str.Examples
lea ecx, [esp + 0x10]
jmp 0x4cd8e5
mov dword [esp + 0xc4], str.Demos
lea edx, [esp + 0xc4]
lea ecx, [esp + 0xc]
push edx
call fcn.00482770
cmp dword [esp + 0xc], ebp
je 0x4cdf38
push ebx
push esi
call fcn.004cd530
xor esi, esi
cmp eax, esi
je 0x4cd905
mov ebx, dword [eax]
jmp 0x4cd907
xor ebx, ebx
push 0xffffffffffffffff
push str.Paths
mov dword [esp + 0x48], ebx
call fcn.0047fe20
mov dword [esp + 0x5c], eax
add esp, 8
lea eax, [esp + 0x54]
push eax
mov ecx, ebx
call fcn.0048a8a0
mov ecx, dword [esp + 0x54]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x4cd944
mov eax, dword [esp + 0x54]
push eax
call fcn.0047fb60
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.00489ca0
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 0x4cdc40
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.004860b0
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
test eax, eax
jle 0x4cdbc6
cmp eax, 4
jge 0x4cdbc6
mov edx, dword [ecx]
or edi, 0xffffffff
or esi, edi
cmp edx, 1
je 0x4cda01
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 4]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00402c80
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.00480030
cmp byte [esp + 0x13], 0
mov ebp, eax
je 0x4cdfd8
test ebp, ebp
jl 0x4cdfd8
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0xc]
sub edx, dword [eax + 8]
cmp edx, 2
jl 0x4cda7c
push 0xa
lea eax, [esp + 0x17]
push eax
push 1
lea ecx, [esp + 0x24]
call fcn.00402b20
mov ecx, eax
call fcn.00480030
cmp byte [esp + 0x13], 0
mov edi, eax
jne 0x4cda75
lea ecx, [esp + 0x18]
call fcn.00401340
lea ecx, [esp + 0x20]
call fcn.00497990
jmp 0x4cdc15
test edi, edi
jge 0x4cda7c
or edi, 0xffffffff
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xc]
sub ecx, dword [eax + 8]
cmp ecx, 3
jl 0x4cdab4
push 0xa
lea edx, [esp + 0x17]
push edx
push 2
lea ecx, [esp + 0x24]
call fcn.00402b20
mov ecx, eax
call fcn.00480030
cmp byte [esp + 0x13], 0
mov esi, eax
je 0x4cda5e
test esi, esi
jge 0x4cdab4
or esi, 0xffffffff
cmp ebp, dword [esp + 0x90]
jl 0x4cdb53
cmp ebp, 4
jg 0x4cdb53
cmp edi, 0xffffffff
je 0x4cdada
cmp edi, dword [esp + 0x70]
jl 0x4cdb53
cmp edi, 8
jg 0x4cdb53
cmp esi, 0xffffffff
je 0x4cdaed
cmp esi, dword [esp + 0x88]
jl 0x4cdb53
cmp esi, 6
jg 0x4cdb53
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.004b7230
mov ecx, dword [esp + 0x40]
or dword [esp + 0x30], 1
lea edx, [esp + 0x80]
push edx
call fcn.00488bc0
test al, al
je 0x4cdb53
mov bl, 1
jmp 0x4cdb55
xor bl, bl
test byte [esp + 0x30], 1
je 0x4cdb6d
and dword [esp + 0x30], 0xfffffffe
lea ecx, [esp + 0x80]
call fcn.00497990
test bl, bl
je 0x4cdbc6
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.004877f0
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x38]
call fcn.0047fb70
lea ecx, [esp + 0x68]
call fcn.00497990
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 0x4cdbfb
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.00402e00
push esi
call fcn.00486210
add esp, 4
mov ecx, dword [esp + 0x20]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x4cdc15
mov eax, dword [esp + 0x20]
push eax
call fcn.0047fb60
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 0x4cd990
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x138]
mov ebp, 0x6510b4
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x4cdc71
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.00402e00
push esi
call fcn.00486210
add esp, 4
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x118]
call fcn.00491c50
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.00480e30
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.00488c50
mov ecx, eax
call fcn.00491030
push eax
mov ecx, edi
call fcn.0047fb70
mov edx, dword [esp + 0x98]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x4cdcf4
mov ecx, dword [esp + 0x98]
push ecx
call fcn.0047fb60
add esp, 4
lea ecx, [esp + 0x124]
call fcn.0048fbf0
mov edx, dword [esp + 0x3c]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x4cdd1a
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.0047fb60
add esp, 4
lea ecx, [esp + 0x114]
call fcn.0048fbf0
push 0xffffffffffffffff
push str.__._
call fcn.0047fe20
add esp, 8
push 0
push 1
lea edx, [esp + 0x4c]
push edx
lea ecx, [esp + 0x38]
mov dword [esp + 0x50], eax
call fcn.004b4110
mov eax, dword [esp + 0x44]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x4cdd65
mov edx, dword [esp + 0x44]
push edx
call fcn.0047fb60
add esp, 4
push 1
lea ecx, [esp + 0x30]
call fcn.004a9470
push 0
push 0
push edi
lea ecx, [esp + 0x38]
call fcn.004b42f0
mov esi, eax
cmp esi, 0xffffffff
je 0x4cde75
lea esp, [esp]
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x30]
call fcn.004a9480
sub eax, 3
push eax
lea ecx, [esi + 2]
push ecx
lea edx, [esp + 0x80]
push edx
mov ecx, edi
call fcn.004812a0
mov ecx, eax
call fcn.00481460
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
push eax
lea ecx, [esp + 0x68]
push ecx
call fcn.00478e40
mov edx, dword [eax]
mov eax, dword [edx + 0xc]
push 0xffffffffffffffff
push eax
lea eax, [esp + 0x70]
push eax
call fcn.00481520
add esp, 0x14
push eax
lea ecx, [esp + 0x30]
call fcn.004a9480
push eax
push esi
mov ecx, edi
call fcn.00485a40
mov ecx, dword [esp + 0x60]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x4cde0e
mov eax, dword [esp + 0x60]
push eax
call fcn.0047fb60
add esp, 4
mov ecx, dword [esp + 0x64]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x4cde28
mov eax, dword [esp + 0x64]
push eax
call fcn.00486210
add esp, 4
mov ecx, dword [esp + 0x5c]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x4cde42
mov eax, dword [esp + 0x5c]
push eax
call fcn.00486210
add esp, 4
mov ecx, dword [esp + 0x74]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x4cde5c
mov eax, dword [esp + 0x74]
push eax
call fcn.0047fb60
add esp, 4
push 0
push 0
push edi
lea ecx, [esp + 0x38]
call fcn.004b42f0
mov esi, eax
cmp esi, 0xffffffff
jne 0x4cdd90
push 0xffffffffffffffff
push str.__EPOCROOT
call fcn.0047fe20
add esp, 8
push 0
push 1
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esp + 0x5c]
mov dword [esp + 0x54], eax
call fcn.004b4110
mov edx, dword [esp + 0x48]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x4cdeb4
mov ecx, dword [esp + 0x48]
push ecx
call fcn.0047fb60
add esp, 4
push 0
push 0
push edi
lea ecx, [esp + 0x5c]
call fcn.004b42f0
mov esi, eax
cmp esi, 0xffffffff
je 0x4cdf03
lea edx, [esp + 0x7c]
push edx
call fcn.004f4d80
add esp, 4
push eax
lea ecx, [esp + 0x54]
call fcn.004a9480
push eax
push esi
mov ecx, edi
call fcn.00485a40
mov eax, dword [esp + 0x7c]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x4cdf03
mov edx, dword [esp + 0x7c]
push edx
call fcn.0047fb60
add esp, 4
mov ecx, ebx
call fcn.0048b7f0
lea ecx, [esp + 0x50]
call fcn.004b3e40
lea ecx, [esp + 0x2c]
call fcn.004b3e40
mov eax, dword [esp + 0x34]
pop esi
or ecx, 0xffffffff
pop ebx
lock xadd dword [eax], ecx
jne 0x4cdf38
mov edx, dword [esp + 0x2c]
push edx
call fcn.0047fb60
add esp, 4
mov eax, dword [esp + 0x14]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x4cdf52
mov edx, dword [esp + 0x14]
push edx
call fcn.0047fb60
add esp, 4
mov eax, dword [esp + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne case.0x4cd630.8
mov edx, dword [esp + 0xc]
push edx
call fcn.0047fb60
add esp, 4
push edi
call fcn.004c9b00
add esp, 4
test al, al
je 0x4ce14a
mov dword [esp + 0x20], ebp
mov eax, 1
lock xadd dword [ebp], eax
cmp dword [esp + 0x134], 0
jne 0x4ce05c
cmp dword [0x65778c], 0
je 0x4ce028
lea ecx, [esp + 0x7c]
push ecx
call fcn.004a1680
add esp, 4
push eax
lea ecx, [esp + 0x24]
call fcn.0047fb70
mov edx, dword [esp + 0x7c]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x4ce098
mov ecx, dword [esp + 0x7c]
push ecx
jmp 0x4ce090
mov ecx, dword [esp + 0x18]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x4ce00d
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.00402e00
push esi
call fcn.00486210
add esp, 4
mov eax, dword [esp + 0x20]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x4cdc15
mov edx, dword [esp + 0x20]
push edx
jmp 0x4cdc0d
lea edx, [esp + 0x84]
push edx
call fcn.004c9fc0
add esp, 4
push eax
lea ecx, [esp + 0x24]
call fcn.0047fb70
mov eax, dword [esp + 0x84]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x4ce098
mov edx, dword [esp + 0x84]
push edx
jmp 0x4ce090
lea eax, [esp + 0x8c]
push 0
push eax
call fcn.004cd5e0
add esp, 8
push eax
lea ecx, [esp + 0x24]
call fcn.0047fb70
mov ecx, dword [esp + 0x8c]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x4ce098
mov eax, dword [esp + 0x8c]
push eax
call fcn.0047fb60
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.004b7230
lea edx, [esp + 0x50]
push edx
lea eax, [esp + 0x98]
push eax
call fcn.004ca020
add esp, 8
push eax
mov ecx, edi
call fcn.0047fb70
mov ecx, dword [esp + 0x94]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x4ce116
mov eax, dword [esp + 0x94]
push eax
call fcn.0047fb60
add esp, 4
mov ecx, dword [esp + 0x50]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x4ce130
mov eax, dword [esp + 0x50]
push eax
call fcn.0047fb60
add esp, 4
mov ecx, dword [esp + 0x20]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x4ce14a
mov eax, dword [esp + 0x20]
push eax
call fcn.0047fb60
add esp, 4
mov eax, edi
pop edi
pop ebp
add esp, 0x124
ret