Function at 0x5a2c78
Capabilities:
Enumerate pe sections

Disassembly:
test dword [0x7eeab0], 0xffffff80
jne 0x5a2ca0
test dword [0x7eeab0], 0xffffffff
jne 0x5a3140
call fcn.006a7fbc
jmp fcn.005a2c78
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 0x5a2cf9
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0xa]
cmp eax, 0x4e
je 0x5a2f36
cmp eax, 0x4d
je 0x5a2f36
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 0x5a2d75
movzx eax, byte [edi + 0x11a]
test al, 1
je 0x5a2d42
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.0054c9ec
mov edx, dword [esp]
mov dword [edi + 0x3d], eax
mov eax, dword [edi + 0x77]
mov ecx, dword [esp + 0x28]
sub dword [ecx], eax
jmp 0x5a2dfa
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.0054c9ec
mov edx, dword [esp]
mov dword [edi + 0x3d], eax
mov eax, dword [edi + 0x77]
mov ecx, dword [esp + 0x28]
add dword [ecx], eax
jmp 0x5a2dfa
movzx eax, byte [edi + 0x11a]
test al, 1
je 0x5a2db4
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.0054c9ec
mov edx, dword [esp]
mov dword [edi + 0x3d], eax
mov eax, dword [edi + 0x7b]
mov ecx, dword [esp + 0x24]
add dword [ecx], eax
jmp 0x5a2dfa
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.0054c9ec
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.0054ad58
mov ecx, dword [edi + 0x97]
test ecx, ecx
jle 0x5a2f26
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.0054c9ec
mov dword [edi + 0x41], eax
mov edx, dword [edi + 0x8f]
test edx, edx
jle 0x5a2ee9
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.0054c9ec
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.0054c9ec
mov dword [edi + 0x49], eax
mov ecx, dword [edi + 0x93]
test ecx, ecx
jle 0x5a2f26
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.0054c9ec
mov dword [edi + 0x4d], eax
cmp dword [edi + 0x5d], 0
je 0x5a2f99
add esp, 0xc
pop ebx
pop ebp
pop esi
pop edi
ret 0x10
movzx eax, byte [edi + 0x11c]
test al, 0x40
je 0x5a2cf9
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 0x5a2cf9
mov edx, dword [edi + 0x51]
test edx, edx
je 0x5a2f2c
movzx eax, byte [edi + 0x11a]
test al, 2
je 0x5a3074
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 0x5a3016
mov ebp, dword [esp + 0x20]
movzx eax, byte [ebx + 0x11a]
test al, 1
je 0x5a3010
test al, 8
jne 0x5a3003
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.005a2c78
mov ecx, ebx
call fcn.004fa640
mov ebx, eax
test ebx, ebx
jne 0x5a2fd6
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 0x5a2f2c
mov ebp, dword [esp + 0x20]
movzx eax, byte [ebx + 0x11a]
test al, 1
jne 0x5a2f2c
test al, 8
jne 0x5a3062
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.005a2c78
mov ecx, ebx
call fcn.004fa690
mov ebx, eax
test ebx, ebx
jne 0x5a3030
jmp 0x5a2f2c
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 0x5a30db
mov ebp, dword [esp + 0x20]
movzx eax, byte [ebx + 0x11a]
test al, 1
je 0x5a30d5
test al, 8
jne 0x5a30c8
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.005a2c78
mov ecx, ebx
call fcn.004fa640
mov ebx, eax
test ebx, ebx
jne 0x5a309b
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 0x5a2f2c
mov ebp, dword [esp + 0x20]
movzx eax, byte [ebx + 0x11a]
test al, 1
jne 0x5a2f2c
test al, 8
jne 0x5a312c
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.005a2c78
mov ecx, ebx
call fcn.004fa690
mov ebx, eax
test ebx, ebx
jne 0x5a30fa
jmp 0x5a2f2c
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 0x5a31a5
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x1c]
mov eax, dword [edx + 0xa]
cmp eax, 0x4e
je 0x5a33c8
cmp eax, 0x4d
je 0x5a33c8
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 0x5a3210
movzx eax, byte [ebx + 0x11a]
test al, 1
je 0x5a31e7
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.0054c9ec
mov dword [ebx + 0x3d], eax
mov eax, dword [ebx + 0x77]
mov edx, dword [esp + 0x2c]
sub dword [edx], eax
jmp 0x5a3286
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.0054c9ec
mov dword [ebx + 0x3d], eax
mov eax, dword [ebx + 0x77]
mov edx, dword [esp + 0x2c]
add dword [edx], eax
jmp 0x5a3286
movzx eax, byte [ebx + 0x11a]
test al, 1
je 0x5a3248
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.0054c9ec
mov dword [ebx + 0x3d], eax
mov eax, dword [ebx + 0x7b]
mov edx, dword [esp + 0x28]
add dword [edx], eax
jmp 0x5a3286
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.0054c9ec
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.0054ad58
mov ecx, dword [ebx + 0x97]
test ecx, ecx
jle 0x5a33b8
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.0054c9ec
mov dword [ebx + 0x41], eax
mov edx, dword [ebx + 0x8f]
test edx, edx
jle 0x5a337b
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.0054c9ec
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.0054c9ec
mov dword [ebx + 0x49], eax
mov ecx, dword [ebx + 0x93]
test ecx, ecx
jle 0x5a33b8
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.0054c9ec
mov dword [ebx + 0x4d], eax
cmp dword [ebx + 0x5d], 0
je 0x5a342e
add esp, 0x10
pop ebx
pop ebp
pop esi
pop edi
ret 0x10
movzx eax, byte [ebx + 0x11c]
test al, 0x40
je 0x5a31a5
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 0x5a31a5
mov edx, dword [ebx + 0x51]
test edx, edx
je 0x5a33be
movzx eax, byte [ebx + 0x11a]
test al, 2
je 0x5a3509
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 0x5a34ab
mov esi, dword [esp + 0x24]
movzx eax, byte [ebp + 0x11a]
test al, 1
je 0x5a34a5
test al, 8
jne 0x5a3498
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.005a2c78
mov ecx, ebp
call fcn.004fa640
mov ebp, eax
test ebp, ebp
jne 0x5a346b
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 0x5a33be
mov esi, dword [esp + 0x24]
movzx eax, byte [ebp + 0x11a]
test al, 1
jne 0x5a33be
test al, 8
jne 0x5a34f7
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.005a2c78
mov ecx, ebp
call fcn.004fa690
mov ebp, eax
test ebp, ebp
jne 0x5a34c5
jmp 0x5a33be
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 0x5a3570
mov esi, dword [esp + 0x24]
movzx eax, byte [ebp + 0x11a]
test al, 1
je 0x5a356a
test al, 8
jne 0x5a355d
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.005a2c78
mov ecx, ebp
call fcn.004fa640
mov ebp, eax
test ebp, ebp
jne 0x5a3530
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 0x5a33be
mov esi, dword [esp + 0x24]
movzx eax, byte [ebp + 0x11a]
test al, 1
jne 0x5a33be
test al, 8
jne 0x5a35c1
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.005a2c78
mov ecx, ebp
call fcn.004fa690
mov ebp, eax
test ebp, ebp
jne 0x5a358f
jmp 0x5a33be