Function at 0x5a1f4c
Capabilities:
Enumerate pe sections

Disassembly:
test dword [0x7eeab0], 0xffffff80
jne 0x5a1f74
test dword [0x7eeab0], 0xffffffff
jne 0x5a23b8
call fcn.006a7b4c
jmp fcn.005a1f4c
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 0x5a1fcd
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0xa]
cmp eax, 0x4e
je 0x5a2154
cmp eax, 0x4d
je 0x5a2154
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 0x5a2056
movzx eax, byte [ebx + 0x11a]
test al, 1
je 0x5a201e
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.0054c55c
mov edx, dword [esp]
mov dword [ebx + 0x3d], eax
mov eax, dword [ebx + 0x77]
mov ecx, dword [esp + 0x28]
sub dword [ecx], eax
jmp 0x5a20e3
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.0054c55c
mov edx, dword [esp]
mov dword [ebx + 0x3d], eax
mov eax, dword [ebx + 0x77]
mov ecx, dword [esp + 0x28]
add dword [ecx], eax
jmp 0x5a20e3
movzx eax, byte [ebx + 0x11a]
test al, 1
je 0x5a2099
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.0054c55c
mov edx, dword [esp]
mov dword [ebx + 0x3d], eax
mov eax, dword [ebx + 0x7b]
mov ecx, dword [esp + 0x24]
add dword [ecx], eax
jmp 0x5a20e3
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.0054c55c
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.0054a8c8
mov ecx, dword [ebx + 0x97]
test ecx, ecx
jle 0x5a2144
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.0054c55c
mov dword [ebx + 0x41], eax
cmp dword [ebx + 0x5d], 0
je 0x5a21b7
add esp, 0xc
pop ebx
pop ebp
pop esi
pop edi
ret 0x14
movzx eax, byte [ebx + 0x11c]
test al, 0x40
je 0x5a1fcd
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 0x5a1fcd
mov edx, dword [ebx + 0x51]
test edx, edx
je 0x5a214a
movzx eax, byte [ebx + 0x11a]
test al, 2
je 0x5a22c2
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 0x5a224c
mov esi, dword [esp + 0x20]
movzx eax, byte [ebp + 0x11a]
test al, 1
je 0x5a2246
test al, 8
jne 0x5a2239
mov eax, dword [ebp + 0x29]
mov edx, dword [eax + 0x21]
movzx ecx, byte [edx + 0xd7]
test cl, 4
je 0x5a2390
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.005a1f4c
mov ecx, ebp
call fcn.004fa1a4
mov ebp, eax
test ebp, ebp
jne 0x5a21f4
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 0x5a214a
mov esi, dword [esp + 0x20]
movzx eax, byte [ebp + 0x11a]
test al, 1
jne 0x5a214a
test al, 8
jne 0x5a22b0
mov eax, dword [ebp + 0x29]
mov edx, dword [eax + 0x21]
movzx ecx, byte [edx + 0xd7]
test cl, 4
je 0x5a23a4
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.005a1f4c
mov ecx, ebp
call fcn.004fa1f4
mov ebp, eax
test ebp, ebp
jne 0x5a2266
jmp 0x5a214a
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 0x5a232b
mov esi, dword [esp + 0x20]
movzx eax, byte [ebp + 0x11a]
test al, 1
je 0x5a2325
test al, 8
jne 0x5a2318
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.005a1f4c
mov ecx, ebp
call fcn.004fa1a4
mov ebp, eax
test ebp, ebp
jne 0x5a22e9
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 0x5a214a
mov esi, dword [esp + 0x20]
movzx eax, byte [ebp + 0x11a]
test al, 1
jne 0x5a214a
test al, 8
jne 0x5a237e
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.005a1f4c
mov ecx, ebp
call fcn.004fa1f4
mov ebp, eax
test ebp, ebp
jne 0x5a234a
jmp 0x5a214a
movzx eax, byte [ebp + 0x11c]
test al, 0x10
je 0x5a2219
jmp 0x5a2239
movzx eax, byte [ebp + 0x11c]
test al, 0x10
je 0x5a228f
jmp 0x5a22b0
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 0x5a241f
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x1c]
mov eax, dword [edx + 0xa]
cmp eax, 0x4e
je 0x5a258e
cmp eax, 0x4d
je 0x5a258e
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 0x5a2496
movzx eax, byte [ebx + 0x11a]
test al, 1
je 0x5a2465
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.0054c55c
mov dword [ebx + 0x3d], eax
mov eax, dword [ebx + 0x77]
mov edx, dword [esp + 0x2c]
sub dword [edx], eax
jmp 0x5a2515
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.0054c55c
mov dword [ebx + 0x3d], eax
mov eax, dword [ebx + 0x77]
mov edx, dword [esp + 0x2c]
add dword [edx], eax
jmp 0x5a2515
movzx eax, byte [ebx + 0x11a]
test al, 1
je 0x5a24d2
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.0054c55c
mov dword [ebx + 0x3d], eax
mov eax, dword [ebx + 0x7b]
mov edx, dword [esp + 0x28]
add dword [edx], eax
jmp 0x5a2515
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.0054c55c
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.0054a8c8
mov ecx, dword [ebx + 0x97]
test ecx, ecx
jle 0x5a257a
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.0054c55c
mov dword [ebx + 0x41], eax
cmp dword [ebx + 0x5d], 0
je 0x5a2604
add esp, 0x10
pop ebx
pop ebp
pop esi
pop edi
ret 0x14
movzx eax, byte [ebx + 0x11c]
test al, 0x40
je 0x5a241f
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 0x5a241f
mov edx, dword [ebx + 0x51]
test edx, edx
je 0x5a2584
movzx eax, byte [ebx + 0x11a]
test al, 2
je 0x5a2713
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 0x5a269d
mov esi, dword [esp + 0x24]
movzx eax, byte [ebp + 0x11a]
test al, 1
je 0x5a2697
test al, 8
jne 0x5a268a
mov eax, dword [ebp + 0x29]
mov edx, dword [eax + 0x21]
movzx ecx, byte [edx + 0xd7]
test cl, 4
je 0x5a27e1
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.005a1f4c
mov ecx, ebp
call fcn.004fa1a4
mov ebp, eax
test ebp, ebp
jne 0x5a2645
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 0x5a2584
mov esi, dword [esp + 0x24]
movzx eax, byte [ebp + 0x11a]
test al, 1
jne 0x5a2584
test al, 8
jne 0x5a2701
mov eax, dword [ebp + 0x29]
mov edx, dword [eax + 0x21]
movzx ecx, byte [edx + 0xd7]
test cl, 4
je 0x5a27f5
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.005a1f4c
mov ecx, ebp
call fcn.004fa1f4
mov ebp, eax
test ebp, ebp
jne 0x5a26b7
jmp 0x5a2584
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 0x5a277c
mov esi, dword [esp + 0x24]
movzx eax, byte [ebp + 0x11a]
test al, 1
je 0x5a2776
test al, 8
jne 0x5a2769
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.005a1f4c
mov ecx, ebp
call fcn.004fa1a4
mov ebp, eax
test ebp, ebp
jne 0x5a273a
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 0x5a2584
mov esi, dword [esp + 0x24]
movzx eax, byte [ebp + 0x11a]
test al, 1
jne 0x5a2584
test al, 8
jne 0x5a27cf
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.005a1f4c
mov ecx, ebp
call fcn.004fa1f4
mov ebp, eax
test ebp, ebp
jne 0x5a279b
jmp 0x5a2584
movzx eax, byte [ebp + 0x11c]
test al, 0x10
je 0x5a266a
jmp 0x5a268a
movzx eax, byte [ebp + 0x11c]
test al, 0x10
je 0x5a26e0
jmp 0x5a2701