Function at 0x50bae0
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.0050ba30
test eax, eax
je 0x50bb1b
cmp dword [eax], 0
jne 0x50bbb5
cmp dword [esp + 0x134], 0xb
ja case.0x50bb30.8
mov edx, dword [esp + 0x134]
jmp dword [edx*4 + 0x50c658]
mov eax, 0x63ab1c
jmp 0x50bb82
mov eax, 0x63ad2c
jmp 0x50bb82
mov eax, 0x63af3c
jmp 0x50bb82
mov eax, 0x63b14c
jmp 0x50bb82
mov eax, 0x63b35c
jmp 0x50bb82
mov eax, 0x63b56c
jmp 0x50bb82
mov eax, 0x63b77c
jmp 0x50bb82
mov eax, 0x63b98c
jmp 0x50bb82
mov eax, 0x63bb9c
jmp 0x50bb82
mov eax, 0x63bdac
jmp 0x50bb82
mov eax, 0x63bfbc
push 0xffffffffffffffff
push eax
lea eax, [esp + 0x6c]
push eax
call fcn.004bf8e0
add esp, 0xc
push eax
mov ecx, edi
call fcn.004bb760
mov ecx, dword [esp + 0x64]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne case.0x50bb30.8
mov eax, dword [esp + 0x64]
push eax
jmp 0x50c464
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.0x50bbe3
jmp dword [eax*4 + 0x50c688]
mov dword [esp + 0xd4], str.Prefix
lea edx, [esp + 0xd4]
jmp 0x50bde0
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x10]
mov dword [esp + 0xa4], str.Documentation
call fcn.004c0b30
lea ecx, [esp + 0xdc]
push ecx
mov dword [esp + 0xe0], 0x63c298
lea ecx, [esp + 0x18]
jmp 0x50bde5
lea edx, [esp + 0xa8]
push edx
lea ecx, [esp + 0x10]
mov dword [esp + 0xac], str.Headers
call fcn.004c0b30
lea eax, [esp + 0x98]
mov dword [esp + 0x98], str.include
push eax
lea ecx, [esp + 0x18]
jmp 0x50bde5
lea ecx, [esp + 0xb0]
push ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0xb4], str.Libraries
call fcn.004c0b30
mov dword [esp + 0xcc], 0x63c278
lea edx, [esp + 0xcc]
lea ecx, [esp + 0x14]
jmp 0x50bde4
lea eax, [esp + 0xb8]
push eax
lea ecx, [esp + 0x10]
mov dword [esp + 0xbc], str.Binaries
call fcn.004c0b30
lea ecx, [esp + 0xd0]
push ecx
mov dword [esp + 0xd4], 0x63c268
lea ecx, [esp + 0x18]
jmp 0x50bde5
lea edx, [esp + 0xc0]
push edx
lea ecx, [esp + 0x10]
mov dword [esp + 0xc4], str.Plugins
call fcn.004c0b30
lea eax, [esp + 0xd8]
mov dword [esp + 0xd8], str.plugins
push eax
lea ecx, [esp + 0x18]
jmp 0x50bde5
lea ecx, [esp + 0xc8]
push ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0xcc], str.Imports
call fcn.004c0b30
mov dword [esp + 0xe0], str.imports
lea edx, [esp + 0xe0]
lea ecx, [esp + 0x14]
jmp 0x50bde4
lea eax, [esp + 0x9c]
mov dword [esp + 0x9c], 0x63c240
push eax
lea ecx, [esp + 0x10]
jmp 0x50bde5
lea ecx, [esp + 0xa4]
push ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0xa8], str.Translations
call fcn.004c0b30
mov dword [esp + 0xac], str.translations
lea edx, [esp + 0xac]
lea ecx, [esp + 0x14]
jmp 0x50bde4
lea eax, [esp + 0xb4]
mov dword [esp + 0xb4], 0x63c214
push eax
lea ecx, [esp + 0x10]
jmp 0x50bde5
lea ecx, [esp + 0xbc]
push ecx
mov dword [esp + 0xc0], str.Examples
lea ecx, [esp + 0x10]
jmp 0x50bde5
mov dword [esp + 0xc4], str.Demos
lea edx, [esp + 0xc4]
lea ecx, [esp + 0xc]
push edx
call fcn.004c0b30
cmp dword [esp + 0xc], ebp
je 0x50c438
push ebx
push esi
call fcn.0050ba30
xor esi, esi
cmp eax, esi
je 0x50be05
mov ebx, dword [eax]
jmp 0x50be07
xor ebx, ebx
push 0xffffffffffffffff
push str.Paths
mov dword [esp + 0x48], ebx
call fcn.004be1d0
mov dword [esp + 0x5c], eax
add esp, 8
lea eax, [esp + 0x54]
push eax
mov ecx, ebx
call fcn.004c8cc0
mov ecx, dword [esp + 0x54]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x50be44
mov eax, dword [esp + 0x54]
push eax
call fcn.004bdf50
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.004c80c0
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 0x50c140
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.004c4470
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
test eax, eax
jle 0x50c0c6
cmp eax, 4
jge 0x50c0c6
mov edx, dword [ecx]
or edi, 0xffffffff
or esi, edi
cmp edx, 1
je 0x50bf01
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 4]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00401e73
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.004be3e0
cmp byte [esp + 0x13], 0
mov ebp, eax
je 0x50c4d8
test ebp, ebp
jl 0x50c4d8
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0xc]
sub edx, dword [eax + 8]
cmp edx, 2
jl 0x50bf7c
push 0xa
lea eax, [esp + 0x17]
push eax
push 1
lea ecx, [esp + 0x24]
call fcn.00401d46
mov ecx, eax
call fcn.004be3e0
cmp byte [esp + 0x13], 0
mov edi, eax
jne 0x50bf75
lea ecx, [esp + 0x18]
call fcn.00401113
lea ecx, [esp + 0x20]
call fcn.004010b0
jmp 0x50c115
test edi, edi
jge 0x50bf7c
or edi, 0xffffffff
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xc]
sub ecx, dword [eax + 8]
cmp ecx, 3
jl 0x50bfb4
push 0xa
lea edx, [esp + 0x17]
push edx
push 2
lea ecx, [esp + 0x24]
call fcn.00401d46
mov ecx, eax
call fcn.004be3e0
cmp byte [esp + 0x13], 0
mov esi, eax
je 0x50bf5e
test esi, esi
jge 0x50bfb4
or esi, 0xffffffff
cmp ebp, dword [esp + 0x90]
jl 0x50c053
cmp ebp, 4
jg 0x50c053
cmp edi, 0xffffffff
je 0x50bfda
cmp edi, dword [esp + 0x70]
jl 0x50c053
cmp edi, 8
jg 0x50c053
cmp esi, 0xffffffff
je 0x50bfed
cmp esi, dword [esp + 0x88]
jl 0x50c053
cmp esi, 6
jg 0x50c053
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.004f5710
mov ecx, dword [esp + 0x40]
or dword [esp + 0x30], 1
lea edx, [esp + 0x80]
push edx
call fcn.004c7000
test al, al
je 0x50c053
mov bl, 1
jmp 0x50c055
xor bl, bl
test byte [esp + 0x30], 1
je 0x50c06d
and dword [esp + 0x30], 0xfffffffe
lea ecx, [esp + 0x80]
call fcn.004010b0
test bl, bl
je 0x50c0c6
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.004c5b70
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x38]
call fcn.004bb760
lea ecx, [esp + 0x68]
call fcn.004010b0
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 0x50c0fb
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.00401f5b
push esi
call fcn.004c45d0
add esp, 4
mov ecx, dword [esp + 0x20]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x50c115
mov eax, dword [esp + 0x20]
push eax
call fcn.004bdf50
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 0x50be90
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x138]
mov ebp, 0x6c30d4
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x50c171
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.00401f5b
push esi
call fcn.004c45d0
add esp, 4
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x118]
call fcn.004d00d0
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.004bf1f0
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.004c7090
mov ecx, eax
call fcn.004cf4b0
push eax
mov ecx, edi
call fcn.004bb760
mov edx, dword [esp + 0x98]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x50c1f4
mov ecx, dword [esp + 0x98]
push ecx
call fcn.004bdf50
add esp, 4
lea ecx, [esp + 0x124]
call fcn.004ce000
mov edx, dword [esp + 0x3c]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x50c21a
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.004bdf50
add esp, 4
lea ecx, [esp + 0x114]
call fcn.004ce000
push 0xffffffffffffffff
push 0x63c1ec
call fcn.004be1d0
add esp, 8
push 0
push 1
lea edx, [esp + 0x4c]
push edx
lea ecx, [esp + 0x38]
mov dword [esp + 0x50], eax
call fcn.004f25f0
mov eax, dword [esp + 0x44]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x50c265
mov edx, dword [esp + 0x44]
push edx
call fcn.004bdf50
add esp, 4
push 1
lea ecx, [esp + 0x30]
call fcn.004e7a20
push 0
push 0
push edi
lea ecx, [esp + 0x38]
call fcn.004f27d0
mov esi, eax
cmp esi, 0xffffffff
je 0x50c375
lea esp, [esp]
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x30]
call fcn.004e7a30
sub eax, 3
push eax
lea ecx, [esi + 2]
push ecx
lea edx, [esp + 0x80]
push edx
mov ecx, edi
call fcn.004bf660
mov ecx, eax
call fcn.004bf820
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
push eax
lea ecx, [esp + 0x68]
push ecx
call fcn.004b7350
mov edx, dword [eax]
mov eax, dword [edx + 0xc]
push 0xffffffffffffffff
push eax
lea eax, [esp + 0x70]
push eax
call fcn.004bf8e0
add esp, 0x14
push eax
lea ecx, [esp + 0x30]
call fcn.004e7a30
push eax
push esi
mov ecx, edi
call fcn.004c3e00
mov ecx, dword [esp + 0x60]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x50c30e
mov eax, dword [esp + 0x60]
push eax
call fcn.004bdf50
add esp, 4
mov ecx, dword [esp + 0x64]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x50c328
mov eax, dword [esp + 0x64]
push eax
call fcn.004c45d0
add esp, 4
mov ecx, dword [esp + 0x5c]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x50c342
mov eax, dword [esp + 0x5c]
push eax
call fcn.004c45d0
add esp, 4
mov ecx, dword [esp + 0x74]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x50c35c
mov eax, dword [esp + 0x74]
push eax
call fcn.004bdf50
add esp, 4
push 0
push 0
push edi
lea ecx, [esp + 0x38]
call fcn.004f27d0
mov esi, eax
cmp esi, 0xffffffff
jne 0x50c290
push 0xffffffffffffffff
push str.__EPOCROOT
call fcn.004be1d0
add esp, 8
push 0
push 1
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esp + 0x5c]
mov dword [esp + 0x54], eax
call fcn.004f25f0
mov edx, dword [esp + 0x48]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x50c3b4
mov ecx, dword [esp + 0x48]
push ecx
call fcn.004bdf50
add esp, 4
push 0
push 0
push edi
lea ecx, [esp + 0x5c]
call fcn.004f27d0
mov esi, eax
cmp esi, 0xffffffff
je 0x50c403
lea edx, [esp + 0x7c]
push edx
call fcn.005332e0
add esp, 4
push eax
lea ecx, [esp + 0x54]
call fcn.004e7a30
push eax
push esi
mov ecx, edi
call fcn.004c3e00
mov eax, dword [esp + 0x7c]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x50c403
mov edx, dword [esp + 0x7c]
push edx
call fcn.004bdf50
add esp, 4
mov ecx, ebx
call fcn.004c9c10
lea ecx, [esp + 0x50]
call fcn.004f2320
lea ecx, [esp + 0x2c]
call fcn.004f2320
mov eax, dword [esp + 0x34]
pop esi
or ecx, 0xffffffff
pop ebx
lock xadd dword [eax], ecx
jne 0x50c438
mov edx, dword [esp + 0x2c]
push edx
call fcn.004bdf50
add esp, 4
mov eax, dword [esp + 0x14]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x50c452
mov edx, dword [esp + 0x14]
push edx
call fcn.004bdf50
add esp, 4
mov eax, dword [esp + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne case.0x50bb30.8
mov edx, dword [esp + 0xc]
push edx
call fcn.004bdf50
add esp, 4
push edi
call fcn.00507fa0
add esp, 4
test al, al
je 0x50c64a
mov dword [esp + 0x20], ebp
mov eax, 1
lock xadd dword [ebp], eax
cmp dword [esp + 0x134], 0
jne 0x50c55c
cmp dword [0x6cb36c], 0
je 0x50c528
lea ecx, [esp + 0x7c]
push ecx
call fcn.004dfbd0
add esp, 4
push eax
lea ecx, [esp + 0x24]
call fcn.004bb760
mov edx, dword [esp + 0x7c]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x50c598
mov ecx, dword [esp + 0x7c]
push ecx
jmp 0x50c590
mov ecx, dword [esp + 0x18]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x50c50d
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.00401f5b
push esi
call fcn.004c45d0
add esp, 4
mov eax, dword [esp + 0x20]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x50c115
mov edx, dword [esp + 0x20]
push edx
jmp 0x50c10d
lea edx, [esp + 0x84]
push edx
call fcn.00508460
add esp, 4
push eax
lea ecx, [esp + 0x24]
call fcn.004bb760
mov eax, dword [esp + 0x84]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x50c598
mov edx, dword [esp + 0x84]
push edx
jmp 0x50c590
lea eax, [esp + 0x8c]
push 0
push eax
call fcn.0050bae0
add esp, 8
push eax
lea ecx, [esp + 0x24]
call fcn.004bb760
mov ecx, dword [esp + 0x8c]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x50c598
mov eax, dword [esp + 0x8c]
push eax
call fcn.004bdf50
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.004f5710
lea edx, [esp + 0x50]
push edx
lea eax, [esp + 0x98]
push eax
call fcn.005084c0
add esp, 8
push eax
mov ecx, edi
call fcn.004bb760
mov ecx, dword [esp + 0x94]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x50c616
mov eax, dword [esp + 0x94]
push eax
call fcn.004bdf50
add esp, 4
mov ecx, dword [esp + 0x50]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x50c630
mov eax, dword [esp + 0x50]
push eax
call fcn.004bdf50
add esp, 4
mov ecx, dword [esp + 0x20]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x50c64a
mov eax, dword [esp + 0x20]
push eax
call fcn.004bdf50
add esp, 4
mov eax, edi
pop edi
pop ebp
add esp, 0x124
ret