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

Disassembly:
sub esp, 0x44
push ebx
mov ebx, dword [esp + 0x54]
push ebp
push esi
push edi
mov edi, dword [esp + 0x58]
mov eax, dword [edi + 0x160]
mov dword [esp + 0x2c], eax
cmp ebx, dword [edi + 0x90]
jne 0x104dc056
lea ecx, [edi + 0x120]
lea esi, [edi + 0x11c]
mov dword [esp + 0x20], ecx
jmp 0x104dc063
mov esi, dword [edi + 0x128]
lea eax, [esi + 4]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x18], esi
mov dword [esi], eax
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0x14]
mov ebp, dword [esp + 0x68]
push ecx
push ebp
push eax
push ebx
mov dword [esp + 0x24], eax
call dword [ebx + 4]
mov edx, dword [esp + 0x30]
mov ecx, eax
mov eax, dword [esp + 0x24]
add ecx, 5
add esp, 0x10
mov dword [edx], eax
cmp ecx, 0x12
ja case.default.0x104dc09f
jmp dword [ecx*4 + 0x104dc97b]
mov eax, dword [esp + 0x14]
sub eax, dword [ebx + 0x40]
push eax
mov eax, dword [esp + 0x68]
add eax, dword [ebx + 0x40]
push eax
push ebx
call dword [ebx + 0x2c]
add esp, 0xc
mov byte [esp + 0x60], al
test al, al
je 0x104dc0ff
mov eax, dword [edi + 0x3c]
test eax, eax
je 0x104dc0e0
lea ecx, [esp + 0x60]
push 1
push ecx
push dword [edi + 4]
call eax
add esp, 0xc
jmp 0x104dc16e
xor ecx, ecx
cmp dword [edi + 0x50], ecx
je 0x104dc16e
push dword [esp + 0x14]
push dword [esp + 0x68]
push ebx
push edi
call fcn.104e1681
add esp, 0x10
jmp 0x104dc16e
mov eax, dword [esp + 0x14]
sub eax, dword [ebx + 0x40]
mov esi, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x68]
add eax, dword [ebx + 0x40]
push eax
lea eax, [esi + 0x50]
push ebx
push eax
call fcn.104e1103
mov ebp, eax
add esp, 0x10
test ebp, ebp
je 0x104dc7e0
push 0
push ebp
push esi
push edi
call fcn.104e03f4
mov ecx, dword [esp + 0x3c]
add esp, 0x10
mov esi, eax
cmp byte [ecx + 0x81], 0
mov eax, dword [ecx + 0x60]
mov dword [ecx + 0x5c], eax
je 0x104dc1b4
cmp byte [ecx + 0x82], 0
jne 0x104dc1b4
test esi, esi
jne 0x104dc1c6
mov eax, dword [edi + 0x78]
test eax, eax
je 0x104dc19a
push esi
push ebp
push dword [edi + 4]
call eax
add esp, 0xc
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x64], eax
mov dword [esi], eax
mov eax, dword [edi + 0x1dc]
dec eax
sub eax, 1
je 0x104dc96e
sub eax, 1
jne 0x104dc06d
mov eax, dword [esp + 0x14]
jmp 0x104dc8cd
cmp dword [edi + 0x50], 0
je 0x104dc16a
push dword [esp + 0x14]
push dword [esp + 0x68]
push ebx
push edi
call fcn.104e1681
add esp, 0x10
jmp 0x104dc16a
test esi, esi
je 0x104dc7d4
cmp byte [esi + 0x22], 0
je 0x104dc7cd
cmp byte [esi + 0x20], 0
jne 0x104dc7c6
xor ecx, ecx
cmp dword [esi + 0x1c], ecx
jne 0x104dc7bf
cmp dword [esi + 4], ecx
je 0x104dc214
cmp byte [edi + 0x130], cl
jne 0x104dc1fc
mov eax, dword [edi + 0x78]
test eax, eax
je 0x104dc1f7
push ecx
push dword [esi]
jmp 0x104dc162
cmp dword [edi + 0x50], ecx
jmp 0x104dc19e
push ecx
push esi
push edi
call fcn.104e1156
add esp, 0xc
test eax, eax
jne 0x104dc971
jmp 0x104dc16a
cmp dword [edi + 0x70], ecx
je 0x104dc1f7
push edi
mov byte [esi + 0x20], 1
call fcn.104dfa7c
mov byte [esi + 0x20], 0
pop ecx
test eax, eax
je 0x104dc7e0
push dword [esi + 0x18]
push dword [esi + 0x10]
push dword [esi + 0x14]
push eax
push dword [edi + 0x74]
call dword [edi + 0x70]
add esp, 0x14
test eax, eax
je 0x104dc7b8
mov eax, dword [edi + 0x1ac]
mov dword [edi + 0x1a8], eax
jmp 0x104dc16a
mov esi, dword [edi + 0x16c]
test esi, esi
je 0x104dc270
mov eax, dword [esi]
mov dword [edi + 0x16c], eax
jmp 0x104dc297
push 0x30
call dword [edi + 0xc]
mov esi, eax
pop ecx
test esi, esi
je 0x104dc7e0
push 0x20
call dword [edi + 0xc]
mov dword [esi + 0x24], eax
pop ecx
test eax, eax
je 0x104dc7db
add eax, 0x20
mov dword [esi + 0x28], eax
xor ecx, ecx
lea eax, [esi + 0x2c]
mov dword [eax], ecx
mov dword [esp + 0x34], eax
mov eax, dword [edi + 0x168]
mov dword [esi], eax
mov dword [edi + 0x168], esi
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], ecx
mov eax, dword [esp + 0x64]
add eax, dword [ebx + 0x40]
push eax
push ebx
mov dword [esi + 4], eax
call dword [ebx + 0x1c]
mov dword [esi + 8], eax
inc dword [edi + 0x134]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
add ecx, eax
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x28]
dec eax
mov dword [esp + 0x30], ecx
push eax
lea eax, [esp + 0x28]
push eax
push ecx
lea eax, [esp + 0x38]
push eax
push ebx
call dword [ebx + 0x38]
mov edx, dword [esp + 0x38]
mov ebp, eax
mov ecx, dword [esi + 0x24]
add esp, 0x1c
mov eax, dword [esp + 0x28]
sub edx, ecx
mov dword [esp + 0x30], edx
cmp dword [esp + 0x24], eax
jae 0x104dc380
mov eax, ecx
cmp ebp, 1
je 0x104dc380
mov ebp, dword [esi + 0x28]
sub ebp, eax
add ebp, ebp
push ebp
push eax
call dword [edi + 0x10]
pop ecx
pop ecx
mov ecx, eax
test ecx, ecx
je 0x104dc7e0
lea eax, [ecx + ebp]
mov dword [esi + 0x24], ecx
mov dword [esi + 0x28], eax
mov eax, dword [esp + 0x30]
add eax, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x28]
dec eax
push eax
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x30]
lea eax, [esp + 0x30]
push eax
push ebx
call dword [ebx + 0x38]
mov ecx, dword [esi + 0x24]
add esp, 0x14
mov edx, dword [esp + 0x1c]
mov ebp, eax
mov edi, dword [esp + 0x28]
sub edx, ecx
cmp dword [esp + 0x24], edi
mov eax, ecx
mov edi, dword [esp + 0x58]
mov dword [esp + 0x30], edx
jb 0x104dc317
push dword [esp + 0x34]
mov dword [esi + 0x18], edx
add esi, 0xc
push esi
mov dword [esi], ecx
mov eax, dword [esp + 0x24]
mov byte [eax], 0
push dword [esp + 0x6c]
push ebx
push edi
call fcn.104e2090
add esp, 0x14
test eax, eax
jne 0x104dc971
mov eax, dword [edi + 0x34]
test eax, eax
je 0x104dc3c3
push dword [edi + 0x184]
push dword [esi]
push dword [edi + 4]
call eax
add esp, 0xc
jmp 0x104dc3db
cmp dword [edi + 0x50], 0
je 0x104dc3db
push dword [esp + 0x14]
push dword [esp + 0x68]
push ebx
push edi
call fcn.104e1681
add esp, 0x10
lea eax, [edi + 0x19c]
push eax
call fcn.104e0dfa
pop ecx
jmp 0x104dc16a
mov esi, dword [ebx + 0x40]
add esi, dword [esp + 0x64]
and dword [esp + 0x28], 0
push esi
push ebx
mov byte [esp + 0x1b], 1
call dword [ebx + 0x1c]
add eax, esi
push eax
push esi
lea eax, [edi + 0x19c]
push ebx
push eax
call fcn.104e1103
add esp, 0x18
mov dword [esp + 0x3c], eax
test eax, eax
je 0x104dc7e0
mov eax, dword [edi + 0x1a8]
mov dword [edi + 0x1ac], eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x40]
push eax
push dword [esp + 0x6c]
push ebx
push edi
call fcn.104e2090
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x104dc7ff
mov eax, dword [edi + 0x1a8]
mov dword [edi + 0x1ac], eax
mov eax, dword [edi + 0x34]
test eax, eax
je 0x104dc47a
push dword [edi + 0x184]
push dword [esp + 0x40]
push dword [edi + 4]
call eax
add esp, 0xc
xor cl, cl
jmp 0x104dc47e
mov cl, byte [esp + 0x13]
mov eax, dword [edi + 0x38]
test eax, eax
je 0x104dc4a7
cmp dword [edi + 0x34], 0
je 0x104dc49a
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [ecx], eax
mov eax, dword [edi + 0x38]
push dword [esp + 0x3c]
push dword [edi + 4]
call eax
pop ecx
pop ecx
xor cl, cl
test cl, cl
je 0x104dc4c3
cmp dword [edi + 0x50], 0
je 0x104dc4c3
push dword [esp + 0x14]
push dword [esp + 0x68]
push ebx
push edi
call fcn.104e1681
add esp, 0x10
lea eax, [edi + 0x19c]
push eax
call fcn.104e0dfa
push dword [esp + 0x2c]
push edi
call fcn.104df7b4
add esp, 0xc
cmp dword [edi + 0x134], 0
jne 0x104dc16a
mov eax, dword [edi + 0x1dc]
cmp eax, 2
je 0x104dc16a
cmp eax, 3
jne 0x104dc7e8
mov dword [edi + 0x114], fcn.104df293
jmp 0x104dc16a
mov eax, dword [esp + 0x5c]
cmp dword [edi + 0x134], eax
je 0x104dc899
mov esi, dword [edi + 0x168]
mov eax, dword [esi]
mov dword [edi + 0x168], eax
mov eax, dword [edi + 0x16c]
mov dword [esi], eax
mov eax, dword [esp + 0x64]
mov dword [edi + 0x16c], esi
mov ecx, dword [ebx + 0x40]
lea ebp, [eax + ecx*2]
push ebp
push ebx
call dword [ebx + 0x1c]
pop ecx
pop ecx
cmp eax, dword [esi + 8]
jne 0x104dc812
push eax
push ebp
push dword [esi + 4]
call fcn.10008be3
add esp, 0xc
test eax, eax
jne 0x104dc812
dec dword [edi + 0x134]
cmp dword [edi + 0x38], eax
je 0x104dc5cb
cmp byte [edi + 0xe8], al
je 0x104dc5be
mov eax, dword [esi + 0x10]
test eax, eax
je 0x104dc5be
mov ecx, dword [esi + 0x1c]
add ecx, dword [esi + 0xc]
jmp 0x104dc591
mov byte [ecx], dl
inc ecx
inc eax
mov dl, byte [eax]
test dl, dl
jne 0x104dc58d
cmp byte [edi + 0xe9], dl
je 0x104dc5bb
mov edx, dword [esi + 0x14]
test edx, edx
je 0x104dc5bb
mov al, byte [edi + 0x1d4]
mov byte [ecx], al
inc ecx
jmp 0x104dc5b5
mov byte [ecx], al
inc ecx
inc edx
mov al, byte [edx]
test al, al
jne 0x104dc5b1
mov byte [ecx], 0
push dword [esi + 0xc]
push dword [edi + 4]
call dword [edi + 0x38]
pop ecx
pop ecx
jmp 0x104dc61b
cmp dword [edi + 0x50], 0
je 0x104dc61b
push dword [esp + 0x14]
push dword [esp + 0x68]
push ebx
push edi
call fcn.104e1681
add esp, 0x10
jmp 0x104dc61b
mov ecx, dword [edi + 0x68]
mov eax, ebp
test ecx, ecx
je 0x104dc5fd
mov eax, dword [ebp]
push dword [eax]
push dword [edi + 4]
call ecx
mov eax, dword [esi + 0x2c]
pop ecx
pop ecx
mov eax, dword [eax + 4]
mov dword [esi + 0x2c], eax
mov eax, dword [edi + 0x174]
mov dword [ebp + 4], eax
mov dword [edi + 0x174], ebp
mov ecx, dword [ebp]
mov eax, dword [ebp + 8]
mov dword [ecx + 4], eax
mov ebp, dword [esi + 0x2c]
test ebp, ebp
jne 0x104dc5e5
cmp dword [edi + 0x134], ebp
jne 0x104dc16a
mov eax, dword [edi + 0x1dc]
cmp eax, 2
je 0x104dc16a
cmp eax, 3
je 0x104dc501
push dword [esp + 0x6c]
push dword [esp + 0x6c]
jmp 0x104dc7ed
push dword [esp + 0x64]
push ebx
call dword [ebx + 0x28]
pop ecx
pop ecx
test eax, eax
js 0x104dc81f
xor ecx, ecx
cmp dword [edi + 0x3c], ecx
je 0x104dc0e2
lea ecx, [esp + 0x38]
push ecx
push eax
call fcn.1000850d
push eax
lea eax, [esp + 0x44]
push eax
push dword [edi + 4]
call dword [edi + 0x3c]
add esp, 0x14
jmp 0x104dc16e
mov eax, dword [edi + 0x3c]
test eax, eax
je case.default.0x104dc09f
mov byte [esp + 0x13], 0xa
lea ecx, [esp + 0x13]
jmp 0x104dc0d0
cmp dword [edi + 0x50], 0
jmp 0x104dc0e5
mov eax, dword [edi + 0x48]
test eax, eax
je 0x104dc6bc
push dword [edi + 4]
call eax
pop ecx
jmp 0x104dc6d4
cmp dword [edi + 0x50], 0
je 0x104dc6d4
push dword [esp + 0x14]
push dword [esp + 0x68]
push ebx
push edi
call fcn.104e1681
add esp, 0x10
push dword [esp + 0x70]
lea eax, [esp + 0x18]
push dword [esp + 0x70]
push ebp
push eax
push ebx
push edi
call fcn.104dbd55
add esp, 0x18
test eax, eax
jne 0x104dc971
cmp dword [esp + 0x14], eax
jne 0x104dc16e
mov dword [edi + 0x114], 0x104db975
jmp 0x104dc87b
mov esi, dword [edi + 0x3c]
test esi, esi
je 0x104dc19a
cmp byte [ebx + 0x44], 0
je 0x104dc748
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x64]
push eax
push dword [esp + 0x68]
push dword [edi + 4]
call esi
jmp 0x104dc167
cmp ebp, 1
je 0x104dc16a
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x64]
mov dword [ecx], eax
push dword [edi + 0x30]
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x28]
push eax
push dword [esp + 0x1c]
lea eax, [esp + 0x70]
push eax
push ebx
call dword [ebx + 0x38]
mov ecx, dword [esp + 0x34]
mov ebp, eax
mov eax, dword [esp + 0x78]
mov dword [ecx], eax
mov eax, dword [esp + 0x38]
sub eax, dword [edi + 0x2c]
push eax
push dword [edi + 0x2c]
push dword [edi + 4]
call esi
add esp, 0x20
test ebp, ebp
jne 0x104dc735
jmp 0x104dc16a
push dword [esp + 0x14]
push dword [esp + 0x68]
push ebx
push edi
call fcn.104e174b
add esp, 0x10
test eax, eax
je 0x104dc7e0
jmp 0x104dc16e
push dword [esp + 0x14]
push dword [esp + 0x68]
push ebx
push edi
call fcn.104e15ee
jmp 0x104dc79b
push 0x15
jmp 0x104dc970
push 0xf
jmp 0x104dc970
push 0xc
jmp 0x104dc970
push 0x18
jmp 0x104dc970
push 0xb
jmp 0x104dc970
push esi
call dword [edi + 0x14]
pop ecx
xor eax, eax
inc eax
jmp 0x104dc971
push dword [esp + 0x6c]
push ebp
push dword [esp + 0x1c]
push edi
call fcn.104df293
add esp, 0x10
jmp 0x104dc971
push dword [esp + 0x28]
push edi
call fcn.104df7b4
pop ecx
pop ecx
mov eax, esi
jmp 0x104dc971
mov eax, dword [esp + 0x18]
push 7
mov dword [eax], ebp
jmp 0x104dc970
push 0xe
jmp 0x104dc970
cmp byte [esp + 0x70], 0
jne 0x104dc8c9
mov dword [edx], ebp
mov eax, dword [edi + 0x3c]
test eax, eax
je 0x104dc850
push 1
lea ecx, [esp + 0x5c]
mov byte [esp + 0x5c], 0xa
push ecx
push dword [edi + 4]
call eax
add esp, 0xc
jmp 0x104dc865
cmp dword [edi + 0x50], 0
je 0x104dc865
push ebp
push dword [esp + 0x68]
push ebx
push edi
call fcn.104e1681
add esp, 0x10
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x104dc8a0
cmp dword [edi + 0x134], eax
jne 0x104dc899
mov eax, dword [esp + 0x6c]
mov dword [eax], ebp
xor eax, eax
jmp 0x104dc971
cmp byte [esp + 0x70], 0
jne 0x104dc8c9
mov eax, dword [esp + 0x5c]
test eax, eax
jle 0x104dc8a0
cmp dword [edi + 0x134], eax
je 0x104dc8c9
push 0xd
jmp 0x104dc970
push 3
jmp 0x104dc970
mov eax, dword [esp + 0x14]
mov dword [esi], eax
push 4
jmp 0x104dc970
cmp byte [esp + 0x70], 0
jne 0x104dc8c9
push 5
jmp 0x104dc970
cmp byte [esp + 0x70], 0
je 0x104dc8d5
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x6c]
mov dword [ecx], eax
jmp 0x104dc87b
push 6
jmp 0x104dc970
push 0x11
jmp 0x104dc970
cmp byte [esp + 0x70], 0
jne 0x104dc8c9
mov ecx, dword [edi + 0x3c]
test ecx, ecx
je 0x104dc93b
cmp byte [ebx + 0x44], 0
jne 0x104dc926
push dword [edi + 0x30]
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x5c]
push eax
push ebp
lea eax, [esp + 0x70]
push eax
push ebx
call dword [ebx + 0x38]
mov eax, dword [esp + 0x6c]
sub eax, dword [edi + 0x2c]
push eax
push dword [edi + 0x2c]
push dword [edi + 4]
call dword [edi + 0x3c]
add esp, 0x20
jmp 0x104dc950
mov eax, ebp
sub eax, dword [esp + 0x64]
push eax
push dword [esp + 0x68]
push dword [edi + 4]
call ecx
add esp, 0xc
jmp 0x104dc950
cmp dword [edi + 0x50], 0
je 0x104dc950
push ebp
push dword [esp + 0x68]
push ebx
push edi
call fcn.104e1681
add esp, 0x10
mov eax, dword [esp + 0x5c]
test eax, eax
jne 0x104dc95c
push 3
jmp 0x104dc96a
cmp dword [edi + 0x134], eax
je 0x104dc875
push 0xd
mov dword [esi], ebp
jmp 0x104dc970
push 0x23
pop eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret