Function at 0x10003500
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x40
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
test byte [0x1000c018], 8
jne 0x100036b0
mov ebx, dword [edi + 8]
cmp ebx, dword [edi + 0xc]
jb 0x10003544
jmp 0x10003690
mov edx, dword [eax]
mov ecx, dword [esi]
cmp dword [edx], ecx
je 0x100035a0
add ebx, 4
cmp ebx, dword [edi + 0xc]
jae 0x10003690
mov eax, dword [ebx]
test eax, eax
je 0x10003538
test esi, esi
jne 0x10003530
test byte [0x1000c018], 8
jne 0x100035c8
call dword [eax + 0x18]
test eax, eax
je 0x1000357f
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [ebx]
mov eax, dword [eax]
mov dword [esp], eax
call sym.atl110.dll_AtlRegisterClassCategoriesHelper
sub esp, 0xc
test eax, eax
mov edx, eax
js 0x10003594
mov eax, dword [ebx]
mov dword [esp], 0
call dword [eax + 4]
sub esp, 4
test eax, eax
mov edx, eax
jns 0x10003538
lea esp, [ebp - 0xc]
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret 0xc
mov ecx, dword [esi + 4]
cmp dword [edx + 4], ecx
jne 0x10003538
mov ecx, dword [esi + 8]
cmp dword [edx + 8], ecx
jne 0x10003538
mov ecx, dword [esi + 0xc]
cmp dword [edx + 0xc], ecx
jne 0x10003538
test byte [0x1000c018], 8
je 0x10003557
jmp 0x100035d3
mov edx, dword [eax]
mov eax, section..rdata
test edx, edx
je 0x10003642
mov eax, edx
shr eax, 0x10
test eax, eax
je 0x10003678
movzx eax, byte [edx + 0xf]
mov dword [esp + 0x2c], eax
movzx eax, byte [edx + 0xe]
mov dword [esp + 0x28], eax
movzx eax, byte [edx + 0xd]
mov dword [esp + 0x24], eax
movzx eax, byte [edx + 0xc]
mov dword [esp + 0x20], eax
movzx eax, byte [edx + 0xb]
mov dword [esp + 0x1c], eax
movzx eax, byte [edx + 0xa]
mov dword [esp + 0x18], eax
movzx eax, byte [edx + 9]
mov dword [esp + 0x14], eax
movzx eax, byte [edx + 8]
mov dword [esp + 0x10], eax
movzx eax, word [edx + 6]
mov dword [esp + 0xc], eax
movzx eax, word [edx + 4]
mov dword [esp + 8], eax
mov eax, dword [edx]
mov dword [esp], 0x1000e070
mov dword [esp + 4], eax
call fcn.10001680
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Unregistering_clsid__s_n
mov dword [esp + 8], str.AtlComModuleUnregisterServer
mov dword [esp + 4], 0x1000c018
mov dword [esp], 3
call fcn.10001970
mov eax, dword [ebx]
jmp 0x10003557
mov dword [esp + 4], edx
mov dword [esp], 0x1000e061
call fcn.10001680
jmp 0x10003642
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x10003760
xor edx, edx
lea esp, [ebp - 0xc]
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret 0xc
test esi, esi
je 0x100037e4
mov eax, esi
shr eax, 0x10
test eax, eax
je 0x100037cf
movzx eax, byte [esi + 0xf]
mov dword [esp + 0x2c], eax
movzx eax, byte [esi + 0xe]
mov dword [esp + 0x28], eax
movzx eax, byte [esi + 0xd]
mov dword [esp + 0x24], eax
movzx eax, byte [esi + 0xc]
mov dword [esp + 0x20], eax
movzx eax, byte [esi + 0xb]
mov dword [esp + 0x1c], eax
movzx eax, byte [esi + 0xa]
mov dword [esp + 0x18], eax
movzx eax, byte [esi + 9]
mov dword [esp + 0x14], eax
movzx eax, byte [esi + 8]
mov dword [esp + 0x10], eax
movzx eax, word [esi + 6]
mov dword [esp + 0xc], eax
movzx eax, word [esi + 4]
mov dword [esp + 8], eax
mov eax, dword [esi]
mov dword [esp], 0x1000e070
mov dword [esp + 4], eax
call fcn.10001680
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.__p__x__s__n
mov dword [esp + 8], str.AtlComModuleUnregisterServer
mov dword [esp + 0x14], eax
mov dword [esp + 4], 0x1000c018
mov dword [esp], 3
call fcn.10001970
jmp 0x1000351c
lea eax, [ebp - 0x18]
mov dword [esp + 4], 0
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x10]
mov dword [esp + 8], eax
mov eax, dword [edi + 4]
mov dword [esp], eax
call sym.atl110.dll_AtlLoadTypeLib
sub esp, 0x10
test eax, eax
mov edx, eax
js 0x10003594
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call dword [sym.imp.oleaut32.dll_SysFreeString]
mov eax, dword [ebp - 0x18]
lea ecx, [ebp - 0x14]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x1c]
sub esp, 8
test eax, eax
mov dword [ebp - 0x1c], eax
jns 0x100037ee
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
mov dword [esp], eax
call dword [ecx + 8]
mov edx, dword [ebp - 0x1c]
sub esp, 4
jmp 0x10003594
mov dword [esp + 4], esi
mov dword [esp], 0x1000e061
call fcn.10001680
jmp 0x10003727
mov eax, section..rdata
jmp 0x10003727
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x14]
mov dword [esp + 0x10], edx
mov edx, dword [eax + 0x10]
mov dword [esp + 0xc], edx
movzx edx, word [eax + 0x1a]
mov dword [esp + 8], edx
movzx edx, word [eax + 0x18]
mov dword [esp], eax
mov dword [esp + 4], edx
call dword [sym.imp.oleaut32.dll_UnRegisterTypeLib]
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x18]
sub esp, 0x14
mov ecx, dword [eax]
mov dword [esp], eax
mov dword [esp + 4], ebx
call dword [ecx + 0x30]
mov eax, dword [ebp - 0x18]
sub esp, 8
mov ecx, dword [eax]
mov dword [esp], eax
call dword [ecx + 8]
mov edx, dword [ebp - 0x1c]
sub esp, 4
test edx, edx
js 0x10003594
xor edx, edx
jmp 0x1000369d