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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push edi
push esi
push ebx
sub esp, 0x64
mov esi, dword [ebp + 8]
xor edi, edi
mov ebx, 0x7a0ac0
mov eax, ebx
neg eax
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 8]
lea edx, [edi + edi*2]
lea esi, [eax + edx*8 + 0x78]
mov dword [esp + 8], esi
mov ecx, ebx
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x612965
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x612950
dec eax
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 8]
add eax, ebx
mov dword [esp + 4], eax
add esi, eax
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
mov ecx, eax
sub ecx, edx
cmp esi, ecx
ja 0x6129ca
test esi, esi
je 0x61299c
push esi
push ebx
push edx
call fcn.007666b0
add esp, 0xc
mov edx, dword [esp + 8]
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
mov dword [esp], eax
add esi, edx
cmp esi, eax
je 0x6129f5
mov edx, 1
push edx
push eax
push esi
call fcn.00743960
add esp, 0xc
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x10]
sub eax, dword [esp]
mov edx, dword [esp + 8]
add eax, esi
mov dword [edx + 0x10], eax
jmp 0x6129f5
test ecx, ecx
je 0x6129e3
push ecx
push ebx
push edx
call fcn.007666b0
add esp, 0xc
mov edx, dword [esp + 8]
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
push dword [esp + 4]
sub eax, edx
add eax, ebx
push eax
mov ecx, dword [esp + 0x10]
call fcn.00583ef0
mov eax, dword [esp + 0xc]
add eax, 0xfffffff2
mov dword [esp + 0xc], eax
add ebx, 0xe
inc edi
cmp edi, 0xe
jb 0x61293e
mov esi, dword [ebp + 8]
xor eax, eax
mov dword [esp + 0x58], eax
mov edi, dword [esp + 0x58]
mov eax, dword [ebp + 8]
lea edx, [edi + edi*2]
lea ebx, [edx*8 + 0x7a0ba0]
lea edi, [eax + edx*8 + 0x1c8]
mov ecx, ebx
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x612a47
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x612a32
dec eax
mov edx, dword [edi + 0x14]
mov esi, eax
lea eax, [ebx + esi]
mov dword [esp + 0x54], eax
mov eax, dword [edi + 0x10]
mov ecx, eax
sub ecx, edx
cmp esi, ecx
ja 0x612a9e
test esi, esi
je 0x612a73
push esi
push ebx
push edx
call fcn.007666b0
add esp, 0xc
mov eax, dword [edi + 0x10]
mov edx, dword [edi + 0x14]
add esi, edx
mov ebx, eax
cmp esi, eax
je 0x612fab
mov edx, 1
push edx
push eax
push esi
call fcn.00743960
add esp, 0xc
mov eax, dword [edi + 0x10]
sub esi, ebx
add esi, eax
mov dword [edi + 0x10], esi
jmp 0x612fab
test ecx, ecx
je 0x612ab3
push ecx
push ebx
push edx
call fcn.007666b0
add esp, 0xc
mov eax, dword [edi + 0x10]
mov edx, dword [edi + 0x14]
mov ecx, eax
sub ecx, edx
mov dword [esp + 0x50], ecx
add ecx, ebx
cmp ecx, dword [esp + 0x54]
mov dword [esp + 0x4c], ecx
je 0x612fab
mov ecx, esi
sub ecx, dword [esp + 0x50]
cmp edx, edi
mov dword [esp + 0x44], ecx
jne 0x612ae2
mov edx, edi
sub edx, eax
add edx, 0x10
jmp 0x612ae6
mov edx, dword [edi]
sub edx, eax
cmp edx, dword [esp + 0x44]
ja 0x612e6a
mov edx, ecx
mov dword [esp + 0x48], edx
mov eax, dword [edi + 0x10]
sub eax, dword [edi + 0x14]
mov dword [esp + 0x2c], eax
mov ecx, eax
neg ecx
add ecx, 0xfffffffe
cmp edx, ecx
ja 0x6137d3
lea ecx, [esp + 0x48]
cmp edx, eax
lea edx, [esp + 0x2c]
jb 0x612b1d
mov edx, ecx
mov edx, dword [edx]
lea ecx, [eax + edx + 1]
cmp ecx, 0xfffffffe
mov dword [esp + 0x34], ecx
ja 0x6137c6
cmp eax, dword [esp + 0x34]
ja 0x6137c6
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x613794
mov dword [esp + 0x38], 0
mov edx, dword [esp + 0x38]
mov eax, dword [edi + 0x14]
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x30], eax
sub ecx, eax
test ecx, ecx
mov dword [esp + 0x40], ecx
jle 0x612cdb
mov eax, ecx
cmp eax, 6
jle 0x612cb1
mov eax, edx
cmp eax, dword [esp + 0x30]
jbe 0x612b87
sub eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x40]
ja 0x612ba5
mov eax, edx
cmp eax, dword [esp + 0x30]
jae 0x612cb1
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x38]
cmp eax, dword [esp + 0x40]
jbe 0x612cb1
mov ecx, edx
and ecx, 0xf
mov eax, ecx
neg eax
add eax, 0x10
cmp ecx, 0
cmovne ecx, eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x10]
cmp eax, dword [esp + 0x40]
jg 0x61375c
mov eax, dword [esp + 0x40]
mov edx, eax
sub edx, ecx
and edx, 0xf
neg edx
add edx, eax
mov dword [esp + 0x28], edx
test ecx, ecx
jbe 0x612c0b
mov ecx, dword [esp + 0x30]
mov dword [esp], esi
mov esi, dword [esp + 0x38]
xor eax, eax
mov dword [esp + 4], edi
mov edi, dword [esp + 0x18]
movzx edx, byte [eax + ecx]
mov byte [eax + esi], dl
inc eax
cmp eax, edi
jb 0x612bf4
mov esi, dword [esp]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
lea ecx, [eax + edx]
test cl, 0xf
je 0x612c3c
mov ecx, edx
mov edx, dword [esp + 0x38]
mov dword [esp + 4], edi
mov edi, dword [esp + 0x28]
movdqu xmm0, xmmword [ecx + eax]
movdqa xmmword [ecx + edx], xmm0
add ecx, 0x10
cmp ecx, edi
jb 0x612c29
jmp 0x612c5b
mov ecx, edx
mov edx, dword [esp + 0x38]
mov dword [esp + 4], edi
mov edi, dword [esp + 0x28]
movdqa xmm0, xmmword [ecx + eax]
movdqa xmmword [ecx + edx], xmm0
add ecx, 0x10
cmp ecx, edi
jb 0x612c4a
mov eax, dword [esp + 0x38]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 4]
mov dword [esp + 0x18], ecx
mov edx, ecx
add edx, eax
mov eax, dword [esp + 0x40]
cmp eax, dword [esp + 0x28]
jbe 0x612cdb
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
mov dword [esp], esi
mov esi, dword [esp + 0x28]
mov dword [esp + 4], edi
mov edi, eax
movzx eax, byte [esi + edx]
mov byte [esi + ecx], al
inc esi
cmp esi, edi
jb 0x612c8e
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x28], esi
mov esi, dword [esp]
mov edx, dword [esp + 0x28]
add edx, eax
jmp 0x612cdb
mov ecx, dword [esp + 0x30]
mov dword [esp], esi
mov esi, edx
xor edx, edx
mov dword [esp + 4], edi
mov edi, dword [esp + 0x40]
movzx eax, byte [edx + ecx]
mov byte [edx + esi], al
inc edx
cmp edx, edi
jb 0x612cc4
add edx, dword [esp + 0x38]
mov esi, dword [esp]
mov edi, dword [esp + 4]
sub esi, dword [esp + 0x50]
test esi, esi
mov dword [esp + 0x3c], edx
jle 0x612e27
mov eax, dword [esp + 0x44]
cmp eax, 6
jle 0x612e03
cmp edx, dword [esp + 0x4c]
jbe 0x612d08
mov eax, edx
sub eax, dword [esp + 0x4c]
cmp esi, eax
jb 0x612d20
cmp edx, dword [esp + 0x4c]
jae 0x612e03
mov eax, dword [esp + 0x4c]
sub eax, edx
cmp esi, eax
jae 0x612e03
mov ecx, edx
and ecx, 0xf
mov eax, ecx
neg eax
add eax, 0x10
cmp ecx, 0
cmovne ecx, eax
lea eax, [ecx + 0x10]
cmp esi, eax
jl 0x613778
mov eax, esi
sub eax, ecx
and eax, 0xf
neg eax
add eax, esi
test ecx, ecx
mov dword [esp + 0x14], eax
jbe 0x613769
mov eax, dword [esp + 0x50]
mov dword [esp + 0x1c], 0
add eax, ebx
mov dword [esp + 0x10], eax
mov dword [esp], esi
mov esi, eax
mov dword [esp + 4], edi
mov edi, dword [esp + 0x1c]
movzx eax, byte [edi + esi]
mov byte [edi + edx], al
inc edi
cmp edi, ecx
jb 0x612d73
mov esi, dword [esp]
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x10]
add eax, ecx
test al, 0xf
je 0x612daf
mov eax, dword [esp + 0x10]
mov dword [esp + 4], edi
mov edi, dword [esp + 0x14]
movdqu xmm0, xmmword [ecx + eax]
movdqa xmmword [ecx + edx], xmm0
add ecx, 0x10
cmp ecx, edi
jb 0x612d9c
jmp 0x612dcc
mov eax, dword [esp + 0x10]
mov dword [esp + 4], edi
mov edi, dword [esp + 0x14]
movdqa xmm0, xmmword [ecx + eax]
movdqa xmmword [ecx + edx], xmm0
add ecx, 0x10
cmp ecx, edi
jb 0x612dbb
mov dword [esp + 0x14], edi
mov edi, dword [esp + 4]
lea eax, [edx + ecx]
mov dword [esp + 0x3c], eax
cmp esi, dword [esp + 0x14]
jbe 0x612e27
add ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + ebx]
mov byte [ecx + edx], al
inc ecx
cmp ecx, esi
jb 0x612de9
mov dword [esp + 0x14], ecx
mov eax, ecx
add edx, eax
mov dword [esp + 0x3c], edx
jmp 0x612e27
add ebx, dword [esp + 0x50]
mov dword [esp + 0x3c], 0
mov ecx, dword [esp + 0x3c]
movzx eax, byte [ecx + ebx]
mov byte [ecx + edx], al
inc ecx
cmp ecx, esi
jb 0x612e13
mov dword [esp + 0x3c], ecx
add dword [esp + 0x3c], edx
mov eax, dword [esp + 0x3c]
mov byte [eax], 0
mov edx, dword [edi + 0x14]
cmp edx, edi
je 0x612e4f
test edx, edx
je 0x612e4f
mov eax, dword [edi]
sub eax, edx
cmp eax, 0x80
jbe 0x613785
push edx
call fcn.007424fc
pop ecx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
add eax, ecx
mov dword [edi], eax
mov dword [edi + 0x10], edx
mov dword [edi + 0x14], ecx
jmp 0x612fab
mov edx, dword [esp + 0x50]
mov esi, dword [esp + 0x54]
lea ecx, [ebx + edx + 1]
lea edx, [eax + 1]
sub esi, ecx
test esi, esi
mov dword [esp + 0x54], esi
jle 0x612f94
mov eax, esi
cmp eax, 6
jle 0x612f7e
mov eax, dword [esp + 0x50]
lea ecx, [ebx + eax + 1]
cmp edx, ecx
jbe 0x612ea8
mov eax, edx
sub eax, ecx
cmp eax, dword [esp + 0x54]
ja 0x612ebc
cmp ecx, edx
jbe 0x612f7e
sub ecx, edx
cmp ecx, dword [esp + 0x54]
jbe 0x612f7e
mov esi, edx
and esi, 0xf
mov eax, esi
neg eax
add eax, 0x10
cmp esi, 0
cmovne esi, eax
lea ecx, [esi + 0x10]
cmp ecx, dword [esp + 0x54]
jg 0x6137fa
mov eax, dword [esp + 0x54]
mov ecx, eax
sub ecx, esi
and ecx, 0xf
neg ecx
add ecx, eax
test esi, esi
jbe 0x6137eb
mov eax, dword [esp + 0x50]
mov dword [esp + 0x20], 0
add eax, ebx
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
mov ecx, eax
mov dword [esp + 4], edi
mov edi, dword [esp + 0x20]
movzx eax, byte [edi + ecx + 1]
mov byte [edi + edx], al
inc edi
cmp edi, esi
jb 0x612f12
mov ecx, dword [esp + 8]
mov edi, dword [esp + 4]
mov eax, dword [esp + 0xc]
lea eax, [esi + eax + 1]
test al, 0xf
je 0x612f4b
mov eax, dword [esp + 0xc]
movdqu xmm0, xmmword [esi + eax + 1]
movdqa xmmword [esi + edx], xmm0
add esi, 0x10
cmp esi, ecx
jb 0x612f37
jmp 0x612f61
mov eax, dword [esp + 0xc]
movdqa xmm0, xmmword [esi + eax + 1]
movdqa xmmword [esi + edx], xmm0
add esi, 0x10
cmp esi, ecx
jb 0x612f4f
cmp ecx, dword [esp + 0x54]
jae 0x612f91
add ebx, dword [esp + 0x50]
mov esi, dword [esp + 0x54]
movzx eax, byte [ecx + ebx + 1]
mov byte [ecx + edx], al
inc ecx
cmp ecx, esi
jb 0x612f6f
jmp 0x612f91
add ebx, dword [esp + 0x50]
xor ecx, ecx
movzx eax, byte [ecx + ebx + 1]
mov byte [ecx + edx], al
inc ecx
cmp ecx, esi
jb 0x612f84
mov eax, dword [edi + 0x10]
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x4c]
mov byte [ecx + eax], 0
mov edx, dword [edi + 0x10]
movzx eax, byte [esi]
mov byte [edx], al
add dword [edi + 0x10], ecx
mov eax, dword [esp + 0x58]
inc eax
mov dword [esp + 0x58], eax
cmp eax, 0x18
jb 0x612a16
mov esi, dword [ebp + 8]
lea edi, [esi + 0x408]
mov ecx, dword [edi + 0x14]
mov ebx, 0x7a142c
mov eax, 0x7a142e
neg ebx
add ebx, eax
mov eax, dword [edi + 0x10]
mov edx, eax
sub edx, ecx
cmp ebx, edx
ja 0x613027
test ebx, ebx
je 0x612ffb
push ebx
push 0x7a142c
push ecx
call fcn.007666b0
add esp, 0xc
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
add ebx, ecx
mov ecx, eax
cmp ebx, eax
je 0x613055
mov edx, 1
push edx
push eax
push ebx
mov dword [esp + 0xc], ecx
call fcn.00743960
mov ecx, dword [esp + 0xc]
add esp, 0xc
mov eax, dword [edi + 0x10]
sub ebx, ecx
add ebx, eax
mov dword [edi + 0x10], ebx
jmp 0x613055
test edx, edx
je 0x613040
push edx
push 0x7a142c
push ecx
call fcn.007666b0
add esp, 0xc
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
push 0x7a142e
sub eax, ecx
lea eax, [eax + 0x7a142c]
mov ecx, edi
push eax
call fcn.00583ef0
lea ebx, [esi + 0x420]
mov edx, dword [ebx + 0x10]
mov edi, 0x7a1430
mov eax, 0x7a1432
neg edi
add edi, eax
mov eax, dword [ebx + 0x14]
mov ecx, edx
sub ecx, eax
cmp edi, ecx
ja 0x6130c3
test edi, edi
je 0x613090
push edi
push 0x7a1430
push eax
call fcn.007666b0
add esp, 0xc
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x14]
add edi, eax
mov ecx, edx
cmp edi, edx
je 0x6135a7
mov eax, 1
push eax
push edx
push edi
mov dword [esp + 0xc], ecx
call fcn.00743960
mov ecx, dword [esp + 0xc]
add esp, 0xc
mov edx, dword [ebx + 0x10]
sub edi, ecx
add edi, edx
mov dword [ebx + 0x10], edi
jmp 0x6135a7
test ecx, ecx
je 0x6130dc
push ecx
push 0x7a1430
push eax
call fcn.007666b0
add esp, 0xc
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x14]
mov edi, edx
sub edi, eax
lea edi, [edi + 0x7a1430]
mov ecx, 0x7a1432
cmp edi, ecx
je 0x6135a7
mov ecx, 0x7a1432
sub ecx, edi
mov dword [esp + 0x20], ecx
cmp eax, ebx
jne 0x61310b
mov eax, ebx
sub eax, edx
add eax, 0x10
jmp 0x61310f
mov eax, dword [ebx]
sub eax, edx
cmp eax, dword [esp + 0x20]
ja 0x613462
mov edx, ecx
mov dword [esp + 4], edx
mov dword [esp + 8], edx
mov eax, dword [ebx + 0x10]
sub eax, dword [ebx + 0x14]
mov ecx, eax
mov dword [esp], eax
neg ecx
add ecx, 0xfffffffe
cmp edx, ecx
ja 0x613863
cmp eax, dword [esp + 4]
lea ecx, [esp + 8]
lea edx, [esp]
ja 0x61314a
mov edx, ecx
mov ecx, dword [edx]
lea edx, [eax + ecx + 1]
cmp edx, 0xfffffffe
mov dword [esp + 0x10], edx
ja 0x613856
cmp eax, dword [esp + 0x10]
ja 0x613856
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x613824
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x14]
mov eax, dword [ebx + 0x14]
mov edx, dword [ebx + 0x10]
mov dword [esp + 0x18], eax
sub edx, eax
test edx, edx
mov dword [esp + 0x1c], edx
jle 0x6132f0
mov eax, edx
cmp eax, 6
jle 0x6132cd
mov eax, ecx
cmp eax, dword [esp + 0x18]
jbe 0x6131b4
sub eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x1c]
ja 0x6131d2
mov eax, ecx
cmp eax, dword [esp + 0x18]
jae 0x6132cd
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x1c]
jbe 0x6132cd
mov edx, ecx
and edx, 0xf
mov eax, edx
neg eax
add eax, 0x10
cmp edx, 0
cmovne edx, eax
mov dword [esp + 8], edx
lea eax, [edx + 0x10]
cmp eax, dword [esp + 0x1c]
jg 0x613801
mov eax, dword [esp + 0x1c]
mov ecx, edx
mov edx, eax
sub edx, ecx
and edx, 0xf
neg edx
add edx, eax
mov dword [esp + 0xc], edx
test ecx, ecx
jbe 0x613233
mov esi, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp], ebx
mov ebx, dword [esp + 0x14]
xor eax, eax
movzx edx, byte [eax + ecx]
mov byte [eax + ebx], dl
inc eax
cmp eax, esi
jb 0x61321d
mov ebx, dword [esp]
mov dword [esp + 8], esi
mov esi, dword [ebp + 8]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
lea ecx, [eax + edx]
test cl, 0xf
je 0x613260
mov esi, dword [esp + 0xc]
mov ecx, edx
mov edx, dword [esp + 0x14]
movdqu xmm0, xmmword [ecx + eax]
movdqa xmmword [ecx + edx], xmm0
add ecx, 0x10
cmp ecx, esi
jb 0x61324d
jmp 0x61327b
mov esi, dword [esp + 0xc]
mov ecx, edx
mov edx, dword [esp + 0x14]
movdqa xmm0, xmmword [ecx + eax]
movdqa xmmword [ecx + edx], xmm0
add ecx, 0x10
cmp ecx, esi
jb 0x61326a
mov eax, dword [esp + 0x14]
mov dword [esp + 0xc], esi
mov esi, dword [ebp + 8]
mov dword [esp + 8], ecx
mov edx, ecx
lea ecx, [eax + edx]
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x1c]
jae 0x6132f0
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp], ebx
mov ebx, eax
movzx eax, byte [ebx + edx]
mov byte [ebx + ecx], al
inc ebx
cmp ebx, esi
jb 0x6132aa
mov esi, dword [ebp + 8]
mov eax, dword [esp + 0x14]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp]
mov edx, dword [esp + 0xc]
lea ecx, [eax + edx]
jmp 0x6132f0
mov esi, edx
mov edx, dword [esp + 0x18]
mov dword [esp], ebx
mov ebx, ecx
xor ecx, ecx
movzx eax, byte [ecx + edx]
mov byte [ecx + ebx], al
inc ecx
cmp ecx, esi
jb 0x6132da
add ecx, dword [esp + 0x14]
mov ebx, dword [esp]
mov esi, dword [ebp + 8]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], ecx
test eax, eax
jle 0x61341f
cmp eax, 6
jle 0x6133f8
cmp ecx, edi
jbe 0x613317
mov eax, ecx
sub eax, edi
cmp eax, dword [esp + 0x20]
ja 0x61332d
cmp edi, ecx
jbe 0x6133f8
mov eax, edi
sub eax, ecx
cmp eax, dword [esp + 0x20]
jbe 0x6133f8
mov edx, ecx
and edx, 0xf
mov eax, edx
neg eax
add eax, 0x10
cmp edx, 0
cmovne edx, eax
mov dword [esp + 8], edx
lea eax, [edx + 0x10]
cmp eax, dword [esp + 0x20]
jg 0x61380e
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], ecx
mov ecx, edx
mov edx, eax
sub edx, ecx
and edx, 0xf
neg edx
add edx, eax
test ecx, ecx
mov ecx, dword [esp + 0xc]
jbe 0x613396
mov esi, dword [esp + 8]
mov dword [esp + 0xc], 0
mov dword [esp], ebx
mov ebx, dword [esp + 0xc]
movzx eax, byte [ebx + edi]
mov byte [ebx + ecx], al
inc ebx
cmp ebx, esi
jb 0x613380
mov ebx, dword [esp]
mov dword [esp + 8], esi
mov esi, dword [ebp + 8]
mov eax, dword [esp + 8]
mov dword [esp], edx
lea edx, [edi + eax]
test dl, 0xf
mov edx, dword [esp]
je 0x6133bb
movdqu xmm0, xmmword [eax + edi]
movdqa xmmword [eax + ecx], xmm0
add eax, 0x10
cmp eax, edx
jb 0x6133a8
jmp 0x6133cc
movdqa xmm0, xmmword [eax + edi]
movdqa xmmword [eax + ecx], xmm0
add eax, 0x10
cmp eax, edx
jb 0x6133bb
mov dword [esp + 8], eax
add eax, ecx
mov dword [esp + 0x18], eax
cmp edx, dword [esp + 0x20]
jae 0x61341f
mov esi, dword [esp + 0x20]
movzx eax, byte [edx + edi]
mov byte [edx + ecx], al
inc edx
cmp edx, esi
jb 0x6133e0
mov esi, dword [ebp + 8]
lea eax, [ecx + edx]
mov dword [esp + 0x18], eax
jmp 0x61341f
mov esi, dword [esp + 0x20]
mov dword [esp + 0x18], 0
mov edx, dword [esp + 0x18]
movzx eax, byte [edx + edi]
mov byte [edx + ecx], al
inc edx
cmp edx, esi
jb 0x613408
mov esi, dword [ebp + 8]
mov dword [esp + 0x18], edx
add dword [esp + 0x18], ecx
mov eax, dword [esp + 0x18]
mov byte [eax], 0
mov edx, dword [ebx + 0x14]
cmp edx, ebx
je 0x613447
test edx, edx
je 0x613447
mov eax, dword [ebx]
sub eax, edx
cmp eax, 0x80
jbe 0x613815
push edx
call fcn.007424fc
pop ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
add eax, ecx
mov dword [ebx], eax
mov dword [ebx + 0x10], edx
mov dword [ebx + 0x14], ecx
jmp 0x6135a7
lea eax, [edi + 1]
mov dword [esp], eax
mov ecx, 0x7a1432
sub ecx, eax
test ecx, ecx
mov dword [esp + 0xc], ecx
jle 0x613594
mov eax, ecx
cmp eax, 6
jle 0x61357c
lea eax, [edx + 1]
cmp eax, dword [esp]
mov dword [esp + 4], eax
jbe 0x61349b
sub eax, dword [esp]
cmp eax, dword [esp + 0xc]
ja 0x6134b6
mov eax, dword [esp]
cmp eax, dword [esp + 4]
jbe 0x61357c
sub eax, dword [esp + 4]
cmp eax, dword [esp + 0xc]
jbe 0x61357c
mov ecx, dword [esp + 4]
and ecx, 0xf
mov eax, ecx
neg eax
add eax, 0x10
cmp ecx, 0
cmovne ecx, eax
mov dword [esp + 4], ecx
lea eax, [ecx + 0x10]
cmp eax, dword [esp + 0xc]
jg 0x61387e
mov eax, dword [esp + 0xc]
mov dword [esp], edi
mov edi, ecx
mov ecx, eax
sub ecx, edi
and ecx, 0xf
neg ecx
add ecx, eax
test edi, edi
mov edi, dword [esp]
jbe 0x613521
mov esi, dword [esp + 4]
mov dword [esp + 8], 0
mov dword [esp], ebx
mov ebx, dword [esp + 8]
movzx eax, byte [ebx + edi + 1]
mov byte [ebx + edx + 1], al
inc ebx
cmp ebx, esi
jb 0x613509
mov ebx, dword [esp]
mov dword [esp + 4], esi
mov esi, dword [ebp + 8]
mov eax, dword [esp + 4]
mov dword [esp], ecx
lea ecx, [edi + eax + 1]
test cl, 0xf
mov ecx, dword [esp]
je 0x613549
movdqu xmm0, xmmword [eax + edi + 1]
movdqa xmmword [eax + edx + 1], xmm0
add eax, 0x10
cmp eax, ecx
jb 0x613534
jmp 0x61355c
movdqa xmm0, xmmword [eax + edi + 1]
movdqa xmmword [eax + edx + 1], xmm0
add eax, 0x10
cmp eax, ecx
jb 0x613549
cmp ecx, dword [esp + 0xc]
jae 0x613577
mov esi, dword [esp + 0xc]
movzx eax, byte [ecx + edi + 1]
mov byte [ecx + edx + 1], al
inc ecx
cmp ecx, esi
jb 0x613566
mov esi, dword [ebp + 8]
mov edx, dword [ebx + 0x10]
jmp 0x613594
mov esi, ecx
xor ecx, ecx
movzx eax, byte [ecx + edi + 1]
mov byte [ecx + edx + 1], al
inc ecx
cmp ecx, esi
jb 0x613580
mov esi, dword [ebp + 8]
mov edx, dword [ebx + 0x10]
mov eax, dword [esp + 0x20]
mov byte [edx + eax], 0
mov ecx, dword [ebx + 0x10]
movzx edx, byte [edi]
mov byte [ecx], dl
add dword [ebx + 0x10], eax
mov ecx, dword [esi + 0x14]
mov edi, 0x7a1414
mov eax, 0x7a141c
neg edi
add edi, eax
mov eax, dword [esi + 0x10]
mov edx, eax
sub edx, ecx
cmp edi, edx
ja 0x613600
test edi, edi
je 0x6135dc
push edi
push 0x7a1414
push ecx
call fcn.007666b0
add esp, 0xc
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
add edi, ecx
mov ebx, eax
cmp edi, eax
je 0x61362e
mov edx, 1
push edx
push eax
push edi
call fcn.00743960
add esp, 0xc
mov eax, dword [esi + 0x10]
sub edi, ebx
add edi, eax
mov dword [esi + 0x10], edi
jmp 0x61362e
test edx, edx
je 0x613619
push edx
push 0x7a1414
push ecx
call fcn.007666b0
add esp, 0xc
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
push 0x7a141c
sub eax, ecx
lea eax, [eax + 0x7a1414]
mov ecx, esi
push eax
call fcn.00583ef0
lea edi, [esi + 0x18]
mov ecx, dword [edi + 0x14]
mov ebx, 0x7a1420
mov eax, 0x7a1428
neg ebx
add ebx, eax
mov eax, dword [edi + 0x10]
mov edx, eax
sub edx, ecx
cmp ebx, edx
ja 0x613692
test ebx, ebx
je 0x613666
push ebx
push 0x7a1420
push ecx
call fcn.007666b0
add esp, 0xc
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
add ebx, ecx
mov ecx, eax
cmp ebx, eax
je 0x6136c0
mov edx, 1
push edx
push eax
push ebx
mov dword [esp + 0xc], ecx
call fcn.00743960
mov ecx, dword [esp + 0xc]
add esp, 0xc
mov eax, dword [edi + 0x10]
sub ebx, ecx
add ebx, eax
mov dword [edi + 0x10], ebx
jmp 0x6136c0
test edx, edx
je 0x6136ab
push edx
push 0x7a1420
push ecx
call fcn.007666b0
add esp, 0xc
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
push 0x7a1428
sub eax, ecx
lea eax, [eax + 0x7a1420]
mov ecx, edi
push eax
call fcn.00583ef0
lea edi, [esi + 0x30]
mov ecx, dword [edi + 0x14]
mov esi, 0x7a1420
mov eax, 0x7a1428
neg esi
add esi, eax
mov eax, dword [edi + 0x10]
mov edx, eax
sub edx, ecx
cmp esi, edx
ja 0x613724
test esi, esi
je 0x6136f8
push esi
push 0x7a1420
push ecx
call fcn.007666b0
add esp, 0xc
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
add esi, ecx
mov ebx, eax
cmp esi, eax
je 0x613752
mov edx, 1
push edx
push eax
push esi
call fcn.00743960
add esp, 0xc
mov eax, dword [edi + 0x10]
sub esi, ebx
add esi, eax
mov dword [edi + 0x10], esi
add esp, 0x64
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test edx, edx
je 0x61373d
push edx
push 0x7a1420
push ecx
call fcn.007666b0
add esp, 0xc
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
push 0x7a1428
sub eax, ecx
lea eax, [eax + 0x7a1420]
mov ecx, edi
push eax
call fcn.00583ef0
add esp, 0x64
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x28], 0
jmp 0x612c6f
mov eax, dword [esp + 0x50]
add eax, ebx
mov dword [esp + 0x10], eax
jmp 0x612d86
mov dword [esp + 0x14], 0
jmp 0x612ddb
push eax
push edx
call fcn.005d3210
add esp, 8
jmp 0x612e4f
mov dword [esp + 0x24], eax
cmp eax, 0x80
jbe 0x6137ba
push dword [esp + 0x34]
call fcn.00742a45
pop ecx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x34], eax
jmp 0x612b4e
lea eax, [esp + 0x24]
push eax
call fcn.005d3350
jmp 0x6137a8
mov dword [esp + 0x34], 0xfffffffe
jmp 0x612b3a
push str.basic_string
call fcn.005d3bb0
pop ecx
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x2c]
jmp 0x612b0f
mov eax, dword [esp + 0x50]
add eax, ebx
mov dword [esp + 0xc], eax
jmp 0x612f27
xor ecx, ecx
jmp 0x612f61
mov dword [esp + 0xc], 0
jmp 0x61328f
xor edx, edx
jmp 0x6133d6
push eax
push edx
call fcn.005d3210
add esp, 8
jmp 0x613447
mov dword [esp + 4], eax
cmp eax, 0x80
jbe 0x61384a
push dword [esp + 0x10]
call fcn.00742a45
pop ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x10], eax
jmp 0x61317b
lea eax, [esp + 4]
push eax
call fcn.005d3350
jmp 0x613838
mov dword [esp + 0x10], 0xfffffffe
jmp 0x613167
push str.basic_string
call fcn.005d3bb0
pop ecx
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
mov eax, dword [esp]
jmp 0x61313b
xor ecx, ecx
jmp 0x61355c