Function at 0x513140
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 [0x808040]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov eax, dword [ecx + 0x24c]
mov dword [ebp - 0x50], 0
test eax, eax
jne 0x513e18
mov eax, dword [esi]
add eax, 0xfffffff9
cmp eax, 3
ja case.default.0x51318a
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 + 0x7a0b94]
mov ecx, eax
mov edx, dword [ebp - 0x38]
lea eax, [ebp - 0x14]
push eax
call fcn.00513f80
add esp, 4
test eax, eax
je 0x513d69
mov eax, dword [ebp - 0x14]
jmp 0x5131db
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 0x513df1
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 0x513b18
dec dword [ebp - 0x28]
je 0x513453
mov dword [ebp - 0x24], edi
test eax, eax
je 0x513d94
mov dword [ebp - 0x14], 0xffffffff
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x100]
lea edx, [ecx - 0x12]
cmp edx, 0xf
jae 0x5131af
mov ebx, dword [esi + 0x14]
dec ebx
mov edi, ecx
cmp ebx, 0xffffffff
je 0x513191
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 0x5131b8
jmp 0x51322d
mov ecx, eax
mov edx, dword [ebp - 0x38]
lea eax, [ebp - 0x14]
push eax
call fcn.00513f80
add esp, 4
test eax, eax
je 0x513d69
mov cl, byte [ebp - 0x14]
mov edi, dword [ebp - 0x24]
jmp 0x513339
add ebx, 8
mov dword [esi + 0xc], ebx
shr edx, 8
and edx, dword [ecx*4 + 0x7a3e80]
and edx, 0x7f
lea ecx, [eax + edx*4]
movzx eax, word [eax + 2]
lea eax, [ecx + eax*4]
mov cl, byte [eax]
jmp 0x51332b
mov eax, dword [esi + 0xc0]
jmp 0x513204
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 0x5132cc
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 0x513362
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 0x5132ab
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 0x513b18
mov bh, byte [ebp - 0x20]
dec dword [ebp - 0x28]
je 0x513453
mov dword [ebp - 0x24], edi
test eax, eax
je 0x513d70
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 0x513310
mov edi, dword [esi + 0x14]
dec edi
mov ecx, ebx
cmp edi, 0xffffffff
je 0x513287
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 0x513319
jmp 0x5133af
lea eax, [ebp - 0x14]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x38]
push eax
call fcn.00513f80
add esp, 4
test eax, eax
je 0x513d4a
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
jmp 0x513539
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 0x5135b2
mov dword [ebp - 0x28], 0
cmp dword [esi + 0xb8], 0
jle 0x5137c6
mov dword [esi], 9
cmp dword [esi + 0x10c], 0
mov dword [ebp - 0x24], edi
jns 0x51342e
cmp dword [esi + 0xc8], 0
je 0x513d5a
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 0x513511
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 0x513409
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 0x5134dd
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 0x513a91
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 0x51386d
movzx edx, byte [esi + ebx + 0x270]
xor eax, eax
test edx, edx
je 0x51359a
mov dword [ebp - 0x20], ecx
cmp dl, 0x18
ja 0x513ce0
mov ecx, dword [esi + 0xc]
mov edi, 0x20
sub edi, ecx
cmp edi, edx
jb 0x5137fe
mov eax, dword [ebp - 0x38]
mov eax, dword [eax]
shr eax, cl
and eax, dword [edx*4 + 0x7a3ea0]
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 0x5135c6
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 0x513697
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 0x5138ed
mov esi, dword [esi + 0x40]
cmp edi, esi
jge 0x513b10
cmp eax, esi
jge 0x513b10
cmp dword [ebp - 0x28], 0x11
mov esi, dword [ebp - 0x1c]
jge 0x513668
cmp dword [esi + 0xb8], 0
jle 0x5137d8
mov dword [ebp - 0x24], edi
jmp 0x513926
mov ebx, dword [ebp - 0x24]
add ebx, edx
add ecx, edx
mov eax, dword [ebp - 0x28]
cmp eax, 0x21
jae 0x513681
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [ebx + 0x10], xmm0
jmp 0x513653
add ebx, 0x10
add ecx, 0x10
add eax, 0xfffffff0
push eax
push ecx
push ebx
call fcn.005c9580
add esp, 0xc
jmp 0x513653
cmp eax, 0x7ffffffc
jg 0x513dd3
mov edx, dword [ebp - 0x50]
sub edx, ecx
mov edi, dword [ebp - 0x28]
jge 0x513b92
lea ecx, [edi - 4]
cmp ecx, 0x1b
ja 0x513dbf
mov edx, dword [esi + 0x248]
xor ecx, ecx
cmp dword [edx + 0x7c], 0
mov dword [ebp - 0x3c], edx
jne 0x513e62
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 + 0x7a3ea0]
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 0x513c45
cmp byte [edx + ebx], 0
je 0x513c45
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 0x5137ea
mov eax, dword [edi + 0xa4]
test eax, eax
je 0x513ddd
mov ebx, dword [ebp - 0x2c]
cmp ebx, dword [ecx + 0xc]
mov edi, dword [ebp - 0x28]
jge 0x513dc9
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 0x5137b7
push ebx
push dword [ebp - 0x40]
push edi
push eax
push ecx
call fcn.005bdc80
add esp, 0x14
test eax, eax
mov ebx, 0xfffffff5
je 0x513e32
sub dword [esi + 0xb8], eax
mov edi, dword [ebp - 0x24]
add edi, eax
cmp edi, dword [esi + 0x40]
jl 0x513653
jmp 0x513db4
push edi
push eax
push ecx
call fcn.005c9580
add esp, 0xc
mov eax, edi
jmp 0x51379e
mov dword [esi], 0xe
xor ebx, ebx
inc ebx
mov dword [ebp - 0x28], 0
jmp 0x5137e1
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.005c6b46
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 0x513d26
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 0x51358c
jmp 0x513808
mov dword [esi + 0x10c], ebx
cmp ebx, 3
jbe 0x5138c0
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 0x5135a9
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 0x5135af
mov edi, dword [ebp - 0x24]
mov eax, dword [esi + 0x40]
mov ecx, dword [ebp - 0x28]
mov ebx, ecx
test ecx, ecx
jle 0x51391d
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 0x5138f6
jmp 0x513e23
dec ebx
mov dword [ebp - 0x28], ebx
jmp 0x513653
mov dword [esi], 7
cmp dword [esi + 0xc4], 0
je 0x513e46
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 0x5139ac
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 0x513ea3
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 0x513978
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 0x513aec
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 + 0x79f4e2]
movzx ebx, byte [eax*8 + 0x79f4e3]
movsx edx, byte [eax*8 + 0x79f4e4]
mov dword [ebp - 0x2c], edx
movzx edi, byte [eax*8 + 0x79f4e5]
movzx edx, word [eax*8 + 0x79f4e6]
mov dword [ebp - 0x28], edx
movzx eax, word [eax*8 + 0x79f4e8]
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 0x513ab8
test ebx, ebx
jne 0x513a62
add eax, dword [ebp - 0x20]
mov dword [esi + 0x108], eax
dec dword [esi + 0xc4]
add edi, dword [ebp - 0x28]
jne 0x5132d7
mov dword [ebp - 0x28], 0
mov edi, dword [ebp - 0x24]
jmp case.0x51318a.9
mov eax, ebx
mov ecx, dword [esi + 0xc]
mov ebx, 0x20
sub ebx, ecx
mov dword [ebp - 0x2c], eax
cmp ebx, eax
jb 0x513ec8
mov eax, dword [ebp - 0x38]
mov eax, dword [eax]
shr eax, cl
mov ebx, dword [ebp - 0x2c]
and eax, dword [ebx*4 + 0x7a3ea0]
add ecx, ebx
mov dword [esi + 0xc], ecx
jmp 0x513a3b
add eax, 8
mov esi, dword [ebp - 0x1c]
mov dword [esi + 0xc], eax
shr edx, 8
and edx, dword [ebx*4 + 0x7a3e80]
and edx, 0x7f
lea edx, [ecx + edx*4]
movzx ecx, word [ecx + 2]
lea ecx, [edx + ecx*4]
mov bl, byte [ecx]
jmp 0x51352d
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 0x513f22
mov edi, dword [ebp - 0x38]
mov edi, dword [edi]
shr edi, cl
and edi, dword [ebx*4 + 0x7a3ea0]
add ecx, ebx
mov dword [esi + 0xc], ecx
mov ebx, dword [ebp - 0x2c]
jmp 0x513a37
add eax, 8
mov dword [esi + 0xc], eax
shr edx, 8
and edx, dword [ebx*4 + 0x7a3e80]
and edx, 0x7f
lea edx, [ecx + edx*4]
movzx ecx, word [ecx + 2]
lea ecx, [edx + ecx*4]
mov bl, byte [ecx]
jmp 0x5139c5
mov esi, dword [ebp - 0x1c]
jmp 0x5138ed
mov dword [esi], 0xd
dec dword [ebp - 0x28]
jmp 0x5137de
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 0x513b35
mov ecx, dword [ebp - 0x20]
mov dword [edi + 0x98], ecx
cmp dword [ebp - 0x2c], 0
jle 0x513ba6
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 0x513b68
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 0x513b67
mov eax, dword [edi + 0x98]
mov dword [ebp - 0x20], eax
jmp 0x513ba6
mov edi, dword [esi + 0x24c]
mov ecx, dword [edi + 0x98]
mov dword [ebp - 0x20], ecx
cmp ecx, 0xffffffff
je 0x513b26
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 0x513bb6
mov ecx, dword [ebp - 0x28]
add ecx, edx
cmp dword [edi + 4], ecx
jl 0x513c28
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.007001e0
add edi, eax
mov eax, edi
cmp edi, dword [esi + 0x40]
jge 0x513c32
mov edi, eax
mov esi, dword [ebp - 0x1c]
jmp 0x513653
mov ebx, 0xffffffee
jmp 0x5137ea
mov esi, dword [ebp - 0x1c]
mov dword [esi], 0xf
xor ebx, ebx
inc ebx
mov edi, eax
jmp 0x5137e1
mov dword [ebp - 0x34], edx
mov edi, dword [ebp - 0x3c]
movzx edi, byte [edi + 0xc0]
mov dword [ebp - 0x30], edi
cmp edi, 2
jae 0x513c65
mov ecx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x34]
jmp 0x51373c
xor edi, edi
inc edi
shl edi, cl
and edi, 0xfffffffe
imul esi, edi
sub eax, esi
xor edx, edx
jmp 0x513c84
mov esi, eax
mov ecx, edx
inc ecx
mov eax, esi
mov edx, ecx
cmp dword [ebp - 0x30], ecx
je 0x513c5a
cmp dword [ebp - 0x44], edx
je 0x513c76
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 0x513c76
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 0x513c78
mov edx, dword [ecx*4 + 0x7a3ea0]
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 0x51373c
lea eax, [ebp - 0x18]
push eax
push edx
push dword [ebp - 0x38]
call fcn.00725580
add esp, 0xc
test eax, eax
je 0x513d19
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
jmp 0x51359a
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 0x513d47
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 0x5137e1
mov ecx, esi
call fcn.00700930
test eax, eax
jne 0x513486
mov ebx, 2
jmp 0x513d52
mov bl, cl
mov ecx, esi
call fcn.007005e0
test eax, eax
je 0x513d4a
mov esi, dword [ebp - 0x1c]
cmp dword [esi + 0xb0], 0
mov ecx, ebx
je 0x51336d
jmp 0x5132e0
mov ecx, esi
call fcn.007005e0
test eax, eax
je 0x513d4a
mov esi, dword [ebp - 0x1c]
cmp dword [esi + 0xb0], 0
jne 0x51320f
jmp 0x5132e0
mov dword [esi], 0xf
jmp 0x5137de
mov ebx, 0xfffffff4
jmp 0x5137ea
mov ebx, 0xfffffff5
jmp 0x5137ea
mov ebx, 0xfffffff0
jmp 0x5137ea
mov ebx, 0xffffffed
jmp 0x5137ea
mov ebx, 0xffffffe1
jmp 0x5137ea
add ecx, 8
mov esi, dword [ebp - 0x1c]
mov dword [esi + 0xc], ecx
shr edx, 8
and edx, dword [ebx*4 + 0x7a3e80]
and edx, 0x7f
lea edx, [eax + edx*4]
movzx eax, word [eax + 2]
lea eax, [edx + eax*4]
mov bl, byte [eax]
jmp 0x5131cf
mov eax, dword [eax + 4]
mov dword [ebp - 0x50], eax
jmp 0x51316a
mov dword [esi], 0x10
dec ebx
mov dword [ebp - 0x28], ebx
jmp 0x5137de
xor eax, eax
cmp dword [esi + 0x10c], 0x79
jge 0x51379e
jmp 0x5137ea
mov ecx, esi
call fcn.007002d0
test eax, eax
mov edi, dword [ebp - 0x24]
jne 0x513926
mov ebx, 2
jmp 0x5137e1
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 0x5136d1
lea eax, [ebp - 0x14]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x38]
push eax
call fcn.00513f80
add esp, 4
test eax, eax
je 0x513d4a
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
jmp 0x5139d4
mov eax, dword [esi + 0x14]
dec eax
mov dword [ebp - 0x30], eax
mov esi, dword [ebp - 0x1c]
cmp dword [ebp - 0x30], 0xffffffff
je 0x513cff
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 0x513a7e
jmp 0x513ed2
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 0x513cff
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 0x513ad6
jmp 0x513f2f