Function at 0x5a2540
Capabilities:
Enumerate pe sections

Disassembly:
test dword [0x7eda90], 0xffffff80
jne 0x5a2568
test dword [0x7eda90], 0xffffffff
jne 0x5a2a08
call fcn.006a6b5c
jmp fcn.005a2540
push edi
push esi
push ebp
push ebx
sub esp, 0xc
mov edi, ecx
mov ebx, dword [edi + 0x7f]
mov edx, dword [edi + 0x83]
mov ebp, dword [edi + 0x87]
mov esi, dword [edi + 0x8b]
mov ecx, dword [edi + 0x73]
test ecx, ecx
je 0x5a25c1
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0xa]
cmp eax, 0x4e
je 0x5a27fe
cmp eax, 0x4d
je 0x5a27fe
movzx eax, byte [ecx + 4]
add ebx, eax
movzx eax, byte [ecx + 5]
add edx, eax
movzx eax, byte [ecx + 6]
add ebp, eax
movzx ecx, byte [ecx + 7]
add esi, ecx
cmp dword [esp + 0x2c], 0
je 0x5a263d
movzx eax, byte [edi + 0x11a]
test al, 1
je 0x5a260a
mov eax, dword [edi + 0x77]
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
sub ecx, eax
push eax
push dword [edi + 0x7b]
push ecx
mov eax, dword [esp + 0x30]
push dword [eax]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x10], edx
call fcn.0054c2b0
mov edx, dword [esp]
mov dword [edi + 0x3d], eax
mov eax, dword [edi + 0x77]
mov ecx, dword [esp + 0x28]
sub dword [ecx], eax
jmp 0x5a26c2
push dword [edi + 0x77]
push dword [edi + 0x7b]
mov eax, dword [esp + 0x30]
push dword [eax]
mov eax, dword [esp + 0x30]
push dword [eax]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x10], edx
call fcn.0054c2b0
mov edx, dword [esp]
mov dword [edi + 0x3d], eax
mov eax, dword [edi + 0x77]
mov ecx, dword [esp + 0x28]
add dword [ecx], eax
jmp 0x5a26c2
movzx eax, byte [edi + 0x11a]
test al, 1
je 0x5a267c
mov eax, dword [edi + 0x77]
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
sub ecx, eax
push eax
push dword [edi + 0x7b]
push ecx
mov eax, dword [esp + 0x30]
push dword [eax]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x10], edx
call fcn.0054c2b0
mov edx, dword [esp]
mov dword [edi + 0x3d], eax
mov eax, dword [edi + 0x7b]
mov ecx, dword [esp + 0x24]
add dword [ecx], eax
jmp 0x5a26c2
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov ebp, dword [edi + 0x7b]
mov esi, dword [edi + 0x77]
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
sub eax, ebp
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
sub ecx, esi
push esi
push ebp
push ecx
push eax
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x10], edx
call fcn.0054c2b0
mov edx, dword [esp]
mov dword [edi + 0x3d], eax
mov eax, dword [edi + 0x7b]
mov ecx, dword [esp + 0x24]
sub dword [ecx], eax
mov ecx, dword [edi + 0x3d]
mov word [ecx + 0x24], bx
mov word [ecx + 0x26], dx
mov word [ecx + 0x28], bp
mov word [ecx + 0x2a], si
call fcn.0054a61c
mov ecx, dword [edi + 0x97]
test ecx, ecx
jle 0x5a27ee
mov ebx, dword [edi + 0x3d]
movsx ebp, word [ebx + 0x28]
mov esi, dword [ebx + 0x14]
add esi, ebp
mov edx, dword [ebx + 0x18]
sub edx, ecx
add edx, dword [ebx + 0x20]
movsx eax, word [ebx + 0x24]
sub edx, eax
sub edx, dword [edi + 0x9b]
mov eax, dword [ebx + 0x1c]
sub eax, ebp
movsx ebx, word [ebx + 0x2a]
sub eax, ebx
push ecx
push eax
push edx
push esi
mov ecx, dword [esp + 0x30]
call fcn.0054c2b0
mov dword [edi + 0x41], eax
mov edx, dword [edi + 0x8f]
test edx, edx
jle 0x5a27b1
movsx ebx, word [eax + 0x28]
mov ebp, dword [eax + 0x14]
add ebp, ebx
mov esi, dword [eax + 0x18]
add esi, dword [eax + 0x20]
movsx ecx, word [eax + 0x24]
sub esi, ecx
add esi, dword [edi + 0x93]
movsx ecx, word [eax + 0x2a]
mov eax, dword [eax + 0x1c]
sub eax, ecx
sub eax, ebx
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
sar edx, 1
push edx
push eax
push esi
push ebp
mov ecx, dword [esp + 0x30]
call fcn.0054c2b0
mov dword [edi + 0x45], eax
mov esi, dword [edi + 0x41]
movsx ecx, word [esi + 0x28]
mov ebp, dword [edi + 0x8f]
mov eax, ebp
shr eax, 0x1f
add ebp, eax
sar ebp, 1
mov ebx, dword [esi + 0x14]
add ebx, ecx
mov edx, dword [esi + 0x18]
sub edx, ebp
movsx eax, word [esi + 0x26]
add edx, eax
movsx eax, word [esi + 0x2a]
mov esi, dword [esi + 0x1c]
sub esi, eax
sub esi, ecx
push ebp
push esi
push edx
push ebx
mov ecx, dword [esp + 0x30]
call fcn.0054c2b0
mov dword [edi + 0x49], eax
mov ecx, dword [edi + 0x93]
test ecx, ecx
jle 0x5a27ee
mov ebp, dword [edi + 0x41]
movsx ebx, word [ebp + 0x28]
mov esi, dword [ebp + 0x14]
add esi, ebx
mov edx, dword [ebp + 0x18]
add edx, dword [ebp + 0x20]
movsx eax, word [ebp + 0x24]
sub edx, eax
movsx eax, word [ebp + 0x2a]
mov ebp, dword [ebp + 0x1c]
sub ebp, eax
sub ebp, ebx
push ecx
push ebp
push edx
push esi
mov ecx, dword [esp + 0x30]
call fcn.0054c2b0
mov dword [edi + 0x4d], eax
cmp dword [edi + 0x5d], 0
je 0x5a2861
add esp, 0xc
pop ebx
pop ebp
pop esi
pop edi
ret 0x10
movzx eax, byte [edi + 0x11c]
test al, 0x40
je 0x5a25c1
mov dword [esp], edi
movzx edi, byte [ecx + 4]
mov eax, 1
cmp edi, 0
mov edi, 0
cmovne edi, eax
add ebx, edi
movzx edi, byte [ecx + 5]
cmp edi, 0
mov edi, 0
cmovne edi, eax
add edx, edi
movzx edi, byte [ecx + 6]
cmp edi, 0
mov edi, 0
cmovne edi, eax
add ebp, edi
movzx ecx, byte [ecx + 7]
cmp ecx, 0
mov ecx, 0
cmovne ecx, eax
add esi, ecx
mov edi, dword [esp]
jmp 0x5a25c1
mov edx, dword [edi + 0x51]
test edx, edx
je 0x5a27f4
movzx eax, byte [edi + 0x11a]
test al, 2
je 0x5a293c
mov eax, dword [edi + 0x3d]
movsx ecx, word [eax + 0x28]
add ecx, dword [eax + 0x14]
mov dword [esp + 4], ecx
mov ebp, dword [eax + 0x18]
add ebp, dword [eax + 0x20]
movsx ebx, word [eax + 0x24]
sub ebp, ebx
mov dword [esp], ebp
mov ebx, dword [edx]
test ebx, ebx
je 0x5a28de
mov ebp, dword [esp + 0x20]
movzx eax, byte [ebx + 0x11a]
test al, 1
je 0x5a28d8
test al, 8
jne 0x5a28cb
lea esi, [esp + 4]
lea edx, [esp]
movzx eax, byte [edi + 0x11a]
and eax, 2
shr eax, 1
push eax
push edx
push esi
push ebp
mov ecx, ebx
call fcn.005a2540
mov ecx, ebx
call fcn.004fa084
mov ebx, eax
test ebx, ebx
jne 0x5a289e
mov eax, dword [edi + 0x3d]
mov edx, dword [edi + 0x51]
movsx ecx, word [eax + 0x26]
add ecx, dword [eax + 0x18]
mov dword [esp + 8], ecx
mov ebx, dword [edx + 4]
test ebx, ebx
je 0x5a27f4
mov ebp, dword [esp + 0x20]
movzx eax, byte [ebx + 0x11a]
test al, 1
jne 0x5a27f4
test al, 8
jne 0x5a292a
lea esi, [esp + 4]
lea edx, [esp + 8]
movzx eax, byte [edi + 0x11a]
and eax, 2
shr eax, 1
push eax
push edx
push esi
push ebp
mov ecx, ebx
call fcn.005a2540
mov ecx, ebx
call fcn.004fa0d4
mov ebx, eax
test ebx, ebx
jne 0x5a28f8
jmp 0x5a27f4
mov eax, dword [edi + 0x3d]
mov ebx, dword [eax + 0x18]
add ebx, dword [eax + 0x20]
movsx ecx, word [eax + 0x24]
sub ebx, ecx
mov dword [esp + 4], ebx
movsx ebp, word [eax + 0x28]
add ebp, dword [eax + 0x14]
mov dword [esp], ebp
mov ebx, dword [edx]
test ebx, ebx
je 0x5a29a3
mov ebp, dword [esp + 0x20]
movzx eax, byte [ebx + 0x11a]
test al, 1
je 0x5a299d
test al, 8
jne 0x5a2990
lea esi, [esp]
lea edx, [esp + 4]
movzx eax, byte [edi + 0x11a]
and eax, 2
shr eax, 1
push eax
push edx
push esi
push ebp
mov ecx, ebx
call fcn.005a2540
mov ecx, ebx
call fcn.004fa084
mov ebx, eax
test ebx, ebx
jne 0x5a2963
mov eax, dword [edi + 0x3d]
mov edx, dword [edi + 0x51]
mov ecx, dword [eax + 0x14]
add ecx, dword [eax + 0x1c]
movsx eax, word [eax + 0x2a]
sub ecx, eax
mov dword [esp + 8], ecx
mov ebx, dword [edx + 4]
test ebx, ebx
je 0x5a27f4
mov ebp, dword [esp + 0x20]
movzx eax, byte [ebx + 0x11a]
test al, 1
jne 0x5a27f4
test al, 8
jne 0x5a29f4
lea esi, [esp + 8]
lea edx, [esp + 4]
movzx eax, byte [edi + 0x11a]
and eax, 2
shr eax, 1
push eax
push edx
push esi
push ebp
mov ecx, ebx
call fcn.005a2540
mov ecx, ebx
call fcn.004fa0d4
mov ebx, eax
test ebx, ebx
jne 0x5a29c2
jmp 0x5a27f4
push edi
push esi
push ebp
push ebx
sub esp, 0x10
mov ebx, ecx
mov eax, dword [ebx + 0x7f]
mov dword [esp + 0xc], eax
mov edx, dword [ebx + 0x83]
mov dword [esp + 8], edx
mov ebp, dword [ebx + 0x87]
mov esi, dword [ebx + 0x8b]
mov edi, dword [ebx + 0x73]
test edi, edi
je 0x5a2a6d
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x1c]
mov eax, dword [edx + 0xa]
cmp eax, 0x4e
je 0x5a2c90
cmp eax, 0x4d
je 0x5a2c90
movzx eax, byte [edi + 4]
add dword [esp + 0xc], eax
movzx edx, byte [edi + 5]
add dword [esp + 8], edx
movzx ecx, byte [edi + 6]
add ebp, ecx
movzx edi, byte [edi + 7]
add esi, edi
cmp dword [esp + 0x30], 0
je 0x5a2ad8
movzx eax, byte [ebx + 0x11a]
test al, 1
je 0x5a2aaf
mov edx, dword [ebx + 0x77]
mov eax, dword [esp + 0x2c]
mov edi, dword [eax]
sub edi, edx
push edx
push dword [ebx + 0x7b]
push edi
mov eax, dword [esp + 0x34]
push dword [eax]
mov ecx, dword [esp + 0x34]
call fcn.0054c2b0
mov dword [ebx + 0x3d], eax
mov eax, dword [ebx + 0x77]
mov edx, dword [esp + 0x2c]
sub dword [edx], eax
jmp 0x5a2b4e
push dword [ebx + 0x77]
push dword [ebx + 0x7b]
mov eax, dword [esp + 0x34]
push dword [eax]
mov edx, dword [esp + 0x34]
push dword [edx]
mov ecx, dword [esp + 0x34]
call fcn.0054c2b0
mov dword [ebx + 0x3d], eax
mov eax, dword [ebx + 0x77]
mov edx, dword [esp + 0x2c]
add dword [edx], eax
jmp 0x5a2b4e
movzx eax, byte [ebx + 0x11a]
test al, 1
je 0x5a2b10
mov edx, dword [ebx + 0x77]
mov eax, dword [esp + 0x2c]
mov edi, dword [eax]
sub edi, edx
push edx
push dword [ebx + 0x7b]
push edi
mov eax, dword [esp + 0x34]
push dword [eax]
mov ecx, dword [esp + 0x34]
call fcn.0054c2b0
mov dword [ebx + 0x3d], eax
mov eax, dword [ebx + 0x7b]
mov edx, dword [esp + 0x28]
add dword [edx], eax
jmp 0x5a2b4e
mov dword [esp], ebp
mov dword [esp + 4], esi
mov esi, dword [ebx + 0x7b]
mov ebp, dword [ebx + 0x77]
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
sub eax, esi
mov edx, dword [esp + 0x2c]
mov edi, dword [edx]
sub edi, ebp
push ebp
push esi
push edi
push eax
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
call fcn.0054c2b0
mov dword [ebx + 0x3d], eax
mov eax, dword [ebx + 0x7b]
mov edx, dword [esp + 0x28]
sub dword [edx], eax
mov ecx, dword [ebx + 0x3d]
mov eax, dword [esp + 0xc]
mov word [ecx + 0x24], ax
mov edx, dword [esp + 8]
mov word [ecx + 0x26], dx
mov word [ecx + 0x28], bp
mov word [ecx + 0x2a], si
call fcn.0054a61c
mov ecx, dword [ebx + 0x97]
test ecx, ecx
jle 0x5a2c80
mov ebp, dword [ebx + 0x3d]
movsx esi, word [ebp + 0x28]
mov edi, dword [ebp + 0x14]
add edi, esi
mov edx, dword [ebp + 0x18]
add edx, dword [ebp + 0x20]
movsx eax, word [ebp + 0x24]
sub edx, eax
mov eax, dword [ebp + 0x1c]
sub eax, esi
movsx ebp, word [ebp + 0x2a]
sub eax, ebp
sub edx, ecx
sub edx, dword [ebx + 0x9b]
push ecx
push eax
push edx
push edi
mov ecx, dword [esp + 0x34]
call fcn.0054c2b0
mov dword [ebx + 0x41], eax
mov edx, dword [ebx + 0x8f]
test edx, edx
jle 0x5a2c43
movsx ebp, word [eax + 0x28]
mov esi, dword [eax + 0x14]
add esi, ebp
mov edi, dword [eax + 0x18]
add edi, dword [eax + 0x20]
movsx ecx, word [eax + 0x24]
sub edi, ecx
movsx ecx, word [eax + 0x2a]
mov eax, dword [eax + 0x1c]
sub eax, ecx
sub eax, ebp
add edi, dword [ebx + 0x93]
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
sar edx, 1
push edx
push eax
push edi
push esi
mov ecx, dword [esp + 0x34]
call fcn.0054c2b0
mov dword [ebx + 0x45], eax
mov esi, dword [ebx + 0x41]
movsx ecx, word [esi + 0x28]
mov ebp, dword [esi + 0x14]
add ebp, ecx
movsx edx, word [esi + 0x26]
add edx, dword [esi + 0x18]
movsx edi, word [esi + 0x2a]
mov eax, dword [esi + 0x1c]
sub eax, edi
sub eax, ecx
mov esi, dword [ebx + 0x8f]
mov ecx, esi
shr ecx, 0x1f
add esi, ecx
sar esi, 1
sub edx, esi
push esi
push eax
push edx
push ebp
mov ecx, dword [esp + 0x34]
call fcn.0054c2b0
mov dword [ebx + 0x49], eax
mov ecx, dword [ebx + 0x93]
test ecx, ecx
jle 0x5a2c80
mov esi, dword [ebx + 0x41]
movsx ebp, word [esi + 0x28]
mov edi, dword [esi + 0x14]
add edi, ebp
mov edx, dword [esi + 0x18]
add edx, dword [esi + 0x20]
movsx eax, word [esi + 0x24]
sub edx, eax
movsx eax, word [esi + 0x2a]
mov esi, dword [esi + 0x1c]
sub esi, eax
sub esi, ebp
push ecx
push esi
push edx
push edi
mov ecx, dword [esp + 0x34]
call fcn.0054c2b0
mov dword [ebx + 0x4d], eax
cmp dword [ebx + 0x5d], 0
je 0x5a2cf6
add esp, 0x10
pop ebx
pop ebp
pop esi
pop edi
ret 0x10
movzx eax, byte [ebx + 0x11c]
test al, 0x40
je 0x5a2a6d
mov dword [esp], ebx
movzx ebx, byte [edi + 4]
xor ecx, ecx
mov dword [esp + 4], ecx
test ebx, ebx
mov eax, ecx
setne al
add dword [esp + 0xc], eax
movzx eax, byte [edi + 5]
xor edx, edx
mov dword [esp + 4], edx
test eax, eax
mov eax, edx
setne al
add dword [esp + 8], eax
movzx edx, byte [edi + 6]
xor eax, eax
mov dword [esp + 4], eax
test edx, edx
setne al
add ebp, eax
movzx edi, byte [edi + 7]
xor eax, eax
mov dword [esp + 4], eax
test edi, edi
setne al
add esi, eax
mov ebx, dword [esp]
jmp 0x5a2a6d
mov edx, dword [ebx + 0x51]
test edx, edx
je 0x5a2c86
movzx eax, byte [ebx + 0x11a]
test al, 2
je 0x5a2dd1
mov eax, dword [ebx + 0x3d]
movsx ecx, word [eax + 0x28]
add ecx, dword [eax + 0x14]
mov dword [esp + 4], ecx
mov esi, dword [eax + 0x18]
add esi, dword [eax + 0x20]
movsx ebp, word [eax + 0x24]
sub esi, ebp
mov dword [esp], esi
mov ebp, dword [edx]
test ebp, ebp
je 0x5a2d73
mov esi, dword [esp + 0x24]
movzx eax, byte [ebp + 0x11a]
test al, 1
je 0x5a2d6d
test al, 8
jne 0x5a2d60
lea edi, [esp + 4]
lea edx, [esp]
movzx eax, byte [ebx + 0x11a]
and eax, 2
shr eax, 1
push eax
push edx
push edi
push esi
mov ecx, ebp
call fcn.005a2540
mov ecx, ebp
call fcn.004fa084
mov ebp, eax
test ebp, ebp
jne 0x5a2d33
mov eax, dword [ebx + 0x3d]
mov edx, dword [ebx + 0x51]
movsx ecx, word [eax + 0x26]
add ecx, dword [eax + 0x18]
mov dword [esp + 8], ecx
mov ebp, dword [edx + 4]
test ebp, ebp
je 0x5a2c86
mov esi, dword [esp + 0x24]
movzx eax, byte [ebp + 0x11a]
test al, 1
jne 0x5a2c86
test al, 8
jne 0x5a2dbf
lea edi, [esp + 4]
lea edx, [esp + 8]
movzx eax, byte [ebx + 0x11a]
and eax, 2
shr eax, 1
push eax
push edx
push edi
push esi
mov ecx, ebp
call fcn.005a2540
mov ecx, ebp
call fcn.004fa0d4
mov ebp, eax
test ebp, ebp
jne 0x5a2d8d
jmp 0x5a2c86
mov eax, dword [ebx + 0x3d]
mov ebp, dword [eax + 0x18]
add ebp, dword [eax + 0x20]
movsx ecx, word [eax + 0x24]
sub ebp, ecx
mov dword [esp + 4], ebp
movsx esi, word [eax + 0x28]
add esi, dword [eax + 0x14]
mov dword [esp], esi
mov ebp, dword [edx]
test ebp, ebp
je 0x5a2e38
mov esi, dword [esp + 0x24]
movzx eax, byte [ebp + 0x11a]
test al, 1
je 0x5a2e32
test al, 8
jne 0x5a2e25
lea edi, [esp]
lea edx, [esp + 4]
movzx eax, byte [ebx + 0x11a]
and eax, 2
shr eax, 1
push eax
push edx
push edi
push esi
mov ecx, ebp
call fcn.005a2540
mov ecx, ebp
call fcn.004fa084
mov ebp, eax
test ebp, ebp
jne 0x5a2df8
mov eax, dword [ebx + 0x3d]
mov edx, dword [ebx + 0x51]
mov ecx, dword [eax + 0x14]
add ecx, dword [eax + 0x1c]
movsx eax, word [eax + 0x2a]
sub ecx, eax
mov dword [esp + 8], ecx
mov ebp, dword [edx + 4]
test ebp, ebp
je 0x5a2c86
mov esi, dword [esp + 0x24]
movzx eax, byte [ebp + 0x11a]
test al, 1
jne 0x5a2c86
test al, 8
jne 0x5a2e89
lea edi, [esp + 8]
lea edx, [esp + 4]
movzx eax, byte [ebx + 0x11a]
and eax, 2
shr eax, 1
push eax
push edx
push edi
push esi
mov ecx, ebp
call fcn.005a2540
mov ecx, ebp
call fcn.004fa0d4
mov ebp, eax
test ebp, ebp
jne 0x5a2e57
jmp 0x5a2c86