Function at 0x5a280c
Capabilities:
Enumerate pe sections

Disassembly:
test dword [0x7eeab0], 0xffffff80
jne 0x5a2834
test dword [0x7eeab0], 0xffffffff
jne 0x5a2cd4
call fcn.006a7b4c
jmp fcn.005a280c
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 0x5a288d
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0xa]
cmp eax, 0x4e
je 0x5a2aca
cmp eax, 0x4d
je 0x5a2aca
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 0x5a2909
movzx eax, byte [edi + 0x11a]
test al, 1
je 0x5a28d6
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.0054c55c
mov edx, dword [esp]
mov dword [edi + 0x3d], eax
mov eax, dword [edi + 0x77]
mov ecx, dword [esp + 0x28]
sub dword [ecx], eax
jmp 0x5a298e
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.0054c55c
mov edx, dword [esp]
mov dword [edi + 0x3d], eax
mov eax, dword [edi + 0x77]
mov ecx, dword [esp + 0x28]
add dword [ecx], eax
jmp 0x5a298e
movzx eax, byte [edi + 0x11a]
test al, 1
je 0x5a2948
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.0054c55c
mov edx, dword [esp]
mov dword [edi + 0x3d], eax
mov eax, dword [edi + 0x7b]
mov ecx, dword [esp + 0x24]
add dword [ecx], eax
jmp 0x5a298e
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.0054c55c
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.0054a8c8
mov ecx, dword [edi + 0x97]
test ecx, ecx
jle 0x5a2aba
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.0054c55c
mov dword [edi + 0x41], eax
mov edx, dword [edi + 0x8f]
test edx, edx
jle 0x5a2a7d
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.0054c55c
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.0054c55c
mov dword [edi + 0x49], eax
mov ecx, dword [edi + 0x93]
test ecx, ecx
jle 0x5a2aba
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.0054c55c
mov dword [edi + 0x4d], eax
cmp dword [edi + 0x5d], 0
je 0x5a2b2d
add esp, 0xc
pop ebx
pop ebp
pop esi
pop edi
ret 0x10
movzx eax, byte [edi + 0x11c]
test al, 0x40
je 0x5a288d
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 0x5a288d
mov edx, dword [edi + 0x51]
test edx, edx
je 0x5a2ac0
movzx eax, byte [edi + 0x11a]
test al, 2
je 0x5a2c08
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 0x5a2baa
mov ebp, dword [esp + 0x20]
movzx eax, byte [ebx + 0x11a]
test al, 1
je 0x5a2ba4
test al, 8
jne 0x5a2b97
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.005a280c
mov ecx, ebx
call fcn.004fa1a4
mov ebx, eax
test ebx, ebx
jne 0x5a2b6a
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 0x5a2ac0
mov ebp, dword [esp + 0x20]
movzx eax, byte [ebx + 0x11a]
test al, 1
jne 0x5a2ac0
test al, 8
jne 0x5a2bf6
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.005a280c
mov ecx, ebx
call fcn.004fa1f4
mov ebx, eax
test ebx, ebx
jne 0x5a2bc4
jmp 0x5a2ac0
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 0x5a2c6f
mov ebp, dword [esp + 0x20]
movzx eax, byte [ebx + 0x11a]
test al, 1
je 0x5a2c69
test al, 8
jne 0x5a2c5c
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.005a280c
mov ecx, ebx
call fcn.004fa1a4
mov ebx, eax
test ebx, ebx
jne 0x5a2c2f
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 0x5a2ac0
mov ebp, dword [esp + 0x20]
movzx eax, byte [ebx + 0x11a]
test al, 1
jne 0x5a2ac0
test al, 8
jne 0x5a2cc0
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.005a280c
mov ecx, ebx
call fcn.004fa1f4
mov ebx, eax
test ebx, ebx
jne 0x5a2c8e
jmp 0x5a2ac0
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 0x5a2d39
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x1c]
mov eax, dword [edx + 0xa]
cmp eax, 0x4e
je 0x5a2f5c
cmp eax, 0x4d
je 0x5a2f5c
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 0x5a2da4
movzx eax, byte [ebx + 0x11a]
test al, 1
je 0x5a2d7b
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.0054c55c
mov dword [ebx + 0x3d], eax
mov eax, dword [ebx + 0x77]
mov edx, dword [esp + 0x2c]
sub dword [edx], eax
jmp 0x5a2e1a
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.0054c55c
mov dword [ebx + 0x3d], eax
mov eax, dword [ebx + 0x77]
mov edx, dword [esp + 0x2c]
add dword [edx], eax
jmp 0x5a2e1a
movzx eax, byte [ebx + 0x11a]
test al, 1
je 0x5a2ddc
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.0054c55c
mov dword [ebx + 0x3d], eax
mov eax, dword [ebx + 0x7b]
mov edx, dword [esp + 0x28]
add dword [edx], eax
jmp 0x5a2e1a
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.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]
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.0054a8c8
mov ecx, dword [ebx + 0x97]
test ecx, ecx
jle 0x5a2f4c
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
mov edx, dword [ebx + 0x8f]
test edx, edx
jle 0x5a2f0f
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.0054c55c
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.0054c55c
mov dword [ebx + 0x49], eax
mov ecx, dword [ebx + 0x93]
test ecx, ecx
jle 0x5a2f4c
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.0054c55c
mov dword [ebx + 0x4d], eax
cmp dword [ebx + 0x5d], 0
je 0x5a2fc2
add esp, 0x10
pop ebx
pop ebp
pop esi
pop edi
ret 0x10
movzx eax, byte [ebx + 0x11c]
test al, 0x40
je 0x5a2d39
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 0x5a2d39
mov edx, dword [ebx + 0x51]
test edx, edx
je 0x5a2f52
movzx eax, byte [ebx + 0x11a]
test al, 2
je 0x5a309d
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 0x5a303f
mov esi, dword [esp + 0x24]
movzx eax, byte [ebp + 0x11a]
test al, 1
je 0x5a3039
test al, 8
jne 0x5a302c
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.005a280c
mov ecx, ebp
call fcn.004fa1a4
mov ebp, eax
test ebp, ebp
jne 0x5a2fff
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 0x5a2f52
mov esi, dword [esp + 0x24]
movzx eax, byte [ebp + 0x11a]
test al, 1
jne 0x5a2f52
test al, 8
jne 0x5a308b
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.005a280c
mov ecx, ebp
call fcn.004fa1f4
mov ebp, eax
test ebp, ebp
jne 0x5a3059
jmp 0x5a2f52
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 0x5a3104
mov esi, dword [esp + 0x24]
movzx eax, byte [ebp + 0x11a]
test al, 1
je 0x5a30fe
test al, 8
jne 0x5a30f1
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.005a280c
mov ecx, ebp
call fcn.004fa1a4
mov ebp, eax
test ebp, ebp
jne 0x5a30c4
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 0x5a2f52
mov esi, dword [esp + 0x24]
movzx eax, byte [ebp + 0x11a]
test al, 1
jne 0x5a2f52
test al, 8
jne 0x5a3155
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.005a280c
mov ecx, ebp
call fcn.004fa1f4
mov ebp, eax
test ebp, ebp
jne 0x5a3123
jmp 0x5a2f52