Function at 0x502960
Capabilities:
Enumerate pe sections

Disassembly:
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 4]
push esi
push edi
mov edi, dword [esp + 0x10]
mov esi, ecx
mov cl, byte [esi + 9]
mov word [esi + 0x25], di
mov dword [esi + 0xc], edx
mov dword [esi + 0x3f], edx
mov dword [esi + 0x3b], eax
mov al, byte [edx + 9]
shr eax, 3
and eax, 1
and cl, 0xf7
and al, 1
shl al, 3
or al, cl
mov byte [esi + 9], al
mov ax, word [edx + 0xa]
mov word [esi + 0xa], ax
mov ecx, dword [edx + 0x14]
mov dword [esi + 0x14], ecx
mov dl, byte [edx + 0x18]
mov ecx, edi
mov byte [esi + 0x18], dl
call fcn.0051fbe0
mov ecx, dword [esi + 0x3f]
mov dword [esi + 0x27], eax
add ecx, 0xa1
push ecx
push esi
mov ecx, eax
call fcn.004ec260
mov ecx, eax
mov dword [esi + 0x27], eax
call fcn.0051fe50
test eax, eax
je 0x5029e4
mov ecx, dword [esi + 0x27]
call fcn.0051fe50
push eax
mov ecx, esi
call fcn.004a8b80
mov edx, dword [esi + 0x3f]
mov ecx, dword [esi + 0x27]
push ebx
add edx, 0xa1
push ebp
push edx
call fcn.00504300
mov edi, dword [esi + 0x3f]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x27]
mov ecx, dword [edi + 0x8d]
mov edx, dword [eax + 4]
mov ebx, dword [eax + 8]
cmp ecx, edx
mov dword [esp + 0x1c], ebx
je 0x502a69
mov cx, word [ebx + 0xe]
call fcn.004d6460
mov ebp, eax
test ebp, ebp
je 0x502a52
mov ax, word [ebp]
cmp ax, word [0x5668c6]
je 0x502a4b
mov edx, dword [edi]
push eax
mov ecx, edi
call dword [edx + 0x20]
test eax, eax
je 0x502a4b
mov cx, word [ebp + 2]
push edi
push ecx
mov ecx, eax
call fcn.004b4d20
mov ebp, dword [ebp + 4]
test ebp, ebp
jne 0x502a25
mov al, byte [esi + 8]
mov edx, dword [esi + 0x27]
and al, 0xdf
mov byte [esi + 8], al
mov eax, dword [esi + 0x3f]
mov ecx, dword [edx + 4]
mov dword [eax + 0x8d], ecx
mov cx, word [ebx + 0x38]
mov ebp, dword [esi + 0x3f]
call fcn.004d6460
mov edi, eax
test edi, edi
je 0x502aa8
mov ax, word [edi]
cmp ax, word [0x5668c6]
je 0x502aa1
mov edx, dword [ebp]
push eax
mov ecx, ebp
call dword [edx + 0x20]
test eax, eax
je 0x502aa1
mov cx, word [edi + 2]
push ebp
push ecx
mov ecx, eax
call fcn.004b4d20
mov edi, dword [edi + 4]
test edi, edi
jne 0x502a7b
mov cl, byte [esi + 8]
mov edx, dword [esi]
and cl, 0xdf
mov byte [esi + 8], cl
mov ecx, esi
call dword [edx + 0x30]
mov edi, eax
test edi, edi
je 0x502af7
cmp word [ebx + 0x36], 0
je 0x502af7
call fcn.004d4520
mov dword [esp + 0x18], eax
mov ax, word [ebx + 0x36]
push 0
push esi
push edi
push eax
lea ecx, [esp + 0x28]
call fcn.004d4ca0
test eax, eax
je 0x502aee
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0xbc]
mov ecx, dword [esp + 0x18]
call fcn.004d4570
mov cx, word [ebx + 2]
test cx, cx
je 0x502b56
call fcn.004d6370
mov edi, eax
test edi, edi
je 0x502b56
mov bx, word [edi]
mov ecx, 0x11e
call fcn.004a38d0
test eax, eax
je 0x502b27
mov ecx, eax
call fcn.00525df0
mov ebp, eax
jmp 0x502b29
xor ebp, ebp
mov ecx, dword [esi + 0x2b]
push ebp
call fcn.004e9bc0
mov eax, dword [esi + 0x3b]
push 0
push 0
push 0
push 0
push 1
push 0
push ebx
push esi
push eax
mov ecx, ebp
call fcn.00525e50
mov edi, dword [edi + 2]
test edi, edi
jne 0x502b0b
mov ebx, dword [esp + 0x1c]
mov cx, word [ebx + 4]
test cx, cx
je 0x502b7e
call fcn.004d6370
mov edi, eax
test edi, edi
je 0x502b7e
mov cx, word [edi]
push 0
push ecx
mov ecx, esi
call fcn.00502d90
mov edi, dword [edi + 2]
test edi, edi
jne 0x502b6a
mov edx, dword [esi + 0x2b]
cmp dword [edx], 0
jne 0x502b92
push str.Empty_definition_
mov ecx, esi
call fcn.004a8b80
mov eax, dword [esi + 0x3b]
test byte [eax + 0x48], 2
je 0x502cab
mov cx, word [ebx + 8]
test cx, cx
je 0x502bf1
call fcn.004d6370
mov ebp, eax
test ebp, ebp
je 0x502bf1
mov ax, word [ebp]
mov ecx, esi
push eax
call fcn.00502d60
mov edi, eax
test edi, edi
je 0x502bea
mov ecx, 0x22
call fcn.004a38d0
test eax, eax
je 0x502bdf
push 1
push edi
mov ecx, eax
call fcn.004eb380
jmp 0x502be1
xor eax, eax
mov ecx, dword [esi + 0x33]
push eax
call fcn.004a6c60
mov ebp, dword [ebp + 2]
test ebp, ebp
jne 0x502bb3
mov cx, word [ebx + 0xa]
test cx, cx
je 0x502c43
call fcn.004d6370
mov ebp, eax
test ebp, ebp
je 0x502c43
mov ax, word [ebp]
mov ecx, esi
push eax
call fcn.00502d60
mov edi, eax
test edi, edi
je 0x502c3c
mov ecx, 0x22
call fcn.004a38d0
test eax, eax
je 0x502c31
push 0
push edi
mov ecx, eax
call fcn.004eb380
jmp 0x502c33
xor eax, eax
mov ecx, dword [esi + 0x33]
push eax
call fcn.004a6c60
mov ebp, dword [ebp + 2]
test ebp, ebp
jne 0x502c05
mov cx, word [ebx + 6]
test cx, cx
je 0x502c7f
call fcn.004d6370
mov edi, eax
test edi, edi
je 0x502c7f
mov dl, byte [esi + 9]
mov ecx, dword [esi + 0x2f]
mov eax, dword [esi + 0x3f]
push ecx
mov cx, word [edi]
add eax, 0xa1
shr edx, 3
and edx, 1
push edx
push eax
mov edx, esi
call fcn.004eb740
mov edi, dword [edi + 2]
test edi, edi
jne 0x502c57
test byte [esi + 9], 8
je 0x502cab
mov ecx, 0x201
call fcn.004a3860
mov dword [esi + 0x95], eax
mov ecx, 0x201
mov byte [eax], 0
call fcn.004a3860
mov dword [esi + 0x91], eax
mov byte [eax], 0
mov ecx, dword [ebx + 0x3a]
mov dword [esi + 0xd5], ecx
mov edx, dword [ebx + 0x3e]
mov eax, ecx
mov dword [esi + 0xd9], edx
test eax, eax
jne 0x502cd7
mov eax, dword [esi + 0x3b]
xor ecx, ecx
mov cl, byte [eax + 0x48]
and ecx, 2
or ecx, 1
mov dword [esi + 0xd5], ecx
mov eax, dword [esi + 0xd9]
test eax, eax
jne 0x502cf4
mov edx, dword [esi + 0x3b]
xor eax, eax
mov al, byte [edx + 0x48]
and eax, 2
or al, 1
mov dword [esi + 0xd9], eax
mov ecx, dword [esi + 0x3f]
test byte [ecx + 0xad], 1
je 0x502d07
mov eax, 1
jmp 0x502d12
mov edx, dword [ebx + 0x42]
xor eax, eax
cmp edx, 2
sete al
mov dl, byte [esi + 0xdd]
mov bl, byte [esi + 0xde]
and al, 1
and dl, 0xdf
shl al, 5
or al, dl
and bl, 0xfe
mov byte [esi + 0xdd], al
mov eax, dword [esp + 0x14]
mov byte [esi + 0xde], bl
pop ebp
test eax, eax
pop ebx
je 0x502d51
add ecx, 0xa1
push ecx
mov ecx, dword [esi + 0x27]
push eax
call fcn.00504340
pop edi
pop esi
ret 0xc