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

Disassembly:
sub esp, 0xd0
mov eax, dword [0x613ad0]
xor eax, esp
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0xd4]
push ebx
mov ebx, dword [esp + 0xf0]
push ebp
mov ebp, dword [esp + 0xf8]
push esi
push edi
mov edi, dword [esp + 0xf8]
push eax
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x20], 0
call fcn.004df880
mov esi, eax
add esp, 4
test esi, esi
jne 0x4c3b0e
xor eax, eax
jmp 0x4c421b
cmp dword [esi + 0x14], 0
je 0x4c3b07
test edi, edi
mov eax, 0x5da43c
jne 0x4c3b21
mov dword [esp + 0x34], eax
test ebx, ebx
jne 0x4c3b29
mov dword [esp + 0x38], eax
test ebp, ebp
jne 0x4c3b31
mov dword [esp + 0x14], eax
mov eax, 0xa
cmp dword [esp + 0xf0], eax
jle 0x4c3b46
mov dword [esp + 0xf0], eax
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x2c]
push ecx
push esi
call fcn.004c0980
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x34]
add esp, 0xc
cmp dword [esi + 0x39b0], 0
jne 0x4c3b7b
push 0x50
push 0
push ebp
push 0
push edi
push esi
call fcn.004fa650
add esp, 0x18
cmp edi, ebp
mov ebx, edi
mov dword [esp + 0x20], edi
jg 0x4c41e0
lea esp, [esp]
push ebx
push esi
call fcn.004f5090
add esp, 8
test eax, eax
je 0x4c41d1
cmp dword [esi + 0x39b0], 0
je 0x4c3bd8
mov edx, dword [esi + 0x39a4]
mov eax, dword [esi + 0x3894]
imul edx, edx, 0x10c
mov ebx, dword [eax + edx + 0x78]
mov ecx, dword [eax + edx + 0x80]
add eax, edx
mov edx, dword [eax + 0x84]
mov eax, dword [eax + 0xb0]
jmp 0x4c3c01
mov ecx, dword [esi + 0x138]
mov edx, dword [ecx + ebx*4]
mov eax, dword [edx + 0x14]
mov ecx, dword [esi + 0x2b38]
imul eax, eax, 0x58
mov edx, dword [eax + ecx + 0x18]
mov ebx, dword [eax + ecx + 0xc]
add eax, ecx
mov ecx, dword [eax + 0x14]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x24], edx
cmp dword [esp + 0xf0], 0
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], ebx
jge 0x4c3c45
test dl, 8
je 0x4c3c30
mov ebp, dword [esi + 0x2b50]
mov edi, eax
shl edi, 4
sub edi, eax
mov edi, dword [ebp + edi*4 + 0x30]
mov dword [esp + 0xf0], edi
cmp dword [esp + 0xf0], 0
jge 0x4c3c45
mov dword [esp + 0xf0], 0
xor edi, edi
cmp dword [esp + 0xe8], edi
je 0x4c40d0
mov ecx, dword [esp + 0x1c]
or edx, 8
cmp ecx, edi
mov dword [esp + 0x24], edx
jne 0x4c40ca
mov ecx, eax
shl ecx, 4
sub ecx, eax
mov eax, dword [esi + 0x2b50]
add ecx, ecx
add ecx, ecx
mov eax, dword [ecx + eax + 0x2c]
xor ebx, ebx
xor ebp, ebp
test eax, eax
mov dword [esp + 0x30], ebp
mov dword [esp + 0x10], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x40], ecx
jle 0x4c3cb1
mov edx, dword [esi + 0x2b68]
mov ebp, eax
mov ecx, ebp
shl ecx, 4
sub ecx, ebp
mov ebx, dword [edx + ecx*4 + 4]
mov dword [esp + 0x30], ebp
mov dword [esp + 0x10], ebx
test eax, eax
je 0x4c3cd6
mov ecx, dword [esi + 0x2b68]
mov eax, ebp
shl eax, 4
sub eax, ebp
cmp dword [ecx + eax*4], 0
je 0x4c3cd6
mov eax, dword [esi + 0x2b5c]
lea edx, [ebx + ebx*8]
cmp dword [eax + edx*8 + 0x10], 9
je 0x4c3d32
lea ecx, [esp + 0x78]
push ecx
push str.List
push esi
call fcn.004bfd40
mov eax, dword [esi + 0x39c]
add esp, 0xc
push 0
push 1
lea edx, [esp + 0x80]
push edx
push 0
push 0
push 1
push eax
call fcn.004c00d0
mov ecx, dword [esi + 0x39c]
push 0
push 0
mov ebx, eax
push ebx
push 0
push 0
push 1
push ecx
mov dword [esp + 0x2c], ebx
call fcn.004bfdf0
mov ebp, eax
mov dword [esp + 0x30], ebp
mov dword [esp + 0x2c], 1
mov edx, dword [esi + 0x2b68]
mov ecx, dword [esp + 0xf0]
mov edi, ebp
shl edi, 4
sub edi, ebp
add edi, edi
add edi, edi
xor eax, eax
cmp dword [edx + edi + 8], ecx
jle 0x4c3d60
mov eax, ecx
imul eax, eax, 0x84
add eax, dword [edx + edi + 0xc]
jmp 0x4c3d8c
lea ecx, [ebx + ebx*8]
mov ebx, dword [esi + 0x2b5c]
lea ecx, [ebx + ecx*8]
mov ebx, dword [esp + 0xf0]
cmp dword [ecx + 0x10], ebx
mov ebx, dword [esp + 0x10]
jle 0x4c3da2
mov eax, dword [esp + 0xf0]
imul eax, eax, 0x84
add eax, dword [ecx + 0x1c]
test eax, eax
je 0x4c3da2
mov ecx, dword [esp + 0xec]
cmp dword [eax + 4], ecx
je 0x4c3e98
xor eax, eax
xor ecx, ecx
cmp dword [esi + 0x2b6c], ecx
jle 0x4c3e2b
add edx, 8
mov dword [esp + 0x1c], edx
cmp dword [edx - 4], ebx
jne 0x4c3deb
mov ebx, dword [esp + 0xf0]
cmp dword [edx], ebx
jle 0x4c3de7
mov edx, dword [edx + 4]
imul ebx, ebx, 0x84
mov edx, dword [edx + ebx + 4]
cmp edx, dword [esp + 0xec]
mov ebx, dword [esp + 0x10]
je 0x4c3dff
mov ebp, dword [esp + 0x30]
mov edx, dword [esp + 0x1c]
jmp 0x4c3deb
mov ebx, dword [esp + 0x10]
add ecx, 1
add edx, 0x3c
cmp ecx, dword [esi + 0x2b6c]
mov dword [esp + 0x1c], edx
jl 0x4c3db3
jmp 0x4c3e2b
mov eax, dword [esp + 0xf0]
mov edi, ecx
imul eax, eax, 0x84
shl edi, 4
sub edi, ecx
add edi, edi
mov ebp, ecx
mov ecx, dword [esi + 0x2b68]
add edi, edi
add eax, dword [ecx + edi + 0xc]
mov dword [esp + 0x2c], 1
test eax, eax
jne 0x4c3e98
push eax
push 1
push ebx
push eax
push eax
mov eax, dword [esi + 0x39c]
push 1
push eax
call fcn.004bfdf0
mov ecx, dword [esi + 0x2b68]
mov edx, dword [esp + 0xf0]
mov ebp, eax
mov edi, ebp
shl edi, 4
sub edi, ebp
add edi, edi
add edi, edi
add ecx, edi
cmp dword [ecx + 8], edx
mov dword [esp + 0x2c], 1
jle 0x4c4216
mov eax, edx
imul eax, eax, 0x84
add eax, dword [ecx + 0xc]
mov ecx, 0x17
cmp dword [esp + 0xec], ecx
jne 0x4c3e90
or dword [eax + 0x58], 0x11
mov dword [eax + 4], ecx
test eax, eax
je 0x4c4216
mov eax, dword [esi + 0x2b2c]
test eax, eax
mov byte [esp + 0x44], 0
jl 0x4c3eab
mov ebx, eax
jmp 0x4c3ed7
mov eax, dword [esp + 0x20]
push 0
push eax
push esi
call fcn.004a0bf0
mov edx, dword [esi + 0x3434]
mov ebx, eax
mov ecx, ebx
imul ecx, ecx, 0x170
add esp, 0xc
test byte [edx + ecx + 0x134], 0x80
je 0x4c3ed7
xor ebx, ebx
cmp dword [esp + 0xec], 0x17
jne 0x4c3fad
mov eax, dword [esp + 0x14]
mov al, byte [eax]
cmp al, 1
mov ecx, 0x5da43c
jne 0x4c3ef8
mov al, 0xa8
jmp 0x4c3f3f
cmp al, 2
jne 0x4c3f05
mov al, 0xa7
mov ecx, str.Wingdings
jmp 0x4c3f44
cmp al, 3
jne 0x4c3f12
mov al, 0x71
mov ecx, str.Wingdings
jmp 0x4c3f44
cmp al, 4
jne 0x4c3f1f
mov al, 0x76
mov ecx, str.Wingdings
jmp 0x4c3f44
cmp al, 5
jne 0x4c3f2c
mov al, 0xd8
mov ecx, str.Wingdings
jmp 0x4c3f44
cmp al, 6
jne 0x4c3f39
mov al, 0xfc
mov ecx, str.Wingdings
jmp 0x4c3f44
test al, al
jne 0x4c3f44
mov al, 0xb7
mov ecx, str.Symbol
cmp byte [ecx], 0
mov byte [esp + 0x44], al
mov byte [esp + 0x45], 0
je 0x4c4004
mov eax, dword [esi + 0x3434]
mov edx, ebx
imul edx, edx, 0x170
add eax, edx
mov edx, dword [eax + 0x58]
push edx
push 0
push 2
push 0
push 0
mov edx, dword [eax + 0x38]
push 0
push 0
push 0
push 0
push 0
push 1
push 0
push 0
push 0
push edx
mov edx, dword [eax + 0x30]
mov eax, dword [eax + 0x2c]
push 0xffffff
push edx
push 0
push eax
push ecx
mov ecx, dword [esi + 0x3a0]
push ebx
push ecx
push esi
call fcn.004a9100
add esp, 0x5c
mov ebx, eax
jmp 0x4c4004
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0x34]
push edx
push 0x5e9290
add eax, 1
push eax
push 0x5e9290
push ecx
lea edx, [esp + 0x58]
push str._s_s_d_s_s
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [esp + 0x30]
add esp, 0x1c
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x4c4004
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x44]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x4c3ff8
mov ecx, dword [esi + 0x2b68]
add edi, ecx
mov ecx, dword [esp + 0xf0]
xor eax, eax
cmp dword [edi + 8], ecx
setg al
imul ecx, ecx, 0x84
test eax, eax
je 0x4c4030
mov edx, dword [edi + 0xc]
mov ecx, dword [edx + ecx + 0x58]
mov edx, ebp
jmp 0x4c4049
mov edx, dword [esp + 0x10]
mov edi, dword [esi + 0x2b5c]
lea edx, [edx + edx*8]
mov edx, dword [edi + edx*8 + 0x1c]
mov ecx, dword [edx + ecx + 0x58]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0xf0]
push ecx
push ebx
lea ecx, [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0xf8]
push 0
push ecx
mov ecx, dword [esp + 0x108]
push ecx
push edi
push edx
xor edx, edx
test eax, eax
mov eax, dword [esi + 0x39c]
sete dl
push edx
push eax
call fcn.004c2380
cmp dword [esp + 0x2c], 0
jne 0x4c4096
mov ecx, dword [esi + 0x2b50]
mov edx, dword [esp + 0x40]
cmp dword [edx + ecx + 0x30], edi
je 0x4c40a8
mov eax, dword [esi + 0x39c]
push edi
push ebp
push eax
call fcn.004c3290
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov eax, dword [esi + 0x388c]
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
jne 0x4c40df
mov ecx, 0x10e
jmp 0x4c40fa
mov dword [esp + 0x18], ecx
jmp 0x4c40b4
and edx, 0xfffffff7
add ebx, ecx
mov dword [esp + 0x18], edi
jns 0x4c4140
xor ebx, ebx
jmp 0x4c4140
cmp ecx, 0x10e
jge 0x4c40fa
jmp 0x4c40f0
add ecx, ecx
cmp ecx, 0x10e
jl 0x4c40f0
mov edi, ecx
add ebx, ecx
neg edi
cmp dword [esp + 0x14], 0
je 0x4c413c
mov eax, dword [esp + 0x14]
lea ebp, [eax + 1]
mov edi, edi
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x4c4110
sub eax, ebp
mov edx, eax
mov eax, 0xaaaaaaab
mul edx
shr edx, 2
mov eax, edx
imul eax, ecx
cmp eax, 0x5a0
jle 0x4c4138
mov eax, 0x5a0
add ebx, eax
sub edi, eax
mov edx, dword [esp + 0x24]
cmp dword [esi + 0x39b0], 0
jne 0x4c4236
mov eax, dword [esi + 0x138]
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x14]
mov ebp, dword [esi + 0x2b38]
push edx
mov eax, ecx
imul eax, eax, 0x58
mov edx, dword [eax + ebp + 0x50]
push edx
mov edx, dword [eax + ebp + 0x48]
push edx
mov edx, dword [eax + ebp + 0x44]
push edx
mov edx, dword [eax + ebp + 0x4c]
add eax, ebp
push edx
mov edx, dword [eax + 0x38]
push edx
mov edx, dword [eax + 0x34]
push edx
mov edx, dword [eax + 0x30]
push edx
mov edx, dword [eax + 0x2c]
push edx
mov edx, dword [eax + 0x28]
push edx
mov edx, dword [eax + 0x24]
push edx
mov edx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x3c]
push edx
mov edx, dword [esp + 0x4c]
push edx
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x10]
push edx
push edi
push eax
push ebx
push ecx
push esi
call fcn.004c2d90
mov ecx, dword [esi + 0x138]
mov edx, dword [esp + 0x70]
mov ecx, dword [ecx + edx*4]
mov ebp, dword [esp + 0x8c]
add esp, 0x50
mov dword [ecx + 0x14], eax
mov ebx, edx
add ebx, 1
cmp ebx, ebp
mov dword [esp + 0x20], ebx
jle 0x4c3b90
add dword [esi + 0x114], 1
cmp dword [esp + 0x104], 0
je 0x4c4216
push 1
push esi
call fcn.00525730
push esi
call fcn.004de3e0
add esp, 0xc
cmp dword [esi + 0x4dc], 0
je 0x4c4216
push 0
push esi
call fcn.005119e0
add esp, 8
mov eax, 1
mov ecx, dword [esp + 0xdc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005aac48
add esp, 0xd0
ret 0x24
mov eax, dword [esi + 0x39a4]
mov ecx, dword [esi + 0x3894]
imul eax, eax, 0x10c
mov dword [eax + ecx + 0x84], edx
mov edx, dword [esi + 0x39a4]
mov eax, dword [esi + 0x3894]
imul edx, edx, 0x10c
mov dword [edx + eax + 0x78], ebx
mov ecx, dword [esi + 0x39a4]
mov edx, dword [esi + 0x3894]
imul ecx, ecx, 0x10c
mov dword [ecx + edx + 0x80], edi
mov eax, dword [esi + 0x39a4]
mov ecx, dword [esi + 0x3894]
imul eax, eax, 0x10c
mov edx, dword [esp + 0x18]
mov dword [eax + ecx + 0xb0], edx
jmp 0x4c420b