Function at 0x52eae7
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x7c
mov eax, dword [0x597fb8]
xor eax, esp
mov dword [esp + 0x78], eax
push ebx
push ebp
mov ebp, dword [esp + 0x88]
mov eax, dword [ebp + 4]
cmp eax, 0xa
mov ebx, dword [ebp]
push esi
push edi
jne 0x52cb6a
xor ecx, ecx
mov dword [ebp + 0xfa14], ecx
mov dword [ebp + 0xfa18], ecx
mov dword [ebp + 0xfa1c], ecx
mov dword [ebp + 0xfa20], ecx
mov dword [ebp + 0xfa24], ecx
mov dword [ebp + 0xfa28], ecx
mov dword [ebp + 0xfa2c], ecx
mov dword [ebp + 0xfa30], ecx
mov dword [ebp + 0xfa34], ecx
mov dword [ebp + 0xfa38], ecx
mov dword [ebp + 0xfa3c], ecx
mov dword [ebp + 0xfa40], ecx
mov dword [ebp + 0xfa44], ecx
mov dword [ebp + 0xfa48], ecx
mov dword [ebp + 0xfa4c], ecx
mov dword [ebp + 0xfa50], ecx
mov dword [ebp + 0xfa54], ecx
mov dword [ebp + 0xfa58], ecx
mov dword [ebp + 0xfa5c], ecx
mov dword [ebp + 0xfa60], ecx
mov dword [ebp + 0xfa64], ecx
mov dword [ebp + 0xfa68], ecx
mov dword [ebp + 0xfa6c], ecx
mov dword [ebp + 0xfa70], ecx
mov ecx, dword [ebp + 0xfa14]
mov edx, dword [ebp + 0xfa18]
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp + 0xfa1c]
mov dword [esp + 0x18], edx
mov edx, dword [ebp + 0xfa20]
mov dword [esp + 0x38], ecx
mov ecx, dword [ebp + 0xfa24]
mov dword [esp + 0x64], edx
mov edx, dword [ebp + 0xfa28]
mov dword [esp + 0x50], ecx
mov ecx, dword [ebp + 0xfa2c]
mov dword [esp + 0x48], edx
mov edx, dword [ebp + 0xfa30]
mov dword [esp + 0x5c], ecx
mov ecx, dword [ebp + 0xfa34]
mov dword [esp + 0x2c], edx
mov edx, dword [ebp + 0xfa38]
mov dword [esp + 0x40], ecx
mov ecx, dword [ebp + 0xfa3c]
mov dword [esp + 0x44], edx
mov edx, dword [ebp + 0xfa40]
mov dword [esp + 0x34], ecx
mov ecx, dword [ebp + 0xfa44]
mov dword [esp + 0x20], edx
mov edx, dword [ebp + 0xfa48]
mov dword [esp + 0x24], ecx
mov ecx, dword [ebp + 0xfa4c]
mov dword [esp + 0x58], edx
mov edx, dword [ebp + 0xfa50]
mov dword [esp + 0x30], ecx
mov ecx, dword [ebp + 0xfa54]
mov dword [esp + 0x78], edx
mov edx, dword [ebp + 0xfa58]
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 0xfa5c]
mov dword [esp + 0x28], edx
mov edx, dword [ebp + 0xfa60]
mov dword [esp + 0x68], ecx
mov ecx, dword [ebp + 0xfa64]
mov dword [esp + 0x6c], edx
mov edx, dword [ebp + 0xfa68]
mov dword [esp + 0x60], ecx
mov ecx, dword [ebp + 0xfa6c]
mov dword [esp + 0x54], edx
mov edx, dword [ebp + 0xfa70]
add eax, 0xfffffff6
xor esi, esi
cmp eax, 0x28
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x4c], edx
ja case.default.0x52cc6b
lea edi, [esi + 1]
jmp dword [eax*4 + 0x52ee14]
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0xa
jge 0x52ccc3
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov esi, dword [eax]
movzx esi, byte [esi]
mov edx, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edx, 8
or edx, esi
mov dword [ebp + 0x1c], edx
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], 0xffffffff
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52ccbe
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], ecx
jl 0x52cc83
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x42
je case.0x52cc6b.11
mov esi, 0xfffffffb
jmp 0x52ed0a
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0xb
jge 0x52cd40
jmp 0x52cd00
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov esi, dword [eax]
movzx esi, byte [esi]
mov edx, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edx, 8
or edx, esi
mov dword [ebp + 0x1c], edx
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], 0xffffffff
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52cd3b
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], ecx
jl 0x52cd00
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x5a
jne 0x52ccdd
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0xc
jge 0x52cdb0
jmp 0x52cd70
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov esi, dword [eax]
movzx esi, byte [esi]
mov edx, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edx, 8
or edx, esi
mov dword [ebp + 0x1c], edx
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], 0xffffffff
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52cdab
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], ecx
jl 0x52cd70
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x68
jne 0x52ccdd
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0xd
jge 0x52ce20
nop
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov esi, dword [eax]
movzx esi, byte [esi]
mov edx, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edx, 8
or edx, esi
mov dword [ebp + 0x1c], edx
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], 0xffffffff
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52ce1b
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], ecx
jl 0x52cde0
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp eax, 0x31
mov dword [ebp + 0x24], eax
jl 0x52ccdd
cmp eax, 0x39
jg 0x52ccdd
add eax, 0xffffffd0
cmp byte [ebp + 0x28], 0
mov dword [ebp + 0x24], eax
push edi
je 0x52cea3
mov ecx, dword [ebx + 0x24]
imul eax, eax, 0x30d40
push eax
mov eax, dword [ebx + 0x2c]
push eax
call ecx
mov edx, dword [ebp + 0x24]
imul edx, edx, 0x186a0
add edx, edi
push edi
mov dword [ebp + 0xc50], eax
mov eax, dword [ebx + 0x2c]
mov ecx, dword [ebx + 0x24]
sar edx, 1
push edx
push eax
call ecx
cmp dword [ebp + 0xc50], 0
mov dword [ebp + 0xc54], eax
je 0x52ce99
test eax, eax
jne case.0x52cc6b.14
mov esi, 0xfffffffd
jmp 0x52ed0a
mov edx, dword [ebx + 0x2c]
imul eax, eax, 0x61a80
push eax
mov eax, dword [ebx + 0x24]
push edx
call eax
test eax, eax
mov dword [ebp + 0xc4c], eax
jne case.0x52cc6b.14
lea esi, [eax - 3]
jmp 0x52ed0a
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0xe
jge 0x52cf1f
or edx, 0xffffffff
lea esp, [esp]
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52cf1a
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], ecx
jl 0x52cee0
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x17
je case.0x52cc6b.42
cmp al, 0x31
jne 0x52dde6
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0xf
jge 0x52cf9f
or edx, 0xffffffff
lea esp, [esp]
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52cf9a
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], ecx
jl 0x52cf60
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x41
jne 0x52dde6
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x10
jge 0x52d010
or edx, 0xffffffff
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52d00b
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], ecx
jl 0x52cfd1
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x59
jne 0x52dde6
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x11
jge 0x52d081
or edx, 0xffffffff
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52d07c
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], ecx
jl 0x52d042
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x26
jne 0x52dde6
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x12
jge 0x52d0f2
or edx, 0xffffffff
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52d0ed
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], ecx
jl 0x52d0b3
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x53
jne 0x52dde6
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x13
jge 0x52d16f
or edx, 0xffffffff
jmp 0x52d130
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52d16a
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], ecx
jl 0x52d130
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x59
jne 0x52dde6
add dword [ebp + 0x2c], edi
mov dword [ebp + 0xc58], 0
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x14
jge 0x52d1ef
or edx, 0xffffffff
mov edi, edi
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52d1ea
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], ecx
jl 0x52d1b0
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
mov ecx, dword [ebp + 0xc58]
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
movzx edx, al
shl ecx, 8
or ecx, edx
mov dword [ebp + 0xc58], ecx
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x15
jge 0x52d26f
or edx, 0xffffffff
lea ecx, [ecx]
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52d26a
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], ecx
jl 0x52d230
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
mov ecx, dword [ebp + 0xc58]
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
movzx edx, al
shl ecx, 8
or ecx, edx
mov dword [ebp + 0xc58], ecx
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x16
jge 0x52d2ef
or edx, 0xffffffff
lea ecx, [ecx]
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52d2ea
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], ecx
jl 0x52d2b0
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
mov ecx, dword [ebp + 0xc58]
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
movzx edx, al
shl ecx, 8
or ecx, edx
mov dword [ebp + 0xc58], ecx
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x17
jge 0x52d36f
or edx, 0xffffffff
lea ecx, [ecx]
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52d36a
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], ecx
jl 0x52d330
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
mov ecx, dword [ebp + 0xc58]
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
movzx edx, al
shl ecx, 8
or ecx, edx
mov dword [ebp + 0xc58], ecx
cmp dword [ebp + 0x20], edi
mov dword [ebp + 4], 0x18
jge 0x52d3ef
or edx, 0xffffffff
lea ecx, [edx + 9]
jmp 0x52d3b0
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52d3ea
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], edi
jl 0x52d3b0
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 1]
shr eax, cl
mov dword [ebp + 0x34], 0
and eax, edi
add edx, 0xffffffff
mov dword [ebp + 0x20], edx
mov byte [ebp + 0x10], al
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x19
jge 0x52d45f
or edx, 0xffffffff
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52d45a
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], ecx
jl 0x52d420
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
mov ecx, dword [ebp + 0x34]
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
movzx edx, al
shl ecx, 8
or ecx, edx
mov dword [ebp + 0x34], ecx
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x1a
jge 0x52d4df
or edx, 0xffffffff
jmp 0x52d4a0
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52d4da
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], ecx
jl 0x52d4a0
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
mov ecx, dword [ebp + 0x34]
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
movzx edx, al
shl ecx, 8
or ecx, edx
mov dword [ebp + 0x34], ecx
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x1b
jge 0x52d55f
or edx, 0xffffffff
jmp 0x52d520
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52d55a
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], ecx
jl 0x52d520
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp + 0x1c]
lea ecx, [eax - 8]
shr edx, cl
add eax, 0xfffffff8
mov dword [ebp + 0x20], eax
mov eax, dword [ebp + 0x34]
and edx, 0xff
movzx ecx, dl
shl eax, 8
or eax, ecx
mov dword [ebp + 0x34], eax
jl 0x52dde6
mov edx, dword [ebp + 0x24]
imul edx, edx, 0x186a0
add edx, 0xa
cmp eax, edx
jg 0x52dde6
mov dword [esp + 0x10], 0
jmp 0x52d628
cmp dword [ebp + 0x20], edi
mov dword [ebp + 4], 0x1c
jge 0x52d5ff
mov edx, 8
or ecx, 0xffffffff
nop
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], edx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], ecx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52d5fa
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], edi
jl 0x52d5c0
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 1]
shr eax, cl
add edx, 0xffffffff
mov dword [ebp + 0x20], edx
and eax, edi
cmp al, 1
mov eax, dword [esp + 0x10]
sete cl
mov byte [eax + ebp + 0xd6c], cl
add eax, edi
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 0x10
jl case.0x52cc6b.28
push 0x100
lea eax, [ebp + 0xc6c]
push 0
push eax
call fcn.0054a020
add esp, 0xc
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x52d6f2
cmp dword [ebp + 0x20], edi
mov dword [ebp + 4], 0x1d
jge 0x52d6af
mov edx, 8
or ecx, 0xffffffff
jmp 0x52d670
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], edx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], ecx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52d6aa
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], edi
jl 0x52d670
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 1]
shr eax, cl
add edx, 0xffffffff
mov dword [ebp + 0x20], edx
and eax, edi
cmp al, 1
jne 0x52d6db
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
shl edx, 4
add edx, ebp
mov byte [edx + eax + 0xc6c], 1
add dword [esp + 0x18], edi
cmp dword [esp + 0x18], 0x10
jl case.0x52cc6b.29
add dword [esp + 0x10], edi
mov eax, dword [esp + 0x10]
cmp eax, 0x10
jge 0x52d70b
cmp byte [eax + ebp + 0xd6c], 0
je 0x52d6ea
mov dword [esp + 0x18], 0
jmp 0x52d6df
mov eax, ebp
call fcn.0052ca70
mov eax, dword [ebp + 0xc68]
test eax, eax
je 0x52dde6
add eax, 2
mov dword [esp + 0x64], eax
cmp dword [ebp + 0x20], 3
mov dword [ebp + 4], 0x1e
jge 0x52d780
mov edx, 8
or ecx, 0xffffffff
lea esp, [esp]
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], edx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], ecx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52d77a
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], 3
jl 0x52d740
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 3]
shr eax, cl
add edx, 0xfffffffd
mov dword [ebp + 0x20], edx
and eax, 7
cmp eax, 2
mov dword [esp + 0x50], eax
jl 0x52dde6
cmp eax, 6
jg 0x52dde6
cmp dword [ebp + 0x20], 0xf
mov dword [ebp + 4], 0x1f
jge 0x52d800
mov edx, 8
or ecx, 0xffffffff
nop
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], edx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], ecx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52d7fa
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], 0xf
jl 0x52d7c0
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 0xf]
shr eax, cl
add edx, 0xfffffff1
mov dword [ebp + 0x20], edx
and eax, 0x7fff
cmp eax, edi
mov edx, eax
mov dword [esp + 0x48], edx
jl 0x52dde6
mov dword [esp + 0x10], 0
jmp 0x52d8bf
cmp dword [ebp + 0x20], edi
mov dword [ebp + 4], 0x20
jge 0x52d88f
mov edx, 8
or ecx, 0xffffffff
jmp 0x52d850
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], edx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], ecx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52d88a
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], edi
jl 0x52d850
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 1]
shr eax, cl
add edx, 0xffffffff
mov dword [ebp + 0x20], edx
and eax, edi
test al, al
jne 0x52d8d2
mov eax, dword [esp + 0x10]
mov cl, byte [esp + 0x18]
mov edx, dword [esp + 0x48]
mov byte [eax + ebp + 0x650e], cl
add eax, edi
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], edx
jge 0x52d8f0
mov dword [esp + 0x18], 0
jmp case.0x52cc6b.32
mov eax, dword [esp + 0x18]
add eax, edi
cmp eax, dword [esp + 0x50]
mov dword [esp + 0x18], eax
jl case.0x52cc6b.32
mov esi, 0xfffffffc
jmp 0x52ed0a
mov esi, dword [esp + 0x50]
xor al, al
test esi, esi
jle 0x52d910
xor ecx, ecx
lea esp, [esp]
mov byte [esp + ecx + 0x80], al
add al, 1
movzx ecx, al
cmp ecx, esi
jl 0x52d900
test edx, edx
mov dword [esp + 0x10], 0
jle 0x52d96f
lea esp, [esp]
mov edx, dword [esp + 0x10]
mov al, byte [edx + ebp + 0x650e]
test al, al
movzx ecx, al
mov dl, byte [esp + ecx + 0x80]
lea ecx, [esp + ecx + 0x80]
jbe 0x52d951
mov bl, byte [ecx - 1]
mov byte [ecx], bl
add al, 0xff
sub ecx, edi
test al, al
ja 0x52d940
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0x10]
mov byte [eax + ebp + 0x1ebc], dl
add eax, edi
cmp eax, dword [esp + 0x48]
mov byte [esp + 0x80], dl
mov dword [esp + 0x10], eax
jl 0x52d920
mov dword [esp + 0x38], 0
jmp 0x52dab1
cmp dword [ebp + 0x20], edi
mov dword [ebp + 4], 0x23
jge 0x52d9cf
mov edx, 8
or ecx, 0xffffffff
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], edx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], ecx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52d9ca
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], edi
jl 0x52d990
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 1]
shr eax, cl
add edx, 0xffffffff
mov dword [ebp + 0x20], edx
and eax, edi
test al, al
jne 0x52d9ec
add dword [esp + 0x30], edi
jmp 0x52d9f0
sub dword [esp + 0x30], edi
mov eax, dword [esp + 0x30]
cmp eax, edi
jl 0x52dde6
cmp eax, 0x14
jg 0x52dde6
cmp dword [ebp + 0x20], edi
mov dword [ebp + 4], 0x22
jge 0x52da5f
mov edx, 8
or ecx, 0xffffffff
lea esp, [esp]
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], edx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], ecx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52da5a
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], edi
jl 0x52da20
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 1]
shr eax, cl
add edx, 0xffffffff
mov dword [ebp + 0x20], edx
and eax, edi
test al, al
jne case.0x52cc6b.35
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x10]
imul ecx, ecx, 0x102
mov dl, byte [esp + 0x30]
add ecx, ebp
mov byte [ecx + eax + 0xab60], dl
add eax, edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x64]
jl 0x52d9f0
add dword [esp + 0x38], edi
mov esi, dword [esp + 0x50]
cmp dword [esp + 0x38], esi
jge 0x52db35
cmp dword [ebp + 0x20], 5
mov dword [ebp + 4], 0x21
jge 0x52db10
mov edx, 8
or ecx, 0xffffffff
lea esp, [esp]
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], edx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], ecx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52db0a
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], 5
jl 0x52dad0
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 5]
shr eax, cl
mov dword [esp + 0x10], 0
and eax, 0x1f
add edx, 0xfffffffb
mov dword [ebp + 0x20], edx
mov dword [esp + 0x30], eax
jmp 0x52da9b
test esi, esi
mov dword [esp + 0x38], 0
jle 0x52dbcb
mov eax, dword [esp + 0x50]
lea ecx, [ebp + 0xf9fc]
mov dword [esp + 0x5c], ecx
lea esi, [ebp + 0xc99c]
lea ebx, [ebp + 0xab60]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
xor edx, edx
xor ecx, ecx
cmp dword [esp + 0x64], edx
mov edi, 0x20
jle 0x52db8f
movzx eax, byte [ebx + edx]
cmp eax, ecx
jle 0x52db80
mov ecx, eax
cmp eax, edi
jge 0x52db86
mov edi, eax
add edx, 1
cmp edx, dword [esp + 0x64]
jl 0x52db76
mov edx, dword [esp + 0x64]
push edx
push ecx
push edi
push ebx
lea eax, [esi + 0x1830]
push eax
push esi
lea ecx, [esi - 0x1830]
push ecx
call fcn.0052f250
mov eax, dword [esp + 0x5c]
mov dword [eax], edi
add eax, 4
add ebx, 0x102
add esi, 0x408
sub dword [esp + 0x34], 1
mov dword [esp + 0x5c], eax
jne 0x52db67
mov eax, dword [ebp + 0xc68]
add eax, 1
mov dword [esp + 0x5c], eax
mov eax, dword [ebp + 0x24]
imul eax, eax, 0x186a0
mov dword [esp + 0x34], eax
xor eax, eax
lea edi, [ebp + 0x40]
mov ecx, 0x100
mov edx, 0xf
rep stosd dword es:[edi], eax
mov dword [esp + 0x40], 0
mov dword [esp + 0x10], 0x100
mov eax, 0xfff
mov dword [esp + 0x2c], edx
lea esi, [ebp + 0x1eb8]
mov ecx, 0xf
shl dl, 4
lea ecx, [ecx]
mov bl, cl
add bl, dl
mov byte [eax + ebp + 0xe7c], bl
sub eax, 1
sub ecx, 1
jns 0x52dc20
lea edx, [eax + 1]
mov dword [esi], edx
mov edx, dword [esp + 0x2c]
sub edx, 1
sub esi, 4
test edx, edx
mov dword [esp + 0x2c], edx
jge 0x52dc15
cmp dword [esp + 0x48], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x2c], 0
jle 0x52dde6
movzx eax, byte [ebp + 0x1ebc]
mov ecx, dword [ebp + eax*4 + 0xf9fc]
mov dword [esp + 0x6c], eax
imul eax, eax, 0x408
add eax, ebp
lea edx, [eax + 0xb16c]
mov dword [esp + 0x54], edx
lea edx, [eax + 0xe1cc]
add eax, 0xc99c
mov dword [esp + 0x60], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], 0x31
mov dword [esp + 0x14], ecx
mov edi, 1
mov eax, dword [ebp + 0x20]
cmp eax, dword [esp + 0x14]
mov dword [ebp + 4], 0x24
jge 0x52dd13
mov edx, 8
or ecx, 0xffffffff
lea esp, [esp]
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], edx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], ecx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52dd0a
add dword [eax + 0xc], edi
mov eax, dword [ebp + 0x20]
cmp eax, dword [esp + 0x14]
jl 0x52dcd0
mov edx, dword [ebp + 0x20]
mov esi, dword [esp + 0x14]
mov eax, dword [ebp + 0x1c]
sub edx, esi
mov ecx, edx
shr eax, cl
mov ebx, edi
mov ecx, esi
shl ebx, cl
mov dword [ebp + 0x20], edx
sub ebx, edi
and eax, ebx
mov dword [esp + 0x28], eax
jmp 0x52ddb9
cmp dword [ebp + 0x20], edi
mov dword [ebp + 4], 0x25
jge 0x52dd8f
mov edx, 8
or ecx, 0xffffffff
lea ecx, [ecx]
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], edx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], ecx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52dd8a
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], edi
jl 0x52dd50
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
mov esi, dword [esp + 0x14]
lea ecx, [edx - 1]
shr eax, cl
mov ecx, dword [esp + 0x28]
add edx, 0xffffffff
mov dword [ebp + 0x20], edx
and eax, edi
lea edx, [ecx + ecx]
or edx, eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x28], edx
mov eax, edx
cmp esi, 0x14
jg 0x52dde6
mov ecx, dword [esp + 0x54]
cmp eax, dword [ecx + esi*4]
jle 0x52ddd2
add esi, edi
mov dword [esp + 0x14], esi
jmp case.0x52cc6b.37
mov edx, dword [esp + 0x3c]
sub eax, dword [edx + esi*4]
js 0x52dde6
cmp eax, 0x102
jl 0x52dea5
mov esi, 0xfffffffc
jmp 0x52ed0a
cmp dword [ebp + 0x20], edi
mov dword [ebp + 4], 0x29
jge 0x52de4f
mov edx, 8
or ecx, 0xffffffff
jmp 0x52de10
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], edx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], ecx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52de4a
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], edi
jl 0x52de10
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
mov ebx, dword [esp + 0x14]
lea ecx, [edx - 1]
shr eax, cl
mov ecx, dword [esp + 0x28]
add edx, 0xffffffff
mov dword [ebp + 0x20], edx
and eax, edi
lea edx, [ecx + ecx]
mov dword [esp + 0x68], eax
or eax, edx
cmp ebx, 0x14
mov dword [esp + 0x28], eax
jg 0x52dde6
mov ecx, dword [esp + 0x54]
cmp eax, dword [ecx + ebx*4]
jg 0x52e4a5
mov edx, dword [esp + 0x3c]
sub eax, dword [edx + ebx*4]
js 0x52dde6
cmp eax, 0x102
jge 0x52dde6
mov ecx, dword [esp + 0x4c]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x44], edx
mov ecx, dword [esp + 0x44]
cmp ecx, dword [esp + 0x5c]
je 0x52e4b0
test ecx, ecx
je 0x52deca
cmp ecx, edi
jne 0x52e16a
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x58], edi
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x52dee8
mov eax, dword [esp + 0x58]
add dword [esp + 0x24], eax
jmp 0x52defb
cmp eax, edi
jne 0x52defb
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x58]
lea eax, [ecx + edx*2]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x58]
lea edx, [ecx + ecx]
mov ecx, dword [esp + 0x40]
test ecx, ecx
mov dword [esp + 0x58], edx
jne 0x52df63
mov eax, dword [esp + 0x2c]
add eax, edi
cmp eax, dword [esp + 0x48]
mov dword [esp + 0x2c], eax
jge 0x52dde6
movzx eax, byte [eax + ebp + 0x1ebc]
mov edx, dword [ebp + eax*4 + 0xf9fc]
mov dword [esp + 0x6c], eax
imul eax, eax, 0x408
add eax, ebp
mov dword [esp + 0x60], edx
lea edx, [eax + 0xb16c]
mov dword [esp + 0x54], edx
lea edx, [eax + 0xe1cc]
add eax, 0xc99c
mov ecx, 0x32
mov dword [esp + 0x4c], edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x60]
sub ecx, edi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x14], eax
mov ecx, dword [ebp + 0x20]
cmp ecx, dword [esp + 0x14]
mov dword [ebp + 4], 0x26
jge 0x52dfd3
mov edx, 8
or ecx, 0xffffffff
lea esp, [esp]
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], edx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], ecx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52dfca
add dword [eax + 0xc], edi
mov eax, dword [ebp + 0x20]
cmp eax, dword [esp + 0x14]
jl 0x52df90
mov edx, dword [ebp + 0x20]
mov ebx, dword [esp + 0x14]
mov eax, dword [ebp + 0x1c]
sub edx, ebx
mov ecx, edx
shr eax, cl
mov esi, edi
mov ecx, ebx
shl esi, cl
mov dword [ebp + 0x20], edx
sub esi, edi
and eax, esi
cmp ebx, 0x14
mov dword [esp + 0x28], eax
jg 0x52dde6
mov ecx, dword [esp + 0x54]
cmp eax, dword [ecx + ebx*4]
jle 0x52e098
add ebx, edi
mov dword [esp + 0x14], ebx
cmp dword [ebp + 0x20], edi
mov dword [ebp + 4], 0x27
jge 0x52e06f
mov edx, 8
or ecx, 0xffffffff
jmp 0x52e030
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], edx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], ecx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52e06a
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], edi
jl 0x52e030
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
mov ebx, dword [esp + 0x14]
lea ecx, [edx - 1]
shr eax, cl
add edx, 0xffffffff
mov dword [ebp + 0x20], edx
mov edx, dword [esp + 0x28]
and eax, edi
lea ecx, [edx + edx]
mov dword [esp + 0x68], eax
or eax, ecx
jmp 0x52dff0
mov edx, dword [esp + 0x3c]
sub eax, dword [edx + ebx*4]
js 0x52dde6
cmp eax, 0x102
jge 0x52dde6
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx + eax*4]
test eax, eax
mov dword [esp + 0x44], eax
je 0x52ded6
cmp eax, edi
je 0x52ded6
mov eax, dword [ebp + 0x1e7c]
movzx ecx, byte [eax + ebp + 0xe7c]
mov cl, byte [ecx + ebp + 0xd7c]
mov edx, dword [esp + 0x24]
add edx, edi
movzx eax, cl
add dword [ebp + eax*4 + 0x40], edx
cmp byte [ebp + 0x28], 0
mov dword [esp + 0x24], edx
je 0x52e130
test edx, edx
jle 0x52deb0
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x34]
jge 0x52dde6
mov ebx, dword [ebp + 0xc50]
movzx si, cl
sub edx, edi
mov word [ebx + eax*2], si
add eax, edi
test edx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
jg 0x52e103
jmp 0x52deb0
test edx, edx
jle 0x52deb0
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x20]
cmp ecx, esi
jge 0x52dde6
mov ebx, dword [ebp + 0xc4c]
sub edx, edi
mov dword [ebx + ecx*4], eax
add ecx, edi
test edx, edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
jg 0x52e144
jmp 0x52deb0
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x20], edx
jge 0x52dde6
add ecx, 0xffffffff
cmp ecx, 0x10
jae 0x52e24e
cmp ecx, 3
mov esi, dword [ebp + 0x1e7c]
lea edx, [esi + ebp]
mov bl, byte [ecx + edx + 0xe7c]
mov dword [esp + 0x80], edx
mov byte [esp + 0x1f], bl
jbe 0x52e22c
lea eax, [esi + ecx]
lea edx, [ebp + 0xe7b]
mov esi, ebp
sub esi, edx
add esi, 0xe7c
mov dword [esp + 0x7c], esi
mov esi, ebp
sub esi, edx
lea edi, [esi + 0xe7a]
mov esi, ebp
sub esi, edx
add esi, 0xe78
mov dword [esp + 0x74], esi
mov esi, ebp
sub esi, edx
add esi, 0xe79
mov dword [esp + 0x70], esi
lea esi, [ecx - 4]
shr esi, 2
add eax, edx
add esi, 1
movzx edx, byte [eax]
mov ebx, dword [esp + 0x7c]
mov byte [ebx + eax], dl
movzx edx, byte [edi + eax]
mov byte [eax], dl
mov edx, dword [esp + 0x70]
movzx ebx, byte [edx + eax]
mov byte [edi + eax], bl
mov ebx, dword [esp + 0x74]
movzx ebx, byte [ebx + eax]
mov byte [edx + eax], bl
sub ecx, 4
sub eax, 4
sub esi, 1
jne 0x52e1f0
mov edx, dword [esp + 0x80]
mov bl, byte [esp + 0x1f]
test ecx, ecx
jbe 0x52e243
sub ecx, 1
mov al, byte [ecx + edx + 0xe7c]
mov byte [ecx + edx + 0xe7d], al
jne 0x52e230
mov byte [edx + 0xe7c], bl
jmp 0x52e36d
mov edx, ecx
shr edx, 4
mov edi, dword [ebp + edx*4 + 0x1e7c]
lea esi, [ebp + edx*4 + 0x1e7c]
and ecx, 0xf
add ecx, edi
cmp ecx, edi
mov bl, byte [ecx + ebp + 0xe7c]
mov byte [esp + 0x1f], bl
jle 0x52e295
jmp 0x52e280
mov al, byte [ecx + ebp + 0xe7b]
mov byte [ecx + ebp + 0xe7c], al
sub ecx, 1
cmp ecx, dword [esi]
jg 0x52e280
add dword [esi], 1
test edx, edx
jle 0x52e2c0
mov eax, esi
mov edi, edi
add dword [eax], 0xffffffff
mov ecx, dword [eax - 4]
mov esi, dword [eax]
mov cl, byte [ecx + ebp + 0xe8b]
sub edx, 1
sub eax, 4
test edx, edx
mov byte [esi + ebp + 0xe7c], cl
jg 0x52e2a0
add dword [ebp + 0x1e7c], 0xffffffff
mov eax, dword [ebp + 0x1e7c]
mov byte [eax + ebp + 0xe7c], bl
cmp dword [ebp + 0x1e7c], 0
jne 0x52e36d
mov ecx, 0xfff
mov edi, 0xf
lea esi, [ebp + 0x1eb8]
mov eax, 0xf
jmp 0x52e300
mov ebx, dword [esi]
lea edx, [eax + ebp]
movzx edx, byte [edx + ebx + 0xe7c]
mov byte [ecx + ebp + 0xe7c], dl
mov ebx, dword [esi]
lea edx, [eax + ebp]
movzx edx, byte [edx + ebx + 0xe7b]
mov byte [ecx + ebp + 0xe7b], dl
mov ebx, dword [esi]
lea edx, [eax + ebp]
movzx edx, byte [edx + ebx + 0xe7a]
mov byte [ecx + ebp + 0xe7a], dl
mov ebx, dword [esi]
lea edx, [eax + ebp]
movzx edx, byte [edx + ebx + 0xe79]
mov byte [ecx + ebp + 0xe79], dl
sub eax, 4
sub ecx, 4
test eax, eax
jge 0x52e300
lea eax, [ecx + 1]
mov dword [esi], eax
sub edi, 1
sub esi, 4
test edi, edi
jge 0x52e2f1
mov bl, byte [esp + 0x1f]
movzx ecx, bl
movzx edx, byte [ecx + ebp + 0xd7c]
add dword [ebp + edx*4 + 0x40], 1
cmp byte [ebp + 0x28], 0
lea eax, [ecx + ebp + 0xd7c]
lea ecx, [ebp + edx*4 + 0x40]
mov edx, dword [esp + 0x20]
je 0x52e3a2
movzx ax, byte [eax]
mov ecx, dword [ebp + 0xc50]
mov word [ecx + edx*2], ax
jmp 0x52e3ae
movzx eax, byte [eax]
mov ecx, dword [ebp + 0xc4c]
mov dword [ecx + edx*4], eax
mov ecx, dword [esp + 0x40]
add dword [esp + 0x20], 1
test ecx, ecx
jne 0x52e411
mov eax, dword [esp + 0x2c]
add eax, 1
cmp eax, dword [esp + 0x48]
mov dword [esp + 0x2c], eax
jge 0x52dde6
movzx eax, byte [eax + ebp + 0x1ebc]
mov edx, dword [ebp + eax*4 + 0xf9fc]
mov dword [esp + 0x6c], eax
imul eax, eax, 0x408
add eax, ebp
mov dword [esp + 0x60], edx
lea edx, [eax + 0xb16c]
mov dword [esp + 0x54], edx
lea edx, [eax + 0xe1cc]
add eax, 0xc99c
mov ecx, 0x32
mov dword [esp + 0x4c], edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x60]
sub ecx, 1
mov dword [esp + 0x40], ecx
mov dword [esp + 0x14], eax
mov edi, 1
mov ecx, dword [ebp + 0x20]
cmp ecx, dword [esp + 0x14]
mov dword [ebp + 4], 0x28
jge 0x52e483
mov edx, 8
or ecx, 0xffffffff
lea ecx, [ecx]
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], edx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], ecx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52e47a
add dword [eax + 0xc], edi
mov eax, dword [ebp + 0x20]
cmp eax, dword [esp + 0x14]
jl 0x52e440
mov edx, dword [ebp + 0x20]
mov ebx, dword [esp + 0x14]
mov eax, dword [ebp + 0x1c]
sub edx, ebx
mov ecx, edx
shr eax, cl
mov esi, edi
mov ecx, ebx
shl esi, cl
mov dword [ebp + 0x20], edx
sub esi, edi
and eax, esi
jmp 0x52de73
add ebx, edi
mov dword [esp + 0x14], ebx
jmp case.0x52cc6b.41
mov eax, dword [ebp + 0x34]
test eax, eax
jl 0x52dde6
cmp eax, dword [esp + 0x20]
jge 0x52dde6
lea eax, [ebp + 0x448]
lea esi, [ebp + 0x40]
mov ecx, 0x100
mov edi, eax
mov dword [ebp + 0x444], 0
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x100
mov ebx, 1
jmp 0x52e4f0
mov edx, dword [eax - 4]
add dword [eax], edx
add eax, 4
sub ecx, ebx
jne 0x52e4f0
mov edx, dword [esp + 0x20]
xor edi, edi
xor esi, esi
mov dword [esp + 0x10], esi
lea eax, [ebp + 0x444]
mov edi, edi
mov ecx, dword [eax]
cmp ecx, edi
jl 0x52e5a9
cmp ecx, edx
jg 0x52e5a9
add esi, ebx
add eax, 4
cmp esi, 0x100
jle 0x52e510
cmp byte [ebp + 0x28], 0
mov dword [esp + 0x10], esi
mov dword [ebp + 0xc], edi
mov byte [ebp + 8], 0
mov dword [ebp + 0xc60], 0xffffffff
mov dword [ebp + 4], 2
je 0x52e7a9
lea edi, [ebp + 0x848]
mov ecx, 0x101
lea esi, [ebp + 0x444]
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
test edx, edx
jle 0x52e5d9
mov edi, edi
mov eax, dword [ebp + 0xc50]
lea edx, [eax + ecx*2]
movzx eax, byte [edx]
mov si, word [ebp + eax*4 + 0x848]
lea eax, [ebp + eax*4 + 0x848]
mov word [edx], si
mov esi, dword [ebp + 0xc54]
mov edx, ecx
sar edx, 1
add esi, edx
test cl, 1
jne 0x52e5b7
mov dl, byte [esi]
and dl, 0xf0
or dl, byte [eax + 2]
jmp 0x52e5cd
mov dword [esp + 0x10], esi
mov esi, 0xfffffffc
jmp 0x52ed0a
mov edx, dword [eax]
mov ebx, dword [eax]
sar edx, 0xc
xor dl, byte [esi]
sar ebx, 0xc
and dl, 0xf
xor dl, bl
mov ebx, 1
mov byte [esi], dl
add dword [eax], ebx
add ecx, ebx
cmp ecx, dword [esp + 0x20]
jl 0x52e570
mov edx, dword [ebp + 0x34]
mov ecx, dword [ebp + 0xc54]
mov eax, edx
sar eax, 1
movzx eax, byte [eax + ecx]
movzx ecx, dl
and cl, 1
add cl, cl
add cl, cl
shr eax, cl
mov ecx, dword [ebp + 0xc50]
mov dword [esp + 0x10], edx
movzx edx, word [ecx + edx*2]
and eax, 0xf
shl eax, 0x10
or eax, edx
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
mov eax, dword [ebp + 0xc50]
lea esi, [eax + ecx*2]
mov eax, dword [ebp + 0xc54]
mov edx, ecx
and cl, 1
add cl, cl
sar edx, 1
movzx eax, byte [edx + eax]
add cl, cl
shr eax, cl
movzx ecx, word [esi]
and eax, 0xf
shl eax, 0x10
or eax, ecx
test byte [esp + 0x18], 1
mov cx, word [esp + 0x10]
mov word [esi], cx
mov ecx, dword [ebp + 0xc54]
lea esi, [edx + ecx]
mov ecx, dword [esp + 0x10]
jne 0x52e669
mov dl, byte [esi]
sar ecx, 0x10
and dl, 0xf0
or cl, dl
mov byte [esi], cl
jmp 0x52e67a
mov edx, ecx
sar edx, 0xc
xor dl, byte [esi]
sar ecx, 0xc
and dl, 0xf
xor dl, cl
mov byte [esi], dl
mov ecx, dword [esp + 0x18]
cmp ecx, dword [ebp + 0x34]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], eax
jne 0x52e610
mov ecx, dword [ebp + 0x24]
mov eax, dword [ebp + 0x34]
imul ecx, ecx, 0x186a0
xor esi, esi
cmp byte [ebp + 0x10], 0
mov dword [ebp + 0x38], eax
mov dword [ebp + 0x440], esi
je 0x52e752
cmp eax, ecx
mov dword [ebp + 0x14], esi
mov dword [ebp + 0x18], esi
jb 0x52e6cd
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.00549930
add esp, 0x7c
ret 4
lea ecx, [ebp + 0x444]
push ecx
push eax
call fcn.0052a400
mov edx, dword [ebp + 0x38]
mov edi, dword [ebp + 0xc54]
mov ecx, edx
shr ecx, 1
mov dword [ebp + 0x3c], eax
movzx edi, byte [ecx + edi]
movzx ecx, dl
and cl, 1
add cl, cl
add cl, cl
shr edi, cl
mov ecx, dword [ebp + 0xc50]
movzx edx, word [ecx + edx*2]
add dword [ebp + 0x440], ebx
and edi, 0xf
shl edi, 0x10
or edi, edx
cmp dword [ebp + 0x14], esi
mov dword [ebp + 0x38], edi
jne 0x52e738
mov ecx, dword [ebp + 0x18]
mov edx, dword [ecx*4 + 0x597680]
add ecx, 1
cmp ecx, 0x200
mov dword [ebp + 0x14], edx
mov dword [ebp + 0x18], ecx
jne 0x52e738
mov dword [ebp + 0x18], esi
add dword [ebp + 0x14], 0xffffffff
mov ecx, dword [ebp + 0x14]
xor edx, edx
cmp ecx, ebx
sete dl
xor edx, eax
mov dword [ebp + 0x3c], edx
xor esi, esi
jmp 0x52ed0a
cmp eax, ecx
jae 0x52e6b6
lea ecx, [ebp + 0x444]
push ecx
push eax
call fcn.0052a400
mov ecx, dword [ebp + 0xc54]
mov dword [ebp + 0x3c], eax
mov eax, dword [ebp + 0x38]
mov edx, eax
shr edx, 1
movzx edx, byte [edx + ecx]
movzx ecx, al
and cl, 1
add cl, cl
add cl, cl
shr edx, cl
mov ecx, dword [ebp + 0xc50]
movzx eax, word [ecx + eax*2]
add dword [ebp + 0x440], ebx
and edx, 0xf
shl edx, 0x10
or edx, eax
mov dword [ebp + 0x38], edx
xor esi, esi
jmp 0x52ed0a
cmp edx, edi
mov dword [esp + 0x10], edi
jle 0x52e7e8
mov ecx, dword [ebp + 0xc4c]
mov edx, dword [esp + 0x10]
movzx eax, byte [ecx + edx*4]
mov esi, dword [ebp + eax*4 + 0x444]
lea eax, [ebp + eax*4 + 0x444]
shl edx, 8
or dword [ecx + esi*4], edx
add dword [eax], ebx
mov eax, dword [esp + 0x10]
lea ecx, [ecx + esi*4]
add eax, ebx
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x10], eax
jl 0x52e7b1
mov ecx, dword [ebp + 0x34]
mov eax, dword [ebp + 0xc4c]
mov edx, dword [eax + ecx*4]
shr edx, 8
mov dword [ebp + 0x38], edx
mov edx, dword [ebp + 0x24]
xor ecx, ecx
imul edx, edx, 0x186a0
cmp byte [ebp + 0x10], cl
mov dword [ebp + 0x440], ecx
je 0x52e85b
mov dword [ebp + 0x14], ecx
mov dword [ebp + 0x18], ecx
mov ecx, dword [ebp + 0x38]
cmp ecx, edx
jae 0x52e6b6
mov eax, dword [eax + ecx*4]
movzx ecx, al
mov dword [ebp + 0x38], eax
shr dword [ebp + 0x38], 8
mov dword [ebp + 0x3c], ecx
mov dword [ebp + 0x440], ebx
mov edx, dword [0x597680]
mov dword [ebp + 0x14], edx
add dword [ebp + 0x14], 0xffffffff
mov eax, dword [ebp + 0x14]
xor ecx, ecx
cmp eax, ebx
sete cl
mov dword [ebp + 0x18], ebx
xor dword [ebp + 0x3c], ecx
xor esi, esi
jmp 0x52ed0a
mov ecx, dword [ebp + 0x38]
cmp ecx, edx
jae 0x52e6b6
mov eax, dword [eax + ecx*4]
movzx ecx, al
mov dword [ebp + 0x38], eax
shr dword [ebp + 0x38], 8
mov dword [ebp + 0x3c], ecx
mov dword [ebp + 0x440], ebx
xor esi, esi
jmp 0x52ed0a
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x2a
jge 0x52e8d2
or edx, 0xffffffff
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52e8cd
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], ecx
jl 0x52e897
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x72
jne 0x52dde6
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x2b
jge 0x52e94f
or edx, 0xffffffff
jmp 0x52e910
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52e94a
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], ecx
jl 0x52e910
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x45
jne 0x52dde6
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x2c
jge 0x52e9c0
or edx, 0xffffffff
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52e9bb
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], ecx
jl 0x52e981
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x38
jne 0x52dde6
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x2d
jge 0x52ea3f
or edx, 0xffffffff
jmp 0x52ea00
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52ea3a
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], ecx
jl 0x52ea00
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x50
jne 0x52dde6
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x2e
jge 0x52eabf
or edx, 0xffffffff
jmp 0x52ea80
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52eaba
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], ecx
jl 0x52ea80
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x90
jne 0x52dde6
mov dword [ebp + 0xc5c], 0
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x2f
jge 0x52eb3f
or edx, 0xffffffff
nop
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52eb3a
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], ecx
jl 0x52eb00
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
mov edx, dword [ebp + 0xc5c]
and eax, 0xff
movzx eax, al
shl edx, 8
or edx, eax
mov dword [ebp + 0xc5c], edx
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x30
jge 0x52ebc0
or edx, 0xffffffff
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52ebbb
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], ecx
jl 0x52eb81
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
mov ecx, dword [ebp + 0xc5c]
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
movzx edx, al
shl ecx, 8
or ecx, edx
mov dword [ebp + 0xc5c], ecx
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x31
jge 0x52ec41
or edx, 0xffffffff
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52ec3c
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], ecx
jl 0x52ec02
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
mov ecx, dword [ebp + 0xc5c]
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
movzx edx, al
shl ecx, 8
or ecx, edx
mov dword [ebp + 0xc5c], ecx
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x32
jge 0x52ecc2
or edx, 0xffffffff
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x52e87c
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov esi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl esi, 8
or esi, ebx
mov dword [ebp + 0x1c], esi
add dword [eax], edi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], edi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x52ecbd
add dword [eax + 0xc], edi
cmp dword [ebp + 0x20], ecx
jl 0x52ec83
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
mov ecx, dword [ebp + 0xc5c]
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
movzx edx, al
shl ecx, 8
or ecx, edx
mov dword [ebp + 0xc5c], ecx
mov dword [ebp + 4], edi
mov esi, 4
jmp 0x52ed0a
push 0xfa1
call fcn.004add40
push 0xfa2
call fcn.004add40
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x38]
mov dword [ebp + 0xfa14], eax
mov eax, dword [esp + 0x64]
mov dword [ebp + 0xfa18], ecx
mov ecx, dword [esp + 0x50]
mov dword [ebp + 0xfa1c], edx
mov edx, dword [esp + 0x48]
mov dword [ebp + 0xfa20], eax
mov eax, dword [esp + 0x5c]
mov dword [ebp + 0xfa24], ecx
mov ecx, dword [esp + 0x2c]
mov dword [ebp + 0xfa28], edx
mov edx, dword [esp + 0x40]
mov dword [ebp + 0xfa2c], eax
mov eax, dword [esp + 0x44]
mov dword [ebp + 0xfa30], ecx
mov ecx, dword [esp + 0x34]
mov dword [ebp + 0xfa34], edx
mov edx, dword [esp + 0x20]
mov dword [ebp + 0xfa38], eax
mov eax, dword [esp + 0x24]
mov dword [ebp + 0xfa3c], ecx
mov ecx, dword [esp + 0x58]
mov dword [ebp + 0xfa40], edx
mov edx, dword [esp + 0x30]
mov dword [ebp + 0xfa44], eax
mov eax, dword [esp + 0x78]
mov dword [ebp + 0xfa48], ecx
mov ecx, dword [esp + 0x14]
mov dword [ebp + 0xfa4c], edx
mov edx, dword [esp + 0x28]
mov dword [ebp + 0xfa50], eax
mov eax, dword [esp + 0x68]
mov dword [ebp + 0xfa54], ecx
mov ecx, dword [esp + 0x6c]
mov dword [ebp + 0xfa58], edx
mov edx, dword [esp + 0x60]
mov dword [ebp + 0xfa5c], eax
mov eax, dword [esp + 0x54]
mov dword [ebp + 0xfa60], ecx
mov ecx, dword [esp + 0x3c]
pop edi
mov dword [ebp + 0xfa64], edx
mov edx, dword [esp + 0x48]
mov dword [ebp + 0xfa68], eax
mov dword [ebp + 0xfa6c], ecx
mov ecx, dword [esp + 0x84]
mov eax, esi
pop esi
mov dword [ebp + 0xfa70], edx
pop ebp
pop ebx
xor ecx, esp
call fcn.00549930
add esp, 0x7c
ret 4