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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x44
mov esi, ecx
mov eax, dword [0x80e040]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov eax, dword [ecx + 0x24c]
mov dword [ebp - 0x50], 0
test eax, eax
jne 0x514748
mov eax, dword [esi]
add eax, 0xfffffff9
cmp eax, 3
ja case.default.0x513aba
mov ecx, dword [esi + 4]
mov dword [ebp - 0x28], ecx
mov edi, dword [esi + 0x34]
lea ecx, [esi + 8]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x1c], esi
jmp dword [eax*4 + 0x7a6df4]
mov ecx, eax
mov edx, dword [ebp - 0x38]
lea eax, [ebp - 0x14]
push eax
call fcn.005148b0
add esp, 4
test eax, eax
je 0x514699
mov eax, dword [ebp - 0x14]
jmp 0x513b0b
mov esi, eax
mov eax, dword [ebp - 0x38]
mov edx, dword [eax]
mov eax, esi
shr edx, cl
movzx esi, dl
lea eax, [eax + esi*4]
movzx ebx, byte [eax]
cmp ebx, 9
jae 0x514721
mov esi, dword [ebp - 0x1c]
movzx edx, bl
add edx, ecx
mov dword [esi + 0xc], edx
movzx eax, word [eax + 2]
mov edi, dword [ebp - 0x24]
mov ecx, dword [esi + 0x60]
mov byte [ecx + edi], al
mov eax, dword [esi + 0xc0]
dec eax
mov dword [esi + 0xc0], eax
inc edi
cmp edi, dword [esi + 0x40]
je 0x514448
dec dword [ebp - 0x28]
je 0x513d83
mov dword [ebp - 0x24], edi
test eax, eax
je 0x5146c4
mov dword [ebp - 0x14], 0xffffffff
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x100]
lea edx, [ecx - 0x12]
cmp edx, 0xf
jae 0x513adf
mov ebx, dword [esi + 0x14]
dec ebx
mov edi, ecx
cmp ebx, 0xffffffff
je 0x513ac1
mov ecx, dword [esi + 8]
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx + 0x10]
mov edx, ecx
shr edx, 8
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 8], edx
movzx edx, byte [esi]
shld edx, ecx, 0x18
mov eax, dword [ebp - 0x1c]
mov dword [eax + 8], edx
lea ecx, [edi - 8]
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x14], ebx
inc esi
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x10], esi
mov eax, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
dec ebx
add edi, 0xffffffe6
cmp edi, 0xf
mov edi, ecx
jae 0x513ae8
jmp 0x513b5d
mov ecx, eax
mov edx, dword [ebp - 0x38]
lea eax, [ebp - 0x14]
push eax
call fcn.005148b0
add esp, 4
test eax, eax
je 0x514699
mov cl, byte [ebp - 0x14]
mov edi, dword [ebp - 0x24]
jmp 0x513c69
add ebx, 8
mov dword [esi + 0xc], ebx
shr edx, 8
and edx, dword [ecx*4 + 0x7aa1f0]
and edx, 0x7f
lea ecx, [eax + edx*4]
movzx eax, word [eax + 2]
lea eax, [ecx + eax*4]
mov cl, byte [eax]
jmp 0x513c5b
mov eax, dword [esi + 0xc0]
jmp 0x513b34
sub dword [esi + 0xb8], edi
mov dword [ebp - 0x28], edi
mov edi, dword [ebp - 0x24]
mov dword [esi], 8
cmp dword [esi + 0xb0], 0
jne 0x513bfc
mov eax, dword [esi + 0x44]
lea ecx, [edi - 1]
and ecx, eax
lea edx, [edi - 2]
and edx, eax
mov eax, dword [esi + 0x60]
mov cl, byte [eax + ecx]
mov bh, byte [eax + edx]
mov eax, dword [esi + 0xc0]
jmp 0x513c92
mov ecx, eax
mov eax, dword [ebp - 0x38]
mov edx, dword [eax]
mov eax, ecx
mov ecx, ebx
shr edx, cl
movzx ecx, dl
lea eax, [eax + ecx*4]
movzx ecx, byte [eax]
cmp ecx, 9
jae 0x513bdb
mov edi, dword [ebp - 0x24]
movzx ecx, cl
add ecx, ebx
mov dword [esi + 0xc], ecx
mov cl, byte [eax + 2]
mov eax, dword [esi + 0x60]
mov byte [eax + edi], cl
mov eax, dword [esi + 0xc0]
dec eax
mov dword [esi + 0xc0], eax
inc edi
cmp edi, dword [esi + 0x40]
je 0x514448
mov bh, byte [ebp - 0x20]
dec dword [ebp - 0x28]
je 0x513d83
mov dword [ebp - 0x24], edi
test eax, eax
je 0x5146a0
mov byte [ebp - 0x20], cl
movzx eax, cl
movzx ecx, bh
mov edx, dword [esi + 0x6c]
mov cl, byte [edx + ecx + 0x100]
or cl, byte [edx + eax]
mov eax, dword [esi + 0x70]
movzx ecx, cl
mov edx, dword [esi + 0x78]
movzx eax, byte [eax + ecx]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x14], 0xffffffff
mov ebx, dword [esi + 0xc]
lea ecx, [ebx - 0x12]
cmp ecx, 0xf
jae 0x513c40
mov edi, dword [esi + 0x14]
dec edi
mov ecx, ebx
cmp edi, 0xffffffff
je 0x513bb7
mov ebx, dword [esi + 8]
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx + 0x10]
mov edx, ebx
shr edx, 8
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 8], edx
movzx edx, byte [esi]
shld edx, ebx, 0x18
mov eax, dword [ebp - 0x1c]
mov dword [eax + 8], edx
lea ebx, [ecx - 8]
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], ebx
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x14], edi
inc esi
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x10], esi
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x1c]
dec edi
add ecx, 0xffffffe6
cmp ecx, 0xf
mov ecx, ebx
jae 0x513c49
jmp 0x513cdf
lea eax, [ebp - 0x14]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x38]
push eax
call fcn.005148b0
add esp, 4
test eax, eax
je 0x51467a
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
jmp 0x513e69
sete al
movzx eax, al
mov dword [esi + 0xb4], eax
mov eax, dword [esi + 0x48]
dec eax
mov dword [esi + 0x48], eax
and eax, 3
mov eax, dword [esi + eax*4 + 0x4c]
mov dword [esi + 0x10c], eax
jmp 0x513ee2
mov dword [ebp - 0x28], 0
cmp dword [esi + 0xb8], 0
jle 0x5140f6
mov dword [esi], 9
cmp dword [esi + 0x10c], 0
mov dword [ebp - 0x24], edi
jns 0x513d5e
cmp dword [esi + 0xc8], 0
je 0x51468a
xor eax, eax
dec eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0x98]
movzx ecx, byte [esi + 0x104]
mov edx, esi
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 8]
mov esi, dword [esi + 0xc]
mov ecx, dword [edx + 0x10]
mov dword [ebp - 0x40], ecx
mov ecx, dword [edx + 0x14]
mov dword [ebp - 0x3c], ecx
lea ecx, [esi - 0x12]
mov dword [ebp - 0x2c], eax
mov edx, eax
mov dword [ebp - 0x48], esi
mov eax, esi
cmp ecx, 0xe
ja 0x513e41
mov eax, dword [ebp - 0x40]
lea edi, [eax + 1]
mov eax, dword [ebp - 0x3c]
lea ebx, [eax - 1]
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x1c]
cmp ebx, 0xffffffff
je 0x513d39
mov eax, edx
shr eax, 8
mov dword [esi + 8], eax
movzx eax, byte [edi - 1]
shrd edx, eax, 8
mov dword [esi + 8], edx
lea eax, [ecx - 8]
mov dword [esi + 0xc], eax
mov dword [esi + 0x14], ebx
mov dword [esi + 0x10], edi
inc edi
dec ebx
add ecx, 0xffffffe6
cmp ecx, 0xf
mov ecx, eax
jb 0x513e0d
mov ecx, eax
shr edx, cl
movzx ecx, dl
mov esi, dword [ebp - 0x20]
lea ecx, [esi + ecx*4]
movzx ebx, byte [ecx]
cmp ebx, 9
jae 0x5143c1
mov esi, dword [ebp - 0x1c]
movzx edx, bl
add edx, eax
mov dword [esi + 0xc], edx
movzx ebx, word [ecx + 2]
mov ecx, dword [esi + 0xc8]
lea eax, [ecx - 1]
mov dword [esi + 0xc8], eax
mov dword [esi + 0xb4], 0
cmp ebx, 0xf
jbe 0x51419d
movzx edx, byte [esi + ebx + 0x270]
xor eax, eax
test edx, edx
je 0x513eca
mov dword [ebp - 0x20], ecx
cmp dl, 0x18
ja 0x514610
mov ecx, dword [esi + 0xc]
mov edi, 0x20
sub edi, ecx
cmp edi, edx
jb 0x51412e
mov eax, dword [ebp - 0x38]
mov eax, dword [eax]
shr eax, cl
and eax, dword [edx*4 + 0x7aa210]
add ecx, edx
mov dword [esi + 0xc], ecx
mov cl, byte [esi + 0xf0]
shl eax, cl
add eax, dword [esi + ebx*4 + 0x490]
mov dword [esi + 0x10c], eax
mov edi, dword [ebp - 0x24]
mov ecx, dword [esi + 0x38]
mov ebx, dword [esi + 0x3c]
cmp ebx, ecx
je 0x513ef6
cmp edi, ecx
cmovl ecx, edi
mov dword [esi + 0x3c], ecx
mov ebx, ecx
mov edx, dword [esi + 0x108]
mov ecx, eax
sub ecx, ebx
mov dword [ebp - 0x28], edx
jg 0x513fc7
mov ecx, edi
sub ecx, eax
and ecx, dword [esi + 0x44]
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx + 0x48]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x60]
mov dword [ebp - 0x20], edx
mov edi, esi
and edi, 3
mov ebx, dword [ebp - 0x1c]
mov dword [ebx + edi*4 + 0x4c], eax
mov ebx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x28]
lea edx, [edi + ebx]
inc esi
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x48], esi
mov esi, dword [ebp - 0x1c]
mov eax, edi
mov edi, edx
mov edx, dword [ebp - 0x20]
sub dword [esi + 0xb8], eax
add eax, ecx
movups xmm0, xmmword [edx + ecx]
movups xmmword [edx + ebx], xmm0
cmp eax, ebx
setg bl
cmp edi, ecx
setg bh
test bl, bh
jne 0x51421d
mov esi, dword [esi + 0x40]
cmp edi, esi
jge 0x514440
cmp eax, esi
jge 0x514440
cmp dword [ebp - 0x28], 0x11
mov esi, dword [ebp - 0x1c]
jge 0x513f98
cmp dword [esi + 0xb8], 0
jle 0x514108
mov dword [ebp - 0x24], edi
jmp 0x514256
mov ebx, dword [ebp - 0x24]
add ebx, edx
add ecx, edx
mov eax, dword [ebp - 0x28]
cmp eax, 0x21
jae 0x513fb1
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [ebx + 0x10], xmm0
jmp 0x513f83
add ebx, 0x10
add ecx, 0x10
add eax, 0xfffffff0
push eax
push ecx
push ebx
call fcn.005cc950
add esp, 0xc
jmp 0x513f83
cmp eax, 0x7ffffffc
jg 0x514703
mov edx, dword [ebp - 0x50]
sub edx, ecx
mov edi, dword [ebp - 0x28]
jge 0x5144c2
lea ecx, [edi - 4]
cmp ecx, 0x1b
ja 0x5146ef
mov edx, dword [esi + 0x248]
xor ecx, ecx
cmp dword [edx + 0x7c], 0
mov dword [ebp - 0x3c], edx
jne 0x514792
movzx ecx, cl
mov edi, dword [edx + ecx*4 + 0xc4]
mov dword [ebp - 0x44], ecx
mov ecx, dword [edx + ecx*4 + 0x1c4]
mov dword [ebp - 0x20], ecx
mov edx, edi
mov edi, dword [ebp - 0x28]
movzx ecx, byte [edx + edi]
not ebx
sub eax, dword [ebp - 0x50]
add eax, ebx
mov ebx, dword [ecx*4 + 0x7aa210]
and ebx, eax
imul ebx, edi
add ebx, dword [edx + edi*4 + 0x20]
mov dword [ebp - 0x48], ebx
mov ebx, edi
mov edi, esi
mov esi, dword [esi + 0xb4]
add dword [edi + 0x48], esi
mov edi, eax
sar edi, cl
mov esi, dword [ebp - 0x20]
mov esi, dword [esi + 0xc]
mov dword [ebp - 0x2c], edi
cmp edi, esi
jge 0x514575
cmp byte [edx + ebx], 0
je 0x514575
mov ecx, dword [ebp - 0x20]
mov edi, edx
mov eax, dword [ebp - 0x28]
cmp byte [edi + eax], 0
mov esi, dword [ebp - 0x1c]
mov ebx, 0xfffffff4
je 0x51411a
mov eax, dword [edi + 0xa4]
test eax, eax
je 0x51470d
mov ebx, dword [ebp - 0x2c]
cmp ebx, dword [ecx + 0xc]
mov edi, dword [ebp - 0x28]
jge 0x5146f9
add eax, dword [ebp - 0x48]
movsx edx, word [ecx + 0x18]
mov dword [ebp - 0x40], ecx
mov ecx, dword [esi + 0x60]
add ecx, dword [ebp - 0x24]
cmp ebx, edx
je 0x5140e7
push ebx
push dword [ebp - 0x40]
push edi
push eax
push ecx
call fcn.005c0e40
add esp, 0x14
test eax, eax
mov ebx, 0xfffffff5
je 0x514762
sub dword [esi + 0xb8], eax
mov edi, dword [ebp - 0x24]
add edi, eax
cmp edi, dword [esi + 0x40]
jl 0x513f83
jmp 0x5146e4
push edi
push eax
push ecx
call fcn.005cc950
add esp, 0xc
mov eax, edi
jmp 0x5140ce
mov dword [esi], 0xe
xor ebx, ebx
inc ebx
mov dword [ebp - 0x28], 0
jmp 0x514111
mov dword [esi], 0xe
xor ebx, ebx
inc ebx
mov dword [esi + 0x34], edi
mov eax, dword [ebp - 0x28]
mov dword [esi + 4], eax
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005c9f16
mov eax, ebx
add esp, 0x44
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 0x14]
dec eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x34], ebx
cmp dword [ebp - 0x44], 0xffffffff
je 0x514656
mov ebx, dword [esi + 8]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x30], eax
mov eax, ebx
shr eax, 8
mov esi, dword [ebp - 0x1c]
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax]
shld eax, ebx, 0x18
mov esi, dword [ebp - 0x1c]
mov dword [esi + 8], eax
add ecx, 0xfffffff8
mov esi, dword [ebp - 0x1c]
mov dword [esi + 0xc], ecx
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x44]
mov dword [esi + 0x14], ebx
inc dword [ebp - 0x30]
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x30]
mov dword [esi + 0x10], ebx
mov esi, dword [ebp - 0x1c]
dec dword [ebp - 0x44]
add edi, 8
cmp edi, edx
mov ebx, dword [ebp - 0x34]
jae 0x513ebc
jmp 0x514138
mov dword [esi + 0x10c], ebx
cmp ebx, 3
jbe 0x5141f0
lea ecx, [ebx - 0xa]
lea edx, [ebx - 4]
cmp ebx, 0xa
mov esi, 3
mov eax, 0xa
cmovb eax, esi
mov esi, dword [ebp - 0x1c]
cmovb ecx, edx
shl ecx, 2
mov edx, 0x605142
shr edx, cl
and edx, 7
add eax, dword [esi + 0x48]
and eax, 3
mov eax, dword [esi + eax*4 + 0x4c]
lea ecx, [edx + eax]
add ecx, 0xfffffffd
test ecx, ecx
mov eax, SysReAllocString
cmovg eax, ecx
jmp 0x513ed9
mov eax, ebx
not eax
xor edx, edx
inc edx
mov ecx, ebx
shr edx, cl
mov dword [esi + 0xb4], edx
mov ecx, dword [esi + 0x48]
add eax, ecx
and eax, 3
mov eax, dword [esi + eax*4 + 0x4c]
mov dword [esi + 0x10c], eax
sub ecx, edx
mov dword [esi + 0x48], ecx
jmp 0x513edf
mov edi, dword [ebp - 0x24]
mov eax, dword [esi + 0x40]
mov ecx, dword [ebp - 0x28]
mov ebx, ecx
test ecx, ecx
jle 0x51424d
mov ecx, edi
sub ecx, dword [esi + 0x10c]
mov edx, dword [esi + 0x60]
and ecx, dword [esi + 0x44]
mov cl, byte [edx + ecx]
mov byte [edx + edi], cl
inc edi
lea ecx, [ebx - 1]
cmp eax, edi
jne 0x514226
jmp 0x514753
dec ebx
mov dword [ebp - 0x28], ebx
jmp 0x513f83
mov dword [esi], 7
cmp dword [esi + 0xc4], 0
je 0x514776
mov dword [ebp - 0x14], 0xffffffff
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [esi + 0x14]
mov dword [ebp - 0x44], ecx
mov ecx, dword [esi + 0x68]
mov dword [ebp - 0x20], ecx
lea ecx, [eax - 0x12]
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x40], eax
cmp ecx, 0xe
ja 0x5142dc
mov eax, dword [ebp - 0x3c]
lea edi, [eax + 1]
mov eax, dword [ebp - 0x44]
lea ebx, [eax - 1]
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x40]
cmp ebx, 0xffffffff
je 0x5147d3
mov eax, edx
shr eax, 8
mov dword [esi + 8], eax
movzx eax, byte [edi - 1]
shrd edx, eax, 8
mov dword [esi + 8], edx
lea eax, [ecx - 8]
mov dword [esi + 0xc], eax
mov dword [esi + 0x14], ebx
mov dword [esi + 0x10], edi
inc edi
dec ebx
add ecx, 0xffffffe6
cmp ecx, 0xf
mov ecx, eax
jb 0x5142a8
mov ecx, eax
shr edx, cl
movzx ecx, dl
mov edi, dword [ebp - 0x20]
lea ecx, [edi + ecx*4]
movzx ebx, byte [ecx]
cmp ebx, 9
jae 0x51441c
movzx edx, bl
add edx, eax
mov dword [esi + 0xc], edx
movzx eax, word [ecx + 2]
mov dword [ebp - 0x14], eax
movzx ecx, byte [eax*8 + 0x7a5742]
movzx ebx, byte [eax*8 + 0x7a5743]
movsx edx, byte [eax*8 + 0x7a5744]
mov dword [ebp - 0x2c], edx
movzx edi, byte [eax*8 + 0x7a5745]
movzx edx, word [eax*8 + 0x7a5746]
mov dword [ebp - 0x28], edx
movzx eax, word [eax*8 + 0x7a5748]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x2c]
mov dword [esi + 0x10c], eax
mov dword [esi + 0xb4], edi
mov eax, dword [esi + 0x74]
mov al, byte [eax + edi]
mov byte [esi + 0x104], al
xor eax, eax
mov edi, 0
test ecx, ecx
jne 0x5143e8
test ebx, ebx
jne 0x514392
add eax, dword [ebp - 0x20]
mov dword [esi + 0x108], eax
dec dword [esi + 0xc4]
add edi, dword [ebp - 0x28]
jne 0x513c07
mov dword [ebp - 0x28], 0
mov edi, dword [ebp - 0x24]
jmp case.0x513aba.9
mov eax, ebx
mov ecx, dword [esi + 0xc]
mov ebx, 0x20
sub ebx, ecx
mov dword [ebp - 0x2c], eax
cmp ebx, eax
jb 0x5147f8
mov eax, dword [ebp - 0x38]
mov eax, dword [eax]
shr eax, cl
mov ebx, dword [ebp - 0x2c]
and eax, dword [ebx*4 + 0x7aa210]
add ecx, ebx
mov dword [esi + 0xc], ecx
jmp 0x51436b
add eax, 8
mov esi, dword [ebp - 0x1c]
mov dword [esi + 0xc], eax
shr edx, 8
and edx, dword [ebx*4 + 0x7aa1f0]
and edx, 0x7f
lea edx, [ecx + edx*4]
movzx ecx, word [ecx + 2]
lea ecx, [edx + ecx*4]
mov bl, byte [ecx]
jmp 0x513e5d
mov edx, ecx
mov dword [ebp - 0x2c], ebx
mov ecx, dword [esi + 0xc]
mov edi, 0x20
sub edi, ecx
cmp edi, edx
mov ebx, edx
jb 0x514852
mov edi, dword [ebp - 0x38]
mov edi, dword [edi]
shr edi, cl
and edi, dword [ebx*4 + 0x7aa210]
add ecx, ebx
mov dword [esi + 0xc], ecx
mov ebx, dword [ebp - 0x2c]
jmp 0x514367
add eax, 8
mov dword [esi + 0xc], eax
shr edx, 8
and edx, dword [ebx*4 + 0x7aa1f0]
and edx, 0x7f
lea edx, [ecx + edx*4]
movzx ecx, word [ecx + 2]
lea ecx, [edx + ecx*4]
mov bl, byte [ecx]
jmp 0x5142f5
mov esi, dword [ebp - 0x1c]
jmp 0x51421d
mov dword [esi], 0xd
dec dword [ebp - 0x28]
jmp 0x51410e
mov eax, dword [edi + 4]
mov dword [ebp - 0x2c], eax
lea esi, [eax - 1]
xor ecx, ecx
dec ecx
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
mov ecx, eax
add cl, 9
mov ebx, esi
sar ebx, cl
inc eax
mov dword [ebp - 0x20], eax
test ebx, ebx
jne 0x514465
mov ecx, dword [ebp - 0x20]
mov dword [edi + 0x98], ecx
cmp dword [ebp - 0x2c], 0
jle 0x5144d6
xor eax, eax
inc eax
mov ecx, dword [ebp - 0x20]
shl eax, cl
mov dword [ebp - 0x2c], eax
xor ebx, ebx
xor eax, eax
dec ebx
mov ecx, ebx
inc ebx
cmp dword [edi + ecx*4 + 0x60], eax
jl 0x514498
mov esi, eax
mov ecx, dword [ebp - 0x20]
sar esi, cl
mov byte [edi + esi + 0x9c], bl
add eax, dword [ebp - 0x2c]
cmp eax, dword [edi + 4]
jl 0x514497
mov eax, dword [edi + 0x98]
mov dword [ebp - 0x20], eax
jmp 0x5144d6
mov edi, dword [esi + 0x24c]
mov ecx, dword [edi + 0x98]
mov dword [ebp - 0x20], ecx
cmp ecx, 0xffffffff
je 0x514456
mov eax, edx
mov ecx, dword [ebp - 0x20]
sar eax, cl
movzx eax, byte [edi + eax + 0x9c]
dec eax
mov ecx, eax
inc eax
cmp dword [edi + ecx*4 + 0x60], edx
jle 0x5144e6
mov ecx, dword [ebp - 0x28]
add ecx, edx
cmp dword [edi + 4], ecx
jl 0x514558
mov esi, dword [ebp - 0x1c]
mov ebx, dword [esi + 0x48]
mov dword [ebp - 0x2c], ebx
and ebx, 3
mov dword [ebp - 0x20], ebx
mov ebx, dword [esi + 0x10c]
mov ecx, dword [ebp - 0x20]
mov dword [esi + ecx*4 + 0x4c], ebx
mov ecx, dword [ebp - 0x2c]
inc ecx
mov dword [esi + 0x48], ecx
mov ecx, dword [ebp - 0x28]
sub dword [esi + 0xb8], ecx
mov dword [edi + 8], eax
sub edx, dword [edi + eax*4 + 0x58]
mov dword [edi + 0xc], edx
mov dword [edi + 0x10], ecx
mov dword [edi + 0x14], 0
mov ecx, esi
mov edi, dword [ebp - 0x24]
mov edx, edi
call fcn.00708180
add edi, eax
mov eax, edi
cmp edi, dword [esi + 0x40]
jge 0x514562
mov edi, eax
mov esi, dword [ebp - 0x1c]
jmp 0x513f83
mov ebx, 0xffffffee
jmp 0x51411a
mov esi, dword [ebp - 0x1c]
mov dword [esi], 0xf
xor ebx, ebx
inc ebx
mov edi, eax
jmp 0x514111
mov dword [ebp - 0x34], edx
mov edi, dword [ebp - 0x3c]
movzx edi, byte [edi + 0xc0]
mov dword [ebp - 0x30], edi
cmp edi, 2
jae 0x514595
mov ecx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x34]
jmp 0x51406c
xor edi, edi
inc edi
shl edi, cl
and edi, 0xfffffffe
imul esi, edi
sub eax, esi
xor edx, edx
jmp 0x5145b4
mov esi, eax
mov ecx, edx
inc ecx
mov eax, esi
mov edx, ecx
cmp dword [ebp - 0x30], ecx
je 0x51458a
cmp dword [ebp - 0x44], edx
je 0x5145a6
mov ecx, dword [ebp - 0x3c]
mov edi, dword [ecx + edx*4 + 0xc4]
mov ecx, dword [ebp - 0x28]
movzx ecx, byte [edi + ecx]
test ecx, ecx
je 0x5145a6
mov esi, dword [ebp - 0x3c]
mov esi, dword [esi + edx*4 + 0x1c4]
xor ebx, ebx
inc ebx
shl ebx, cl
and ebx, 0xfffffffe
mov dword [ebp - 0x40], esi
imul ebx, dword [esi + 0xc]
mov esi, eax
sub esi, ebx
jge 0x5145a8
mov edx, dword [ecx*4 + 0x7aa210]
and edx, eax
sar eax, cl
mov ecx, dword [ebp - 0x28]
imul edx, ecx
add edx, dword [edi + ecx*4 + 0x20]
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x40]
jmp 0x51406c
lea eax, [ebp - 0x18]
push eax
push edx
push dword [ebp - 0x38]
call fcn.0072b2e0
add esp, 0xc
test eax, eax
je 0x514649
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
jmp 0x513eca
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x48]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x40]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0x3c]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0x44]
jmp 0x514677
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0xc8]
inc eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
mov dword [eax + 0xc8], ecx
mov ecx, dword [ebp - 0x2c]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x48]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0x40]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0x3c]
mov dword [eax + 0x14], ecx
mov ebx, 2
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x24]
jmp 0x514111
mov ecx, esi
call fcn.007088d0
test eax, eax
jne 0x513db6
mov ebx, 2
jmp 0x514682
mov bl, cl
mov ecx, esi
call fcn.00708580
test eax, eax
je 0x51467a
mov esi, dword [ebp - 0x1c]
cmp dword [esi + 0xb0], 0
mov ecx, ebx
je 0x513c9d
jmp 0x513c10
mov ecx, esi
call fcn.00708580
test eax, eax
je 0x51467a
mov esi, dword [ebp - 0x1c]
cmp dword [esi + 0xb0], 0
jne 0x513b3f
jmp 0x513c10
mov dword [esi], 0xf
jmp 0x51410e
mov ebx, 0xfffffff4
jmp 0x51411a
mov ebx, 0xfffffff5
jmp 0x51411a
mov ebx, 0xfffffff0
jmp 0x51411a
mov ebx, 0xffffffed
jmp 0x51411a
mov ebx, 0xffffffe1
jmp 0x51411a
add ecx, 8
mov esi, dword [ebp - 0x1c]
mov dword [esi + 0xc], ecx
shr edx, 8
and edx, dword [ebx*4 + 0x7aa1f0]
and edx, 0x7f
lea edx, [eax + edx*4]
movzx eax, word [eax + 2]
lea eax, [edx + eax*4]
mov bl, byte [eax]
jmp 0x513aff
mov eax, dword [eax + 4]
mov dword [ebp - 0x50], eax
jmp 0x513a9a
mov dword [esi], 0x10
dec ebx
mov dword [ebp - 0x28], ebx
jmp 0x51410e
xor eax, eax
cmp dword [esi + 0x10c], 0x79
jge 0x5140ce
jmp 0x51411a
mov ecx, esi
call fcn.00708270
test eax, eax
mov edi, dword [ebp - 0x24]
jne 0x514256
mov ebx, 2
jmp 0x514111
mov ecx, dword [esi + 0x44]
mov esi, dword [ebp - 0x24]
lea edx, [esi - 2]
and edx, ecx
dec esi
and esi, ecx
mov ecx, dword [ebp - 0x1c]
mov ecx, dword [ecx + 0x60]
movzx edx, byte [ecx + edx]
movzx ecx, byte [ecx + esi]
mov esi, dword [ebp - 0x1c]
mov esi, dword [esi + 0x6c]
mov dl, byte [esi + edx + 0x100]
or dl, byte [esi + ecx]
mov esi, dword [ebp - 0x1c]
movzx ecx, dl
mov edx, dword [ebp - 0x3c]
mov cl, byte [edx + ecx + 0x80]
jmp 0x514001
lea eax, [ebp - 0x14]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x38]
push eax
call fcn.005148b0
add esp, 4
test eax, eax
je 0x51467a
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
jmp 0x514304
mov eax, dword [esi + 0x14]
dec eax
mov dword [ebp - 0x30], eax
mov esi, dword [ebp - 0x1c]
cmp dword [ebp - 0x30], 0xffffffff
je 0x51462f
mov eax, dword [esi + 8]
mov dword [ebp - 0x34], eax
mov edx, dword [esi + 0x10]
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x34]
shr eax, 8
mov dword [esi + 8], eax
movzx eax, byte [edx]
mov edx, dword [ebp - 0x34]
shld eax, edx, 0x18
mov dword [esi + 8], eax
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov edx, dword [ebp - 0x30]
mov dword [esi + 0x14], edx
mov edx, dword [ebp - 0x4c]
inc edx
mov dword [esi + 0x10], edx
dec dword [ebp - 0x30]
add ebx, 8
cmp ebx, dword [ebp - 0x2c]
jae 0x5143ae
jmp 0x514802
mov dword [ebp - 0x34], edi
mov esi, dword [esi + 0x14]
dec esi
mov dword [ebp - 0x30], esi
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x4c], ebx
cmp dword [ebp - 0x30], 0xffffffff
je 0x51462f
mov ebx, dword [esi + 8]
mov edx, dword [esi + 0x10]
mov edi, ebx
shr edi, 8
mov dword [esi + 8], edi
movzx edi, byte [edx]
shld edi, ebx, 0x18
mov dword [esi + 8], edi
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov ebx, dword [ebp - 0x30]
mov dword [esi + 0x14], ebx
inc edx
mov dword [esi + 0x10], edx
dec ebx
mov dword [ebp - 0x30], ebx
mov edx, dword [ebp - 0x34]
add edx, 8
mov ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x34], edx
cmp edx, ebx
jae 0x514406
jmp 0x51485f