Function at 0x5a1c80
Capabilities:
Enumerate pe sections

Disassembly:
test dword [0x7eda90], 0xffffff80
jne 0x5a1ca8
test dword [0x7eda90], 0xffffffff
jne 0x5a20ec
call fcn.006a6b5c
jmp fcn.005a1c80
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 0x5a1d01
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0xa]
cmp eax, 0x4e
je 0x5a1e88
cmp eax, 0x4d
je 0x5a1e88
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 0x5a1d8a
movzx eax, byte [ebx + 0x11a]
test al, 1
je 0x5a1d52
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.0054c2b0
mov edx, dword [esp]
mov dword [ebx + 0x3d], eax
mov eax, dword [ebx + 0x77]
mov ecx, dword [esp + 0x28]
sub dword [ecx], eax
jmp 0x5a1e17
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.0054c2b0
mov edx, dword [esp]
mov dword [ebx + 0x3d], eax
mov eax, dword [ebx + 0x77]
mov ecx, dword [esp + 0x28]
add dword [ecx], eax
jmp 0x5a1e17
movzx eax, byte [ebx + 0x11a]
test al, 1
je 0x5a1dcd
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.0054c2b0
mov edx, dword [esp]
mov dword [ebx + 0x3d], eax
mov eax, dword [ebx + 0x7b]
mov ecx, dword [esp + 0x24]
add dword [ecx], eax
jmp 0x5a1e17
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.0054c2b0
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.0054a61c
mov ecx, dword [ebx + 0x97]
test ecx, ecx
jle 0x5a1e78
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.0054c2b0
mov dword [ebx + 0x41], eax
cmp dword [ebx + 0x5d], 0
je 0x5a1eeb
add esp, 0xc
pop ebx
pop ebp
pop esi
pop edi
ret 0x14
movzx eax, byte [ebx + 0x11c]
test al, 0x40
je 0x5a1d01
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 0x5a1d01
mov edx, dword [ebx + 0x51]
test edx, edx
je 0x5a1e7e
movzx eax, byte [ebx + 0x11a]
test al, 2
je 0x5a1ff6
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 0x5a1f80
mov esi, dword [esp + 0x20]
movzx eax, byte [ebp + 0x11a]
test al, 1
je 0x5a1f7a
test al, 8
jne 0x5a1f6d
mov eax, dword [ebp + 0x29]
mov edx, dword [eax + 0x21]
movzx ecx, byte [edx + 0xd7]
test cl, 4
je 0x5a20c4
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.005a1c80
mov ecx, ebp
call fcn.004fa084
mov ebp, eax
test ebp, ebp
jne 0x5a1f28
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 0x5a1e7e
mov esi, dword [esp + 0x20]
movzx eax, byte [ebp + 0x11a]
test al, 1
jne 0x5a1e7e
test al, 8
jne 0x5a1fe4
mov eax, dword [ebp + 0x29]
mov edx, dword [eax + 0x21]
movzx ecx, byte [edx + 0xd7]
test cl, 4
je 0x5a20d8
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.005a1c80
mov ecx, ebp
call fcn.004fa0d4
mov ebp, eax
test ebp, ebp
jne 0x5a1f9a
jmp 0x5a1e7e
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 0x5a205f
mov esi, dword [esp + 0x20]
movzx eax, byte [ebp + 0x11a]
test al, 1
je 0x5a2059
test al, 8
jne 0x5a204c
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.005a1c80
mov ecx, ebp
call fcn.004fa084
mov ebp, eax
test ebp, ebp
jne 0x5a201d
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 0x5a1e7e
mov esi, dword [esp + 0x20]
movzx eax, byte [ebp + 0x11a]
test al, 1
jne 0x5a1e7e
test al, 8
jne 0x5a20b2
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.005a1c80
mov ecx, ebp
call fcn.004fa0d4
mov ebp, eax
test ebp, ebp
jne 0x5a207e
jmp 0x5a1e7e
movzx eax, byte [ebp + 0x11c]
test al, 0x10
je 0x5a1f4d
jmp 0x5a1f6d
movzx eax, byte [ebp + 0x11c]
test al, 0x10
je 0x5a1fc3
jmp 0x5a1fe4
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 0x5a2153
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x1c]
mov eax, dword [edx + 0xa]
cmp eax, 0x4e
je 0x5a22c2
cmp eax, 0x4d
je 0x5a22c2
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 0x5a21ca
movzx eax, byte [ebx + 0x11a]
test al, 1
je 0x5a2199
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.0054c2b0
mov dword [ebx + 0x3d], eax
mov eax, dword [ebx + 0x77]
mov edx, dword [esp + 0x2c]
sub dword [edx], eax
jmp 0x5a2249
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.0054c2b0
mov dword [ebx + 0x3d], eax
mov eax, dword [ebx + 0x77]
mov edx, dword [esp + 0x2c]
add dword [edx], eax
jmp 0x5a2249
movzx eax, byte [ebx + 0x11a]
test al, 1
je 0x5a2206
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.0054c2b0
mov dword [ebx + 0x3d], eax
mov eax, dword [ebx + 0x7b]
mov edx, dword [esp + 0x28]
add dword [edx], eax
jmp 0x5a2249
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.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]
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.0054a61c
mov ecx, dword [ebx + 0x97]
test ecx, ecx
jle 0x5a22ae
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
cmp dword [ebx + 0x5d], 0
je 0x5a2338
add esp, 0x10
pop ebx
pop ebp
pop esi
pop edi
ret 0x14
movzx eax, byte [ebx + 0x11c]
test al, 0x40
je 0x5a2153
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 0x5a2153
mov edx, dword [ebx + 0x51]
test edx, edx
je 0x5a22b8
movzx eax, byte [ebx + 0x11a]
test al, 2
je 0x5a2447
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 0x5a23d1
mov esi, dword [esp + 0x24]
movzx eax, byte [ebp + 0x11a]
test al, 1
je 0x5a23cb
test al, 8
jne 0x5a23be
mov eax, dword [ebp + 0x29]
mov edx, dword [eax + 0x21]
movzx ecx, byte [edx + 0xd7]
test cl, 4
je 0x5a2515
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.005a1c80
mov ecx, ebp
call fcn.004fa084
mov ebp, eax
test ebp, ebp
jne 0x5a2379
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 0x5a22b8
mov esi, dword [esp + 0x24]
movzx eax, byte [ebp + 0x11a]
test al, 1
jne 0x5a22b8
test al, 8
jne 0x5a2435
mov eax, dword [ebp + 0x29]
mov edx, dword [eax + 0x21]
movzx ecx, byte [edx + 0xd7]
test cl, 4
je 0x5a2529
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.005a1c80
mov ecx, ebp
call fcn.004fa0d4
mov ebp, eax
test ebp, ebp
jne 0x5a23eb
jmp 0x5a22b8
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 0x5a24b0
mov esi, dword [esp + 0x24]
movzx eax, byte [ebp + 0x11a]
test al, 1
je 0x5a24aa
test al, 8
jne 0x5a249d
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.005a1c80
mov ecx, ebp
call fcn.004fa084
mov ebp, eax
test ebp, ebp
jne 0x5a246e
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 0x5a22b8
mov esi, dword [esp + 0x24]
movzx eax, byte [ebp + 0x11a]
test al, 1
jne 0x5a22b8
test al, 8
jne 0x5a2503
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.005a1c80
mov ecx, ebp
call fcn.004fa0d4
mov ebp, eax
test ebp, ebp
jne 0x5a24cf
jmp 0x5a22b8
movzx eax, byte [ebp + 0x11c]
test al, 0x10
je 0x5a239e
jmp 0x5a23be
movzx eax, byte [ebp + 0x11c]
test al, 0x10
je 0x5a2414
jmp 0x5a2435