Function at 0x5a23b8
Capabilities:
Enumerate pe sections

Disassembly:
test dword [0x7eeab0], 0xffffff80
jne 0x5a23e0
test dword [0x7eeab0], 0xffffffff
jne 0x5a2824
call fcn.006a7fbc
jmp fcn.005a23b8
push edi
push esi
push ebp
push ebx
sub esp, 0xc
mov ebx, ecx
mov ebp, dword [ebx + 0x7f]
mov edx, dword [ebx + 0x83]
mov esi, dword [ebx + 0x87]
mov edi, dword [ebx + 0x8b]
mov ecx, dword [ebx + 0x73]
test ecx, ecx
je 0x5a2439
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0xa]
cmp eax, 0x4e
je 0x5a25c0
cmp eax, 0x4d
je 0x5a25c0
movzx eax, byte [ecx + 4]
add ebp, eax
movzx eax, byte [ecx + 5]
add edx, eax
movzx eax, byte [ecx + 6]
add esi, eax
movzx ecx, byte [ecx + 7]
add edi, ecx
cmp dword [esp + 0x2c], 0
je 0x5a24c2
movzx eax, byte [ebx + 0x11a]
test al, 1
je 0x5a248a
mov eax, dword [ebx + 0x77]
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
sub ecx, eax
add eax, dword [esp + 0x30]
push eax
push dword [ebx + 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 [ebx + 0x3d], eax
mov eax, dword [ebx + 0x77]
mov ecx, dword [esp + 0x28]
sub dword [ecx], eax
jmp 0x5a254f
mov eax, dword [ebx + 0x77]
add eax, dword [esp + 0x30]
push eax
push dword [ebx + 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 [ebx + 0x3d], eax
mov eax, dword [ebx + 0x77]
mov ecx, dword [esp + 0x28]
add dword [ecx], eax
jmp 0x5a254f
movzx eax, byte [ebx + 0x11a]
test al, 1
je 0x5a2505
mov eax, dword [ebx + 0x77]
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
sub ecx, eax
add eax, dword [esp + 0x30]
push eax
push dword [ebx + 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 [ebx + 0x3d], eax
mov eax, dword [ebx + 0x7b]
mov ecx, dword [esp + 0x24]
add dword [ecx], eax
jmp 0x5a254f
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov esi, dword [ebx + 0x7b]
mov edi, dword [ebx + 0x77]
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
sub eax, esi
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
sub ecx, edi
add edi, dword [esp + 0x30]
push edi
push esi
push ecx
push eax
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x10], edx
call fcn.0054c9ec
mov edx, dword [esp]
mov dword [ebx + 0x3d], eax
mov eax, dword [ebx + 0x7b]
mov ecx, dword [esp + 0x24]
sub dword [ecx], eax
mov ecx, dword [ebx + 0x3d]
add edx, dword [esp + 0x30]
mov word [ecx + 0x24], bp
mov word [ecx + 0x26], dx
mov word [ecx + 0x28], si
mov word [ecx + 0x2a], di
call fcn.0054ad58
mov ecx, dword [ebx + 0x97]
test ecx, ecx
jle 0x5a25b0
mov ebp, dword [ebx + 0x3d]
movsx esi, word [ebp + 0x28]
mov edi, dword [ebp + 0x14]
add edi, esi
mov edx, dword [ebp + 0x18]
sub edx, ecx
add edx, dword [ebp + 0x20]
movsx eax, word [ebp + 0x24]
sub edx, eax
sub edx, dword [ebx + 0x9b]
mov eax, dword [ebp + 0x1c]
sub eax, esi
movsx ebp, word [ebp + 0x2a]
sub eax, ebp
push ecx
push eax
push edx
push edi
mov ecx, dword [esp + 0x30]
call fcn.0054c9ec
mov dword [ebx + 0x41], eax
cmp dword [ebx + 0x5d], 0
je 0x5a2623
add esp, 0xc
pop ebx
pop ebp
pop esi
pop edi
ret 0x14
movzx eax, byte [ebx + 0x11c]
test al, 0x40
je 0x5a2439
mov dword [esp], ebx
movzx ebx, byte [ecx + 4]
mov eax, 1
cmp ebx, 0
mov ebx, 0
cmovne ebx, eax
add ebp, ebx
movzx ebx, byte [ecx + 5]
cmp ebx, 0
mov ebx, 0
cmovne ebx, eax
add edx, ebx
movzx ebx, byte [ecx + 6]
cmp ebx, 0
mov ebx, 0
cmovne ebx, eax
add esi, ebx
movzx ecx, byte [ecx + 7]
cmp ecx, 0
mov ecx, 0
cmovne ecx, eax
add edi, ecx
mov ebx, dword [esp]
jmp 0x5a2439
mov edx, dword [ebx + 0x51]
test edx, edx
je 0x5a25b6
movzx eax, byte [ebx + 0x11a]
test al, 2
je 0x5a272e
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 0x5a26b8
mov esi, dword [esp + 0x20]
movzx eax, byte [ebp + 0x11a]
test al, 1
je 0x5a26b2
test al, 8
jne 0x5a26a5
mov eax, dword [ebp + 0x29]
mov edx, dword [eax + 0x21]
movzx ecx, byte [edx + 0xd7]
test cl, 4
je 0x5a27fc
lea edi, [esp + 4]
lea edx, [esp]
movzx eax, byte [ebx + 0x11a]
and eax, 2
shr eax, 1
push 0
push eax
push edx
push edi
push esi
mov ecx, ebp
call fcn.005a23b8
mov ecx, ebp
call fcn.004fa640
mov ebp, eax
test ebp, ebp
jne 0x5a2660
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 0x5a25b6
mov esi, dword [esp + 0x20]
movzx eax, byte [ebp + 0x11a]
test al, 1
jne 0x5a25b6
test al, 8
jne 0x5a271c
mov eax, dword [ebp + 0x29]
mov edx, dword [eax + 0x21]
movzx ecx, byte [edx + 0xd7]
test cl, 4
je 0x5a2810
lea edi, [esp + 4]
lea edx, [esp + 8]
movzx eax, byte [ebx + 0x11a]
and eax, 2
shr eax, 1
push 0
push eax
push edx
push edi
push esi
mov ecx, ebp
call fcn.005a23b8
mov ecx, ebp
call fcn.004fa690
mov ebp, eax
test ebp, ebp
jne 0x5a26d2
jmp 0x5a25b6
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 0x5a2797
mov esi, dword [esp + 0x20]
movzx eax, byte [ebp + 0x11a]
test al, 1
je 0x5a2791
test al, 8
jne 0x5a2784
lea edi, [esp]
lea edx, [esp + 4]
movzx eax, byte [ebx + 0x11a]
and eax, 2
shr eax, 1
push 0
push eax
push edx
push edi
push esi
mov ecx, ebp
call fcn.005a23b8
mov ecx, ebp
call fcn.004fa640
mov ebp, eax
test ebp, ebp
jne 0x5a2755
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 0x5a25b6
mov esi, dword [esp + 0x20]
movzx eax, byte [ebp + 0x11a]
test al, 1
jne 0x5a25b6
test al, 8
jne 0x5a27ea
lea edi, [esp + 8]
lea edx, [esp + 4]
movzx eax, byte [ebx + 0x11a]
and eax, 2
shr eax, 1
push 0
push eax
push edx
push edi
push esi
mov ecx, ebp
call fcn.005a23b8
mov ecx, ebp
call fcn.004fa690
mov ebp, eax
test ebp, ebp
jne 0x5a27b6
jmp 0x5a25b6
movzx eax, byte [ebp + 0x11c]
test al, 0x10
je 0x5a2685
jmp 0x5a26a5
movzx eax, byte [ebp + 0x11c]
test al, 0x10
je 0x5a26fb
jmp 0x5a271c
push edi
push esi
push ebp
push ebx
sub esp, 0x10
mov ebx, ecx
mov eax, dword [ebx + 0x7f]
mov dword [esp + 8], eax
mov esi, dword [ebx + 0x83]
mov edi, dword [ebx + 0x87]
mov ebp, dword [ebx + 0x8b]
mov edx, dword [ebx + 0x73]
mov dword [esp + 0xc], edx
test edx, edx
je 0x5a288b
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x1c]
mov eax, dword [edx + 0xa]
cmp eax, 0x4e
je 0x5a29fa
cmp eax, 0x4d
je 0x5a29fa
mov eax, dword [esp + 0xc]
movzx edx, byte [eax + 4]
add dword [esp + 8], edx
movzx ecx, byte [eax + 5]
add esi, ecx
movzx edx, byte [eax + 6]
add edi, edx
movzx eax, byte [eax + 7]
add ebp, eax
cmp dword [esp + 0x30], 0
je 0x5a2902
movzx eax, byte [ebx + 0x11a]
test al, 1
je 0x5a28d1
mov edx, dword [ebx + 0x77]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
sub eax, edx
add edx, dword [esp + 0x34]
push edx
push dword [ebx + 0x7b]
push eax
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 0x5a2981
mov eax, dword [ebx + 0x77]
add eax, dword [esp + 0x34]
push eax
push dword [ebx + 0x7b]
mov edx, dword [esp + 0x34]
push dword [edx]
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]
add dword [edx], eax
jmp 0x5a2981
movzx eax, byte [ebx + 0x11a]
test al, 1
je 0x5a293e
mov edx, dword [ebx + 0x77]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
sub eax, edx
add edx, dword [esp + 0x34]
push edx
push dword [ebx + 0x7b]
push eax
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 0x5a2981
mov dword [esp], edi
mov dword [esp + 4], ebp
mov eax, dword [ebx + 0x7b]
mov edx, dword [ebx + 0x77]
mov ebp, dword [esp + 0x28]
mov ebp, dword [ebp]
sub ebp, eax
mov edi, dword [esp + 0x2c]
mov ecx, dword [edi]
sub ecx, edx
add edx, dword [esp + 0x34]
push edx
push eax
push ecx
push ebp
mov ecx, dword [esp + 0x34]
mov ebp, dword [esp + 0x14]
mov edi, 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]
add esi, dword [esp + 0x34]
mov eax, dword [esp + 8]
mov word [ecx + 0x24], ax
mov word [ecx + 0x26], si
mov word [ecx + 0x28], di
mov word [ecx + 0x2a], bp
call fcn.0054ad58
mov ecx, dword [ebx + 0x97]
test ecx, ecx
jle 0x5a29e6
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
cmp dword [ebx + 0x5d], 0
je 0x5a2a70
add esp, 0x10
pop ebx
pop ebp
pop esi
pop edi
ret 0x14
movzx eax, byte [ebx + 0x11c]
test al, 0x40
je 0x5a288b
mov dword [esp], ebx
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + 4]
xor ebx, ebx
mov dword [esp + 4], ebx
test eax, eax
mov eax, ebx
setne al
add dword [esp + 8], eax
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + 5]
xor ecx, ecx
mov dword [esp + 4], ecx
test eax, eax
mov eax, ecx
setne al
add esi, eax
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + 6]
xor edx, edx
mov dword [esp + 4], edx
test eax, eax
mov eax, edx
setne al
add edi, eax
mov eax, dword [esp + 0xc]
movzx edx, byte [eax + 7]
xor eax, eax
mov dword [esp + 4], eax
test edx, edx
setne al
add ebp, eax
mov ebx, dword [esp]
jmp 0x5a288b
mov edx, dword [ebx + 0x51]
test edx, edx
je 0x5a29f0
movzx eax, byte [ebx + 0x11a]
test al, 2
je 0x5a2b7f
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 0x5a2b09
mov esi, dword [esp + 0x24]
movzx eax, byte [ebp + 0x11a]
test al, 1
je 0x5a2b03
test al, 8
jne 0x5a2af6
mov eax, dword [ebp + 0x29]
mov edx, dword [eax + 0x21]
movzx ecx, byte [edx + 0xd7]
test cl, 4
je 0x5a2c4d
lea edi, [esp + 4]
lea edx, [esp]
movzx eax, byte [ebx + 0x11a]
and eax, 2
shr eax, 1
push 0
push eax
push edx
push edi
push esi
mov ecx, ebp
call fcn.005a23b8
mov ecx, ebp
call fcn.004fa640
mov ebp, eax
test ebp, ebp
jne 0x5a2ab1
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 0x5a29f0
mov esi, dword [esp + 0x24]
movzx eax, byte [ebp + 0x11a]
test al, 1
jne 0x5a29f0
test al, 8
jne 0x5a2b6d
mov eax, dword [ebp + 0x29]
mov edx, dword [eax + 0x21]
movzx ecx, byte [edx + 0xd7]
test cl, 4
je 0x5a2c61
lea edi, [esp + 4]
lea edx, [esp + 8]
movzx eax, byte [ebx + 0x11a]
and eax, 2
shr eax, 1
push 0
push eax
push edx
push edi
push esi
mov ecx, ebp
call fcn.005a23b8
mov ecx, ebp
call fcn.004fa690
mov ebp, eax
test ebp, ebp
jne 0x5a2b23
jmp 0x5a29f0
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 0x5a2be8
mov esi, dword [esp + 0x24]
movzx eax, byte [ebp + 0x11a]
test al, 1
je 0x5a2be2
test al, 8
jne 0x5a2bd5
lea edi, [esp]
lea edx, [esp + 4]
movzx eax, byte [ebx + 0x11a]
and eax, 2
shr eax, 1
push 0
push eax
push edx
push edi
push esi
mov ecx, ebp
call fcn.005a23b8
mov ecx, ebp
call fcn.004fa640
mov ebp, eax
test ebp, ebp
jne 0x5a2ba6
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 0x5a29f0
mov esi, dword [esp + 0x24]
movzx eax, byte [ebp + 0x11a]
test al, 1
jne 0x5a29f0
test al, 8
jne 0x5a2c3b
lea edi, [esp + 8]
lea edx, [esp + 4]
movzx eax, byte [ebx + 0x11a]
and eax, 2
shr eax, 1
push 0
push eax
push edx
push edi
push esi
mov ecx, ebp
call fcn.005a23b8
mov ecx, ebp
call fcn.004fa690
mov ebp, eax
test ebp, ebp
jne 0x5a2c07
jmp 0x5a29f0
movzx eax, byte [ebp + 0x11c]
test al, 0x10
je 0x5a2ad6
jmp 0x5a2af6
movzx eax, byte [ebp + 0x11c]
test al, 0x10
je 0x5a2b4c
jmp 0x5a2b6d