Function at 0x572ab0
Capabilities:
Enumerate pe sections

Disassembly:
test dword [0x87ed4c], 0xfffff000
jne 0x572ae0
test dword [0x87ed4c], 0xffffffff
jne 0x573260
call fcn.007663a0
jmp fcn.00572ab0
push edi
push esi
push ebp
push ebx
sub esp, 0x34
mov edi, edx
mov esi, eax
mov dword [esp + 0x24], ecx
test edi, edi
je 0x57324d
test esi, esi
je 0x572b51
movzx eax, byte [esi + 0x1e]
test eax, eax
jne 0x57324d
movzx eax, byte [esi + 0xe2]
test eax, eax
je 0x572b51
movzx eax, word [esi + 0xe0]
cmp eax, 0x44
jl 0x572b51
mov ebp, dword [esi + 0xec]
test ebp, ebp
je 0x572b51
mov eax, dword [ebp]
mov edx, dword [esi + 0xe4]
mov ecx, dword [esi + 0xe8]
mov dword [esi + 0xec], eax
inc edx
cmp edx, ecx
cmovge ecx, edx
mov dword [esi + 0xe4], edx
mov dword [esi + 0xe8], ecx
jmp 0x572b65
mov eax, 0x44
call fcn.0041ebd4
mov ebp, eax
test ebp, ebp
je 0x57323c
test ebp, ebp
je 0x57324d
mov ebx, dword [edi]
test ebx, ebx
je 0x572d40
test esi, esi
je 0x572bd0
movzx eax, byte [esi + 0x1e]
test eax, eax
jne 0x572d40
movzx eax, byte [esi + 0xe2]
test eax, eax
je 0x572bd0
movzx eax, word [esi + 0xe0]
cmp eax, 0x10
jl 0x572bd0
mov ecx, dword [esi + 0xec]
test ecx, ecx
je 0x572bd0
mov eax, dword [ecx]
mov edx, dword [esi + 0xe8]
mov dword [esi + 0xec], eax
mov eax, dword [esi + 0xe4]
inc eax
mov dword [esi + 0xe4], eax
cmp eax, edx
cmovge edx, eax
mov dword [esi + 0xe8], edx
jmp 0x572be4
mov eax, 0x10
call fcn.0041ebd4
mov ecx, eax
test ecx, ecx
je 0x5731d1
test ecx, ecx
je 0x572d40
mov dword [ecx + 8], 0
mov eax, dword [ebx]
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov eax, dword [ebx]
lea edx, [eax + eax*4]
shl edx, 2
mov eax, esi
mov dword [esp + 0x18], ecx
call fcn.004a76c0
mov ecx, dword [esp + 0x18]
mov edx, eax
mov dword [ecx + 0xc], edx
test edx, edx
je 0x5731c3
mov eax, dword [ebx + 0xc]
cmp dword [ebx], 0
jle 0x572d42
mov dword [esp + 0x2c], 0
mov dword [esp + 0x18], ecx
mov dword [esp + 0x30], ebx
mov ebx, eax
mov dword [esp + 0x14], ebp
mov ebp, edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov edx, dword [ebx]
mov dword [esp + 0xc], 0
call fcn.0044cfe0
mov dword [ebp], eax
mov esi, dword [ebx + 4]
test esi, esi
je 0x5731bc
movsx ecx, byte [esi]
mov edi, esi
test ecx, ecx
je 0x572c80
inc edi
movsx ecx, byte [edi]
test ecx, ecx
jne 0x572c78
mov eax, dword [esp + 0x28]
sub edi, esi
and edi, 0x3fffffff
inc edi
mov edx, edi
call fcn.004a76c0
test eax, eax
je 0x572cab
push edi
push esi
push eax
mov dword [esp + 0x28], eax
call fcn.007666b0
mov eax, dword [esp + 0x28]
add esp, 0xc
mov dword [ebp + 4], eax
mov edi, dword [ebx + 8]
test edi, edi
je 0x5731b5
movsx ecx, byte [edi]
mov esi, edi
test ecx, ecx
je 0x572cca
inc esi
movsx ecx, byte [esi]
test ecx, ecx
jne 0x572cc2
mov eax, dword [esp + 0x28]
sub esi, edi
and esi, 0x3fffffff
inc esi
mov edx, esi
call fcn.004a76c0
test eax, eax
je 0x572cf5
push esi
push edi
push eax
mov dword [esp + 0x2c], eax
call fcn.007666b0
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov dword [ebp + 8], eax
movzx ecx, byte [ebx + 0xc]
mov byte [ebp + 0xc], cl
mov ecx, dword [esp + 0x2c]
inc ecx
mov byte [ebp + 0xd], 0
movzx esi, word [ebx + 0xe]
mov word [ebp + 0xe], si
movzx edi, word [ebx + 0x10]
mov esi, dword [esp + 0x30]
mov word [ebp + 0x10], di
add ebp, 0x14
add ebx, 0x14
cmp ecx, dword [esi]
mov dword [esp + 0x2c], ecx
jl 0x572c4a
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x10]
jmp 0x572d42
xor ecx, ecx
mov dword [ebp], ecx
mov edx, dword [edi + 8]
mov eax, esi
mov ecx, dword [esp + 0x24]
call fcn.004f4f70
mov ecx, dword [esp + 0x24]
mov dword [ebp + 8], eax
mov edx, dword [edi + 0xc]
mov dword [esp + 0xc], 0
mov eax, esi
call fcn.0044cfe0
mov dword [ebp + 0xc], eax
mov ebx, dword [edi + 0x10]
test ebx, ebx
je 0x572f46
test esi, esi
je 0x572dd3
movzx eax, byte [esi + 0x1e]
test eax, eax
jne 0x572f46
movzx eax, byte [esi + 0xe2]
test eax, eax
je 0x572dd3
movzx eax, word [esi + 0xe0]
cmp eax, 0x10
jl 0x572dd3
mov ecx, dword [esi + 0xec]
test ecx, ecx
je 0x572dd3
mov eax, dword [ecx]
mov edx, dword [esi + 0xe8]
mov dword [esi + 0xec], eax
mov eax, dword [esi + 0xe4]
inc eax
mov dword [esi + 0xe4], eax
cmp eax, edx
cmovge edx, eax
mov dword [esi + 0xe8], edx
jmp 0x572de7
mov eax, 0x10
call fcn.0041ebd4
mov ecx, eax
test ecx, ecx
je 0x5731fe
test ecx, ecx
je 0x572f46
mov dword [ecx + 8], 0
mov eax, dword [ebx]
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov eax, dword [ebx]
lea edx, [eax + eax*4]
shl edx, 2
mov eax, esi
mov dword [esp + 0x1c], ecx
call fcn.004a76c0
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 0xc], eax
test eax, eax
je 0x5731f0
mov edx, dword [ebx + 0xc]
cmp dword [ebx], 0
mov dword [esp + 0x18], edx
jle 0x572f48
xor edx, edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x30], ebx
mov ebx, eax
mov dword [esp + 0x14], ebp
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov edx, dword [esi]
mov dword [esp + 0xc], 0
call fcn.0044cfe0
mov dword [ebx], eax
mov edi, dword [esi + 4]
test edi, edi
je 0x5731e9
movsx edx, byte [edi]
mov ebp, edi
test edx, edx
je 0x572e85
inc ebp
movsx edx, byte [ebp]
test edx, edx
jne 0x572e7c
mov eax, dword [esp + 0x28]
sub ebp, edi
and ebp, 0x3fffffff
inc ebp
mov edx, ebp
call fcn.004a76c0
test eax, eax
je 0x572eb0
push ebp
push edi
push eax
mov dword [esp + 0x24], eax
call fcn.007666b0
mov eax, dword [esp + 0x24]
add esp, 0xc
mov dword [ebx + 4], eax
mov ebp, dword [esi + 8]
test ebp, ebp
je 0x5731e2
movsx edx, byte [ebp]
mov edi, ebp
test edx, edx
je 0x572ed0
inc edi
movsx edx, byte [edi]
test edx, edx
jne 0x572ec8
mov eax, dword [esp + 0x28]
sub edi, ebp
and edi, 0x3fffffff
inc edi
mov edx, edi
call fcn.004a76c0
test eax, eax
je 0x572efb
push edi
push ebp
push eax
mov dword [esp + 0x2c], eax
call fcn.007666b0
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov edi, dword [esp + 0x2c]
mov dword [ebx + 8], eax
inc edi
movzx edx, byte [esi + 0xc]
mov byte [ebx + 0xc], dl
mov edx, dword [esp + 0x30]
mov byte [ebx + 0xd], 0
movzx ecx, word [esi + 0xe]
mov word [ebx + 0xe], cx
movzx ebp, word [esi + 0x10]
mov word [ebx + 0x10], bp
add ebx, 0x14
add esi, 0x14
cmp edi, dword [edx]
mov dword [esp + 0x2c], edi
jl 0x572e4f
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x10]
jmp 0x572f48
xor ecx, ecx
mov dword [ebp + 0x10], ecx
mov edx, dword [edi + 0x14]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xc], 0
mov eax, esi
call fcn.0044cfe0
mov dword [ebp + 0x14], eax
mov ebx, dword [edi + 0x18]
test ebx, ebx
je 0x573138
test esi, esi
je 0x572fc8
movzx eax, byte [esi + 0x1e]
test eax, eax
jne 0x573138
movzx eax, byte [esi + 0xe2]
test eax, eax
je 0x572fc8
movzx eax, word [esi + 0xe0]
cmp eax, 0x10
jl 0x572fc8
mov ecx, dword [esi + 0xec]
test ecx, ecx
je 0x572fc8
mov eax, dword [ecx]
mov edx, dword [esi + 0xe8]
mov dword [esi + 0xec], eax
mov eax, dword [esi + 0xe4]
inc eax
mov dword [esi + 0xe4], eax
cmp eax, edx
cmovge edx, eax
mov dword [esi + 0xe8], edx
jmp 0x572fdc
mov eax, 0x10
call fcn.0041ebd4
mov ecx, eax
test ecx, ecx
je 0x57322b
test ecx, ecx
je 0x573138
mov dword [ecx + 8], 0
mov eax, dword [ebx]
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov eax, dword [ebx]
lea edx, [eax + eax*4]
shl edx, 2
mov eax, esi
mov dword [esp + 0x18], ecx
call fcn.004a76c0
mov ecx, dword [esp + 0x18]
mov edx, eax
mov dword [ecx + 0xc], edx
test edx, edx
je 0x57321d
mov eax, dword [ebx + 0xc]
cmp dword [ebx], 0
jle 0x57313a
mov dword [esp + 0x2c], 0
mov dword [esp + 0x18], ecx
mov dword [esp + 0x30], ebx
mov ebx, eax
mov dword [esp + 0x14], ebp
mov ebp, edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov edx, dword [ebx]
mov dword [esp + 0xc], 0
call fcn.0044cfe0
mov dword [ebp], eax
mov esi, dword [ebx + 4]
test esi, esi
je 0x573216
movsx ecx, byte [esi]
mov edi, esi
test ecx, ecx
je 0x573078
inc edi
movsx ecx, byte [edi]
test ecx, ecx
jne 0x573070
mov eax, dword [esp + 0x28]
sub edi, esi
and edi, 0x3fffffff
inc edi
mov edx, edi
call fcn.004a76c0
test eax, eax
je 0x5730a3
push edi
push esi
push eax
mov dword [esp + 0x28], eax
call fcn.007666b0
mov eax, dword [esp + 0x28]
add esp, 0xc
mov dword [ebp + 4], eax
mov edi, dword [ebx + 8]
test edi, edi
je 0x57320f
movsx ecx, byte [edi]
mov esi, edi
test ecx, ecx
je 0x5730c2
inc esi
movsx ecx, byte [esi]
test ecx, ecx
jne 0x5730ba
mov eax, dword [esp + 0x28]
sub esi, edi
and esi, 0x3fffffff
inc esi
mov edx, esi
call fcn.004a76c0
test eax, eax
je 0x5730ed
push esi
push edi
push eax
mov dword [esp + 0x2c], eax
call fcn.007666b0
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov dword [ebp + 8], eax
movzx ecx, byte [ebx + 0xc]
mov byte [ebp + 0xc], cl
mov ecx, dword [esp + 0x2c]
inc ecx
mov byte [ebp + 0xd], 0
movzx esi, word [ebx + 0xe]
mov word [ebp + 0xe], si
movzx edi, word [ebx + 0x10]
mov esi, dword [esp + 0x30]
mov word [ebp + 0x10], di
add ebp, 0x14
add ebx, 0x14
cmp ecx, dword [esi]
mov dword [esp + 0x2c], ecx
jl 0x573042
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x10]
jmp 0x57313a
xor ecx, ecx
mov dword [ebp + 0x18], ecx
movzx ebx, byte [edi + 4]
mov ecx, dword [esp + 0x24]
mov byte [ebp + 4], bl
mov eax, esi
mov edx, dword [edi + 0x1c]
call fcn.00572ab0
mov ecx, dword [esp + 0x24]
mov dword [ebp + 0x1c], eax
mov edx, dword [edi + 0x28]
mov dword [esp + 0xc], 0
mov eax, esi
call fcn.0044cfe0
mov ecx, dword [esp + 0x24]
mov dword [ebp + 0x28], eax
mov edx, dword [edi + 0x2c]
mov dword [esp + 0xc], 0
mov eax, esi
call fcn.0044cfe0
mov dword [ebp + 0x2c], eax
xor ecx, ecx
mov eax, 0xffffffff
mov dword [ebp + 0x30], ecx
mov dword [ebp + 0x34], ecx
movzx edx, word [edi + 6]
and edx, 0xfffffff7
mov word [ebp + 6], dx
mov dword [ebp + 0x24], ecx
mov dword [ebp + 0x38], eax
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x40], eax
mov eax, ebp
add esp, 0x34
pop ebx
pop ebp
pop esi
pop edi
ret
xor eax, eax
jmp 0x572cf5
xor eax, eax
jmp 0x572cab
mov eax, esi
mov edx, ecx
call fcn.004e33d8
jmp 0x572d40
test esi, esi
je 0x572be4
mov byte [esi + 0x1e], 1
jmp 0x572be4
xor eax, eax
jmp 0x572efb
xor eax, eax
jmp 0x572eb0
mov eax, esi
mov edx, ecx
call fcn.004e33d8
jmp 0x572f46
test esi, esi
je 0x572de7
mov byte [esi + 0x1e], 1
jmp 0x572de7
xor eax, eax
jmp 0x5730ed
xor eax, eax
jmp 0x5730a3
mov eax, esi
mov edx, ecx
call fcn.004e33d8
jmp 0x573138
test esi, esi
je 0x572fdc
mov byte [esi + 0x1e], 1
jmp 0x572fdc
test esi, esi
je 0x572b65
mov byte [esi + 0x1e], 1
jmp 0x572b65
xor eax, eax
add esp, 0x34
pop ebx
pop ebp
pop esi
pop edi
ret
push edi
push esi
push ebp
push ebx
sub esp, 0x34
mov dword [esp + 0x24], ecx
mov edi, edx
mov esi, eax
test edi, edi
je 0x5739d1
test esi, esi
je 0x5732d2
movzx eax, byte [esi + 0x1e]
test eax, eax
jne 0x5739d1
movzx eax, byte [esi + 0xe2]
test eax, eax
je 0x5732d2
movzx eax, word [esi + 0xe0]
cmp eax, 0x44
jl 0x5732d2
mov ebp, dword [esi + 0xec]
test ebp, ebp
je 0x5732d2
mov eax, dword [ebp]
mov dword [esi + 0xec], eax
mov ecx, dword [esi + 0xe4]
inc ecx
mov dword [esi + 0xe4], ecx
mov edx, dword [esi + 0xe8]
cmp ecx, edx
jge 0x5732ca
mov ecx, edx
mov dword [esi + 0xe8], ecx
jmp 0x5732e6
mov eax, 0x44
call fcn.0041ebd4
mov ebp, eax
test ebp, ebp
je 0x5739c0
test ebp, ebp
je 0x5739d1
mov ebx, dword [edi]
test ebx, ebx
je 0x5734c2
test esi, esi
je 0x573352
movzx eax, byte [esi + 0x1e]
test eax, eax
jne 0x5734c2
movzx eax, byte [esi + 0xe2]
test eax, eax
je 0x573352
movzx eax, word [esi + 0xe0]
cmp eax, 0x10
jl 0x573352
mov ecx, dword [esi + 0xec]
test ecx, ecx
je 0x573352
mov eax, dword [ecx]
mov dword [esi + 0xec], eax
mov edx, dword [esi + 0xe4]
inc edx
mov dword [esi + 0xe4], edx
mov eax, dword [esi + 0xe8]
cmp edx, eax
jge 0x57334a
mov edx, eax
mov dword [esi + 0xe8], edx
jmp 0x573366
mov eax, 0x10
call fcn.0041ebd4
mov ecx, eax
test ecx, ecx
je 0x573955
test ecx, ecx
je 0x5734c2
mov dword [ecx + 8], 0
mov eax, dword [ebx]
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov eax, dword [ebx]
lea edx, [eax + eax*4]
shl edx, 2
mov eax, esi
mov dword [esp + 0x18], ecx
call fcn.004a76c0
mov ecx, dword [esp + 0x18]
mov edx, eax
mov dword [ecx + 0xc], edx
test edx, edx
je 0x573947
mov eax, dword [ebx + 0xc]
cmp dword [ebx], 0
jle 0x5734c4
mov dword [esp + 0x2c], 0
mov dword [esp + 0x18], ecx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x28], esi
mov dword [esp + 0x10], edi
mov ebx, eax
mov ebp, edx
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x28]
mov edx, dword [ebx]
mov ecx, dword [esp + 0x24]
call fcn.0044cfe0
mov dword [ebp], eax
mov esi, dword [ebx + 4]
test esi, esi
je 0x573940
mov edi, esi
movsx ecx, byte [esi]
test ecx, ecx
je 0x573402
inc edi
movsx ecx, byte [edi]
test ecx, ecx
jne 0x5733fa
sub edi, esi
and edi, 0x3fffffff
inc edi
mov eax, dword [esp + 0x28]
mov edx, edi
call fcn.004a76c0
test eax, eax
je 0x57342d
push edi
push esi
push eax
mov dword [esp + 0x28], eax
call fcn.007666b0
mov eax, dword [esp + 0x28]
add esp, 0xc
mov dword [ebp + 4], eax
mov edi, dword [ebx + 8]
test edi, edi
je 0x573939
mov esi, edi
movsx ecx, byte [edi]
test ecx, ecx
je 0x57344c
inc esi
movsx ecx, byte [esi]
test ecx, ecx
jne 0x573444
sub esi, edi
and esi, 0x3fffffff
inc esi
mov eax, dword [esp + 0x28]
mov edx, esi
call fcn.004a76c0
test eax, eax
je 0x573477
push esi
push edi
push eax
mov dword [esp + 0x2c], eax
call fcn.007666b0
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov dword [ebp + 8], eax
movzx ecx, byte [ebx + 0xc]
mov byte [ebp + 0xc], cl
mov byte [ebp + 0xd], 0
movzx esi, word [ebx + 0xe]
mov word [ebp + 0xe], si
movzx edi, word [ebx + 0x10]
mov word [ebp + 0x10], di
mov ecx, dword [esp + 0x2c]
inc ecx
mov dword [esp + 0x2c], ecx
add ebp, 0x14
add ebx, 0x14
mov esi, dword [esp + 0x30]
cmp ecx, dword [esi]
jl 0x5733cc
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x10]
jmp 0x5734c4
xor ecx, ecx
mov dword [ebp], ecx
mov eax, esi
mov edx, dword [edi + 8]
mov ecx, dword [esp + 0x24]
call fcn.004f4f70
mov dword [ebp + 8], eax
mov dword [esp + 0xc], 0
mov eax, esi
mov edx, dword [edi + 0xc]
mov ecx, dword [esp + 0x24]
call fcn.0044cfe0
mov dword [ebp + 0xc], eax
mov ebx, dword [edi + 0x10]
test ebx, ebx
je 0x5736c9
test esi, esi
je 0x573556
movzx eax, byte [esi + 0x1e]
test eax, eax
jne 0x5736c9
movzx eax, byte [esi + 0xe2]
test eax, eax
je 0x573556
movzx eax, word [esi + 0xe0]
cmp eax, 0x10
jl 0x573556
mov ecx, dword [esi + 0xec]
test ecx, ecx
je 0x573556
mov eax, dword [ecx]
mov dword [esi + 0xec], eax
mov edx, dword [esi + 0xe4]
inc edx
mov dword [esi + 0xe4], edx
mov eax, dword [esi + 0xe8]
cmp edx, eax
jge 0x57354e
mov edx, eax
mov dword [esi + 0xe8], edx
jmp 0x57356a
mov eax, 0x10
call fcn.0041ebd4
mov ecx, eax
test ecx, ecx
je 0x573982
test ecx, ecx
je 0x5736c9
mov dword [ecx + 8], 0
mov eax, dword [ebx]
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov eax, dword [ebx]
lea edx, [eax + eax*4]
shl edx, 2
mov eax, esi
mov dword [esp + 0x1c], ecx
call fcn.004a76c0
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 0xc], eax
test eax, eax
je 0x573974
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x18], edx
cmp dword [ebx], 0
jle 0x5736cb
xor edx, edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x28], esi
mov dword [esp + 0x10], edi
mov ebx, eax
mov esi, dword [esp + 0x18]
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x28]
mov edx, dword [esi]
mov ecx, dword [esp + 0x24]
call fcn.0044cfe0
mov dword [ebx], eax
mov edi, dword [esi + 4]
test edi, edi
je 0x57396d
mov ebp, edi
movsx edx, byte [edi]
test edx, edx
je 0x573608
inc ebp
movsx edx, byte [ebp]
test edx, edx
jne 0x5735ff
sub ebp, edi
and ebp, 0x3fffffff
inc ebp
mov eax, dword [esp + 0x28]
mov edx, ebp
call fcn.004a76c0
test eax, eax
je 0x573633
push ebp
push edi
push eax
mov dword [esp + 0x24], eax
call fcn.007666b0
mov eax, dword [esp + 0x24]
add esp, 0xc
mov dword [ebx + 4], eax
mov ebp, dword [esi + 8]
test ebp, ebp
je 0x573966
mov edi, ebp
movsx edx, byte [ebp]
test edx, edx
je 0x573653
inc edi
movsx edx, byte [edi]
test edx, edx
jne 0x57364b
sub edi, ebp
and edi, 0x3fffffff
inc edi
mov eax, dword [esp + 0x28]
mov edx, edi
call fcn.004a76c0
test eax, eax
je 0x57367e
push edi
push ebp
push eax
mov dword [esp + 0x2c], eax
call fcn.007666b0
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov dword [ebx + 8], eax
movzx edx, byte [esi + 0xc]
mov byte [ebx + 0xc], dl
mov byte [ebx + 0xd], 0
movzx ecx, word [esi + 0xe]
mov word [ebx + 0xe], cx
movzx ebp, word [esi + 0x10]
mov word [ebx + 0x10], bp
mov edi, dword [esp + 0x2c]
inc edi
mov dword [esp + 0x2c], edi
add ebx, 0x14
add esi, 0x14
mov edx, dword [esp + 0x30]
cmp edi, dword [edx]
jl 0x5735d2
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x10]
jmp 0x5736cb
xor ecx, ecx
mov dword [ebp + 0x10], ecx
mov dword [esp + 0xc], 0
mov eax, esi
mov edx, dword [edi + 0x14]
mov ecx, dword [esp + 0x24]
call fcn.0044cfe0
mov dword [ebp + 0x14], eax
mov ebx, dword [edi + 0x18]
test ebx, ebx
je 0x5738bc
test esi, esi
je 0x57374c
movzx eax, byte [esi + 0x1e]
test eax, eax
jne 0x5738bc
movzx eax, byte [esi + 0xe2]
test eax, eax
je 0x57374c
movzx eax, word [esi + 0xe0]
cmp eax, 0x10
jl 0x57374c
mov ecx, dword [esi + 0xec]
test ecx, ecx
je 0x57374c
mov eax, dword [ecx]
mov dword [esi + 0xec], eax
mov edx, dword [esi + 0xe4]
inc edx
mov dword [esi + 0xe4], edx
mov eax, dword [esi + 0xe8]
cmp edx, eax
jge 0x573744
mov edx, eax
mov dword [esi + 0xe8], edx
jmp 0x573760
mov eax, 0x10
call fcn.0041ebd4
mov ecx, eax
test ecx, ecx
je 0x5739af
test ecx, ecx
je 0x5738bc
mov dword [ecx + 8], 0
mov eax, dword [ebx]
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov eax, dword [ebx]
lea edx, [eax + eax*4]
shl edx, 2
mov eax, esi
mov dword [esp + 0x18], ecx
call fcn.004a76c0
mov ecx, dword [esp + 0x18]
mov edx, eax
mov dword [ecx + 0xc], edx
test edx, edx
je 0x5739a1
mov eax, dword [ebx + 0xc]
cmp dword [ebx], 0
jle 0x5738be
mov dword [esp + 0x2c], 0
mov dword [esp + 0x18], ecx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x28], esi
mov dword [esp + 0x10], edi
mov ebx, eax
mov ebp, edx
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x28]
mov edx, dword [ebx]
mov ecx, dword [esp + 0x24]
call fcn.0044cfe0
mov dword [ebp], eax
mov esi, dword [ebx + 4]
test esi, esi
je 0x57399a
mov edi, esi
movsx ecx, byte [esi]
test ecx, ecx
je 0x5737fc
inc edi
movsx ecx, byte [edi]
test ecx, ecx
jne 0x5737f4
sub edi, esi
and edi, 0x3fffffff
inc edi
mov eax, dword [esp + 0x28]
mov edx, edi
call fcn.004a76c0
test eax, eax
je 0x573827
push edi
push esi
push eax
mov dword [esp + 0x28], eax
call fcn.007666b0
mov eax, dword [esp + 0x28]
add esp, 0xc
mov dword [ebp + 4], eax
mov edi, dword [ebx + 8]
test edi, edi
je 0x573993
mov esi, edi
movsx ecx, byte [edi]
test ecx, ecx
je 0x573846
inc esi
movsx ecx, byte [esi]
test ecx, ecx
jne 0x57383e
sub esi, edi
and esi, 0x3fffffff
inc esi
mov eax, dword [esp + 0x28]
mov edx, esi
call fcn.004a76c0
test eax, eax
je 0x573871
push esi
push edi
push eax
mov dword [esp + 0x2c], eax
call fcn.007666b0
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov dword [ebp + 8], eax
movzx ecx, byte [ebx + 0xc]
mov byte [ebp + 0xc], cl
mov byte [ebp + 0xd], 0
movzx esi, word [ebx + 0xe]
mov word [ebp + 0xe], si
movzx edi, word [ebx + 0x10]
mov word [ebp + 0x10], di
mov ecx, dword [esp + 0x2c]
inc ecx
mov dword [esp + 0x2c], ecx
add ebp, 0x14
add ebx, 0x14
mov esi, dword [esp + 0x30]
cmp ecx, dword [esi]
jl 0x5737c6
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x10]
jmp 0x5738be
xor ecx, ecx
mov dword [ebp + 0x18], ecx
movzx ebx, byte [edi + 4]
mov byte [ebp + 4], bl
mov eax, esi
mov edx, dword [edi + 0x1c]
mov ecx, dword [esp + 0x24]
call fcn.00572ab0
mov dword [ebp + 0x1c], eax
mov dword [esp + 0xc], 0
mov eax, esi
mov edx, dword [edi + 0x28]
mov ecx, dword [esp + 0x24]
call fcn.0044cfe0
mov dword [ebp + 0x28], eax
mov dword [esp + 0xc], 0
mov eax, esi
mov edx, dword [edi + 0x2c]
mov ecx, dword [esp + 0x24]
call fcn.0044cfe0
mov dword [ebp + 0x2c], eax
xor ecx, ecx
mov dword [ebp + 0x30], ecx
mov dword [ebp + 0x34], ecx
movzx edx, word [edi + 6]
and edx, 0xfffffff7
mov word [ebp + 6], dx
mov dword [ebp + 0x24], ecx
mov eax, 0xffffffff
mov dword [ebp + 0x38], eax
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x40], eax
mov eax, ebp
add esp, 0x34
pop ebx
pop ebp
pop esi
pop edi
ret
xor eax, eax
jmp 0x573477
xor eax, eax
jmp 0x57342d
mov eax, esi
mov edx, ecx
call fcn.004e33d8
jmp 0x5734c2
test esi, esi
je 0x573366
mov byte [esi + 0x1e], 1
jmp 0x573366
xor eax, eax
jmp 0x57367e
xor eax, eax
jmp 0x573633
mov eax, esi
mov edx, ecx
call fcn.004e33d8
jmp 0x5736c9
test esi, esi
je 0x57356a
mov byte [esi + 0x1e], 1
jmp 0x57356a
xor eax, eax
jmp 0x573871
xor eax, eax
jmp 0x573827
mov eax, esi
mov edx, ecx
call fcn.004e33d8
jmp 0x5738bc
test esi, esi
je 0x573760
mov byte [esi + 0x1e], 1
jmp 0x573760
test esi, esi
je 0x5732e6
mov byte [esi + 0x1e], 1
jmp 0x5732e6
xor eax, eax
add esp, 0x34
pop ebx
pop ebp
pop esi
pop edi
ret