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

Disassembly:
sub esp, 0x10
push ebx
push ebp
push esi
mov ebp, ecx
mov eax, dword [ebp]
push edi
call dword [eax + 0x78]
mov esi, dword [esp + 0x24]
mov edx, dword [ebp]
lea ecx, [eax + eax*4]
mov eax, dword [ecx*4 + 0x628d48]
test eax, eax
mov ecx, ebp
je 0x556cc1
call dword [edx + 0x8c]
mov eax, dword [esi + 0x14]
cmp eax, 0x43
mov dword [esi + 8], 1
je 0x5569ed
cmp eax, 0x54
je 0x5569ed
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x78]
lea eax, [eax + eax*4]
lea edi, [esi + 0x1c]
lea eax, [eax*4 + 0x628d4e]
mov edx, edi
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x556985
cmp byte [edi], 0
je 0x556e1b
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x80]
test eax, eax
je 0x5569c4
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x80]
cmp byte [eax], 0
je 0x5569c4
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x80]
jmp 0x5569c9
mov eax, 0x602fd1
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push eax
mov eax, dword [esi + 8]
push 0x602fd1
push eax
push ecx
push edi
push str.U_2.2s_06d_d__30s_s
push edx
call fcn.00502000
add esp, 0x1c
jmp 0x556e1b
mov ecx, dword [esi]
push 1
call fcn.005020c0
mov eax, dword [esi]
push 0x613f14
push 0
push eax
call fcn.00502260
mov edx, dword [ebp]
add esp, 0xc
mov ecx, ebp
call dword [edx + 0x80]
test eax, eax
je 0x556b21
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x80]
cmp byte [eax], 0
je 0x556b21
push 0
lea ecx, [esp + 0x18]
call fcn.004f5dd0
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x80]
push 0
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x30]
push eax
push 0x10a7
lea ecx, [esp + 0x20]
push ecx
mov ecx, ebp
call fcn.004ebad0
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x78]
mov edi, eax
mov ebx, esi
call fcn.00555ff0
push eax
mov eax, dword [esi]
push str._s_NAME_
push 0
push eax
call fcn.00502260
mov ecx, dword [esp + 0x3c]
add esp, 0x10
push 0
push ecx
push 0x8d8
mov ecx, ebp
call fcn.004ebf10
mov edi, eax
test edi, edi
je 0x556ab1
mov ecx, edi
call fcn.004fdb50
test eax, eax
jne 0x556ab1
mov eax, dword [edi + 0x1c]
add eax, 4
jmp 0x556ab5
mov eax, dword [esp + 0x24]
mov edx, dword [esi]
push eax
push 0x5f7e8c
push 0
push edx
call fcn.005022a0
add esp, 0x10
test edi, edi
je 0x556ade
mov ecx, edi
call fcn.004fdb50
test eax, eax
jne 0x556ade
mov ecx, edi
call fcn.004fd170
mov eax, dword [esi]
push str.__RESERVEDNAME_
push 0
push eax
call fcn.00502260
mov ecx, dword [esp + 0x20]
mov edx, dword [esi]
push ecx
push 0x5f7e8c
push 0
push edx
call fcn.005022a0
mov eax, dword [esi]
push 0x613e84
push 0
push eax
call fcn.00502260
add esp, 0x28
lea ecx, [esp + 0x14]
call fcn.004f5e70
jmp 0x556c8f
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x78]
cmp eax, 0x17
mov ecx, ebp
jne 0x556c6d
push 0x10b5
mov dword [esp + 0x28], 0
call fcn.004ebe80
mov edx, dword [eax + 0x1c]
xor ecx, ecx
cmp edx, 2
sete cl
mov edi, ecx
test edi, edi
mov ecx, ebp
je 0x556ba0
push 0x109d
call fcn.004ebe80
mov edx, dword [eax + 0x1c]
lea eax, [edx + 4]
lea ebx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x556b70
sub eax, ebx
cmp eax, 0x24
jb 0x556b9c
lea eax, [esp + 0x24]
push eax
add edx, 0x29
push 0x614248
push edx
call fcn.005e6806
mov eax, dword [esp + 0x30]
add esp, 0xc
test eax, eax
jne 0x556baa
xor edi, edi
mov ecx, ebp
push 0x109b
call fcn.004ebe80
push 0xc01
mov ecx, ebp
call fcn.004ebe80
mov ecx, 0x800
mov ebx, eax
call fcn.004dc4c0
mov edx, dword [ebx + 0x1c]
mov dword [esp + 0x10], eax
add edx, 4
mov ecx, eax
mov edi, edi
mov bl, byte [edx]
inc edx
mov byte [ecx], bl
inc ecx
test bl, bl
jne 0x556bd0
push 1
mov edx, 1
mov ecx, eax
call fcn.00555c80
test edi, edi
mov ecx, ebp
je 0x556c36
push 0x109b
call fcn.004ebe80
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov eax, dword [ebp]
push str.Create
push ecx
push edx
mov ecx, ebp
call dword [eax + 0x78]
mov edi, eax
mov ebx, esi
call fcn.00555ff0
mov ecx, dword [esi]
push eax
push str._s_ID__d__VCHTYPE__s__ACTION__s_
push 0
push ecx
call fcn.00502260
mov ecx, dword [esp + 0x2c]
add esp, 0x1c
call fcn.004dc6a0
jmp 0x556c8f
mov edx, dword [esp + 0x10]
mov eax, dword [ebp]
push str.Create
push edx
call dword [eax + 0x78]
mov edi, eax
mov ebx, esi
call fcn.00555ff0
mov ecx, dword [esi]
push eax
push str._s_VCHTYPE__s__ACTION__s_
push 0
push ecx
call fcn.00502260
mov ecx, dword [esp + 0x28]
add esp, 0x18
call fcn.004dc6a0
jmp 0x556c8f
mov edx, dword [ebp]
call dword [edx + 0x78]
mov edi, eax
mov ebx, esi
call fcn.00555ff0
push eax
mov eax, dword [esi]
push 0x5f7e8c
push 0
push eax
call fcn.00502260
add esp, 0x10
mov eax, dword [esp + 0x28]
test ax, ax
je 0x556caa
mov ecx, dword [esp + 0x30]
mov edx, dword [esi]
mov edi, dword [esp + 0x2c]
push ecx
push eax
push edx
call fcn.00556860
mov eax, dword [esi]
push 0x60ecb0
push 1
push eax
call fcn.00502260
add esp, 0xc
jmp 0x556e1b
push 0
push 0
call dword [edx + 0x74]
test eax, eax
jne 0x556fe2
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x78]
test eax, eax
jne 0x556d0b
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x556e1b
mov ecx, dword [eax + 0xc]
and ecx, 0x3f
cmp cl, 0xc
jne 0x556e1b
test byte [eax + 0x35], 1
je 0x556e1b
mov ecx, dword [eax + 0x38]
test ecx, ecx
jne 0x556e1b
test byte [esi + 0x11], 1
je 0x556d4e
mov ecx, dword [esi + 0x10]
xor edx, edx
call fcn.00555e70
test eax, eax
je 0x556d4e
mov eax, dword [eax + 0x14]
lea edx, [eax + 0xe0]
cmp edx, 0xef
jle 0x556d3e
movzx ebx, ax
shl ebx, 0x10
or ebx, 0x41e0
jmp 0x556d51
add eax, 0xe0
movzx ebx, ax
or ebx, 0x100
jmp 0x556d51
mov ebx, dword [esi + 0x10]
mov edi, esi
call fcn.00555ea0
mov edi, eax
mov eax, dword [esi + 0x14]
cmp eax, 0x43
je 0x556d90
cmp eax, 0x54
je 0x556d90
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
push edi
push eax
mov eax, dword [esi]
push ecx
lea edx, [esi + 0x1c]
push edx
push str.U_2.2s_06d_d__30s
push eax
call fcn.00502000
mov eax, dword [esi + 8]
add esp, 0x18
inc eax
mov dword [esi + 8], eax
jmp 0x556e1b
mov eax, dword [esi + 8]
test eax, eax
je 0x556fe2
mov ecx, dword [esi]
push eax
call fcn.005020c0
test byte [esi + 0x11], 1
je 0x556e08
mov edx, dword [ebp]
push 0
mov ecx, ebp
call dword [edx + 0x78]
mov ecx, dword [esi + 0x24]
push eax
mov edx, edi
call fcn.00555bc0
test eax, eax
jne 0x556e1b
push edi
push str._UDF:_s.LIST
push eax
mov eax, dword [esi]
push eax
call fcn.00502260
mov ebx, dword [esi + 0x10]
add esp, 0x10
push esi
call fcn.00555f30
test eax, eax
je 0x556df4
mov ecx, dword [esi]
push eax
push str._DESC__s_
push 0
push ecx
call fcn.00502260
add esp, 0x10
mov edx, dword [esi]
push 0x60ecb0
push 1
push edx
call fcn.00502260
add esp, 0xc
jmp 0x556e1b
mov eax, dword [esi]
push edi
push str.__s.LIST_
push 1
push eax
call fcn.00502260
add esp, 0x10
mov eax, dword [esi + 0x14]
cmp eax, 0x43
je 0x556e28
cmp eax, 0x54
jne 0x556e2b
inc dword [esi + 8]
push esi
push 0x5567e0
mov ecx, ebp
call fcn.004ec1b0
push esi
push 0x556470
mov ecx, ebp
call fcn.004ec180
push esi
push 0x556780
mov ecx, ebp
call fcn.004ec1b0
push esi
push 0x556820
mov ecx, ebp
call fcn.004ec1b0
mov eax, dword [esi + 0x14]
cmp eax, 0x43
je 0x556e6c
cmp eax, 0x54
jne 0x556e6f
dec dword [esi + 8]
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x78]
lea eax, [eax + eax*4]
mov ecx, dword [eax*4 + 0x628d48]
test ecx, ecx
je 0x556ed8
mov eax, dword [esi + 0x14]
cmp eax, 0x43
je 0x556e92
cmp eax, 0x54
jne 0x556ec5
mov eax, dword [esi + 8]
test eax, eax
je 0x556ea1
mov ecx, dword [esi]
push eax
call fcn.005020c0
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x78]
mov edi, eax
mov ebx, esi
call fcn.00555ff0
push eax
mov eax, dword [esi]
push str.___s_
push 1
push eax
call fcn.00502260
add esp, 0x10
pop edi
mov dword [esi + 8], 0
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret 0x10
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x78]
test eax, eax
jne 0x556f13
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x556fe2
mov ecx, dword [eax + 0xc]
and ecx, 0x3f
cmp cl, 0xc
jne 0x556fe2
test byte [eax + 0x35], 1
je 0x556fe2
mov ecx, dword [eax + 0x38]
test ecx, ecx
jne 0x556fe2
mov eax, dword [esi + 0x14]
cmp eax, 0x43
je 0x556f33
cmp eax, 0x54
je 0x556f33
mov eax, dword [esi + 8]
dec eax
pop edi
mov dword [esi + 8], eax
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret 0x10
test byte [esi + 0x11], 1
je 0x556f76
mov ecx, dword [esi + 0x10]
xor edx, edx
call fcn.00555e70
test eax, eax
je 0x556f76
mov eax, dword [eax + 0x14]
lea edx, [eax + 0xe0]
cmp edx, 0xef
jle 0x556f66
movzx ebx, ax
shl ebx, 0x10
or ebx, 0x41e0
jmp 0x556f79
add eax, 0xe0
movzx ebx, ax
or ebx, 0x100
jmp 0x556f79
mov ebx, dword [esi + 0x10]
mov edi, esi
call fcn.00555ea0
mov edi, eax
mov eax, dword [esi + 8]
test eax, eax
je 0x556f91
mov ecx, dword [esi]
push eax
call fcn.005020c0
test byte [esi + 0x11], 1
je 0x556fcf
mov eax, dword [ebp]
push 0
mov ecx, ebp
call dword [eax + 0x78]
mov ecx, dword [esi + 0x24]
push eax
mov edx, edi
call fcn.00555bc0
test eax, eax
jne 0x556fe2
mov ecx, dword [esi]
push edi
push str.__UDF:_s.LIST_
push 1
push ecx
call fcn.00502260
add esp, 0x10
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret 0x10
mov edx, dword [esi]
push edi
push str.___s.LIST_
push 1
push edx
call fcn.00502260
add esp, 0x10
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret 0x10