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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x160
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 8]
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0xf0], xmm0
movdqa xmmword [esp + 0xe0], xmm0
movdqa xmmword [esp + 0xd0], xmm0
movdqa xmmword [esp + 0xc0], xmm0
mov dword [esp + 0x102], 0xffffffff
mov dword [esp + 0xfe], 0xffffffff
movzx ecx, byte [edx + 0x15]
mov byte [esp + 0x2f], cl
test cl, 2
jne 0x4252be
mov dword [esp + 0x34], eax
mov dword [esp + 0x64], 0
jmp 0x4252cb
mov ecx, dword [eax]
mov dword [esp + 0x64], ecx
add eax, 4
mov dword [esp + 0x34], eax
mov ecx, dword [ebp + 0xc]
lea esi, [edx + 0x10]
lea edi, [edx + 8]
lea eax, [edx + 4]
movsd xmm4, qword [0x526580]
movdqa xmm5, xmmword [0x526550]
movdqa xmm6, xmmword [0x526560]
movdqa xmm7, xmmword [0x526570]
xor edx, edx
mov dword [esp + 0x44], eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], edi
movzx eax, byte [ecx]
cmp eax, 0x25
je 0x425360
test eax, eax
fldz
je case.default.0x425924
mov ebx, ecx
fstp st(0)
xor eax, eax
nop dword [eax]
movzx ecx, byte [ebx + eax + 1]
inc eax
cmp ecx, 0x25
je 0x42532f
test ecx, ecx
jne 0x425320
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
lea edx, [ecx + eax]
lea esi, [ebx + eax]
mov edi, dword [esp + 0x18]
cmp edx, dword [edi]
jae 0x425370
test eax, eax
je 0x42537e
mov edi, dword [esp + 0x1c]
mov dword [edi], edx
mov edx, dword [esp + 0x44]
add ecx, dword [edx]
push eax
push ebx
push ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
jmp 0x42537e
mov dword [esp + 0x28], edx
mov esi, ecx
fldz
jmp 0x4253ad
mov ecx, dword [ebp + 8]
mov edx, ebx
push eax
call fcn.00428370
add esp, 4
cmp byte [esi], 0
mov dword [esp + 0x28], ebx
movsd xmm4, qword [0x526580]
movdqa xmm5, xmmword [0x526550]
movdqa xmm6, xmmword [0x526560]
movdqa xmm7, xmmword [0x526570]
fldz
je case.default.0x425924
fstp st(0)
movzx eax, byte [esi + 1]
test al, al
je 0x427d72
inc esi
mov dword [esp + 0x24], 0
mov dword [esp + 0x14], 0xffffffff
xor ecx, ecx
mov dword [esp + 0x48], 0
mov ebx, esi
mov dword [esp + 0x4c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
fldz
jmp 0x425427
mov al, 0x2c
mov dword [esp + 0x54], eax
nop word cs:[eax + eax]
mov eax, dword [esp + 0xc]
mov edx, eax
movzx eax, byte [ebx + 1]
inc ebx
mov ecx, edx
test al, al
fldz
je case.default.0x425924
fstp st(0)
mov dword [esp + 0xc], ecx
movsx ecx, al
xor eax, eax
lea esi, [ecx - 0x20]
cmp esi, 0x4c
ja case.0x425440.34
mov dl, 1
jmp dword [esi*4 + 0x5265e8]
add ecx, 0xffffffd0
lea edx, [ebx + 1]
movzx eax, byte [ebx + 1]
mov ah, al
add ah, 0xd0
cmp ah, 9
ja 0x42547e
nop dword [eax + eax]
movzx eax, al
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*2]
add ecx, 0xffffffd0
movzx eax, byte [edx + 1]
inc edx
mov ah, al
add ah, 0xd0
cmp ah, 0xa
jb 0x425460
lea ebx, [edx - 1]
and ecx, 0x7fffffff
mov dword [esp + 0x24], ecx
cmp al, 0x2e
je 0x425410
movzx ecx, al
cmp ecx, 0x6c
je 0x425410
jmp 0x425718
mov al, 0x20
mov dword [esp + 0x48], eax
jmp 0x425410
mov al, 1
mov dword [esp + 0x38], eax
jmp 0x425410
mov al, 1
mov dword [esp + 0x4c], eax
jmp 0x425410
test byte [esp + 0x2f], 2
jne 0x42550f
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx]
add ecx, 4
mov dword [esp + 0x34], ecx
jmp 0x425615
mov al, 0x2b
mov dword [esp + 0x48], eax
jmp 0x425410
movsx ecx, byte [ebx + 1]
cmp ecx, 0x2a
jne 0x42553d
test byte [esp + 0x2f], 2
jne 0x425571
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx]
add ecx, 4
mov dword [esp + 0x34], ecx
jmp 0x4256a6
mov al, 1
mov dword [esp + 0x50], eax
jmp 0x425410
mov esi, dword [esp + 0x64]
mov eax, dword [esi + 4]
mov dword [esp + 0x24], 0
cmp dword [esi], eax
jle 0x42559d
mov ecx, dword [esi + 8]
lea edx, [eax + 1]
mov dword [esi + 4], edx
mov ecx, dword [ecx + eax*4]
movzx eax, word [ecx + 0x10]
test al, 0x24
je 0x4255a6
mov eax, dword [ecx]
jmp 0x425615
inc ebx
mov eax, ecx
add al, 0xd0
xor edx, edx
cmp al, 9
ja 0x425566
xor edx, edx
nop word [eax + eax]
lea eax, [edx + edx*4]
lea edx, [ecx + eax*2]
add edx, 0xffffffd0
movsx ecx, byte [ebx + 1]
inc ebx
mov eax, ecx
add al, 0xd0
cmp al, 0xa
jb 0x425550
and edx, 0x7fffffff
jmp 0x4256c3
mov esi, dword [esp + 0x64]
mov eax, dword [esi + 4]
xor edx, edx
cmp dword [esi], eax
jle 0x4256bc
mov ecx, dword [esi + 8]
lea edx, [eax + 1]
mov dword [esi + 4], edx
mov ecx, dword [ecx + eax*4]
movzx eax, word [ecx + 0x10]
test al, 0x24
je 0x4255c3
mov eax, dword [ecx]
jmp 0x4256a6
mov ecx, dword [esp + 0xc]
jmp 0x42563e
test al, 8
jne 0x4255ec
test al, 0x12
je 0x425657
cmp dword [ecx + 8], 0
je 0x425657
call fcn.00456d20
jmp 0x4255f5
test al, 8
jne 0x42567d
test al, 0x12
je 0x4256d2
cmp dword [ecx + 8], 0
mov edx, 0
je 0x4256f6
call fcn.00456d20
jmp 0x425686
movq xmm0, qword [ecx]
call fcn.00456cb0
movsd xmm4, qword [0x526580]
movdqa xmm5, xmmword [0x526550]
movdqa xmm6, xmmword [0x526560]
movdqa xmm7, xmmword [0x526570]
mov edx, eax
neg edx
cmp eax, 0x80000000
mov ecx, 0
cmove edx, ecx
test eax, eax
cmovns edx, eax
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0xc]
movzx ecx, cl
mov eax, 1
cmovs ecx, eax
movzx eax, byte [ebx + 1]
cmp eax, 0x2e
je 0x425650
cmp eax, 0x6c
jne 0x425740
mov edx, ecx
jmp case.0x425440.45
movsd xmm4, qword [0x526580]
movdqa xmm5, xmmword [0x526550]
movdqa xmm6, xmmword [0x526560]
movdqa xmm7, xmmword [0x526570]
mov ecx, dword [esp + 0xc]
jmp 0x42563e
movq xmm0, qword [ecx]
call fcn.00456cb0
movsd xmm4, qword [0x526580]
movdqa xmm5, xmmword [0x526550]
movdqa xmm6, xmmword [0x526560]
movdqa xmm7, xmmword [0x526570]
mov edx, eax
neg edx
cmp eax, 0x80000000
mov ecx, 0xffffffff
cmove edx, ecx
test eax, eax
cmovns edx, eax
movsx ecx, byte [ebx + 2]
add ebx, 2
mov dword [esp + 0x14], edx
cmp ecx, 0x6c
jne 0x425748
dec ebx
jmp 0x425410
movsd xmm4, qword [0x526580]
movdqa xmm5, xmmword [0x526550]
movdqa xmm6, xmmword [0x526560]
movdqa xmm7, xmmword [0x526570]
xor edx, edx
jmp 0x4256bc
movsd xmm4, qword [0x526580]
movdqa xmm5, xmmword [0x526550]
movdqa xmm6, xmmword [0x526560]
movdqa xmm7, xmmword [0x526570]
jmp 0x4256bc
movsx ecx, al
xor eax, eax
mov ebx, edx
jmp case.0x425440.34
movzx ecx, byte [ebx + 1]
cmp cl, 0x6c
jne 0x425738
movzx ecx, byte [ebx + 2]
add ebx, 2
mov al, 2
movsx ecx, cl
jmp case.0x425440.34
inc ebx
mov al, 1
movsx ecx, cl
jmp case.0x425440.34
mov dword [esp + 0xc], ecx
movsx ecx, al
inc ebx
xor eax, eax
nop word [eax + eax]
mov dword [esp + 0x8c], ebx
mov byte [esp + 0x40], 0x27
lea edx, [ecx - 0x25]
cmp edx, 0x55
mov ebx, 0
ja case.0x425791.38
mov dword [esp + 0x10], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x58], 0
jmp dword [edx*4 + 0x52671c]
mov ebx, 0x12
jmp 0x4258e0
cmp ecx, 0x53
je 0x4258d2
cmp ecx, 0x72
fldz
jne case.default.0x425924
fstp st(0)
mov ebx, 0x16
mov cl, 1
mov dword [esp + 0x58], ecx
mov dword [esp + 0x10], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x30], 0
jmp case.0x425791.100
mov ebx, 0xe
jmp 0x4258e0
mov ebx, 0xf
mov cl, 1
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x10], 0
mov dword [esp + 0x20], 0
jmp 0x4258f8
mov ebx, 5
mov cl, 1
mov dword [esp + 0x10], ecx
jmp 0x4258e8
mov ebx, 0x14
jmp 0x4258e0
mov ebx, 0xb
jmp 0x4258e0
mov ebx, 7
jmp 0x4258e0
mov ebx, 0xd
jmp 0x4258e0
mov ebx, 0xc
mov cl, 1
mov dword [esp + 0x30], ecx
mov dword [esp + 0x10], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x3c], 0
jmp 0x425900
mov ebx, 2
mov cl, 1
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], 0
jmp 0x4258f0
mov ebx, 0x10
jmp 0x4258e0
mov ebx, 0x11
jmp 0x4258e0
mov ebx, 8
jmp 0x4258e0
mov ebx, 0x13
jmp 0x4258e0
mov ebx, 4
jmp 0x4258e0
mov ebx, 1
jmp 0x4258e0
mov ebx, 9
jmp 0x4258e0
mov ebx, 6
mov byte [esp + 0x40], 0x22
jmp 0x4258e0
mov ebx, 0xa
jmp 0x4258e0
mov ebx, 3
jmp 0x4258e0
mov ebx, 0x15
nop word [eax + eax]
mov dword [esp + 0x10], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x58], 0
lea edx, [ebx + ebx*2]
movzx ecx, byte [edx + edx + 0x52a720]
cmp ecx, 0x10
mov edi, dword [esp + 0xc]
fldz
ja case.default.0x425924
fstp st(0)
jmp dword [ecx*4 + 0x526874]
test byte [esp + 0x2f], 2
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], edx
mov dword [esp + 0x88], ecx
jne 0x425a0e
mov eax, dword [esp + 0x34]
movq xmm0, qword [eax]
add eax, 8
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x14]
movq qword [esp + 0x148], xmm0
fld qword [esp + 0x148]
cmp eax, 0x5f5e100
mov ebx, 0x5f5e100
cmovl ebx, eax
test eax, eax
mov eax, 6
cmovs ebx, eax
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x4264d2
fchs
mov al, 0x2d
mov dword [esp + 0x48], eax
jmp 0x4264d2
test byte [esp + 0x2f], 2
jne 0x425a54
mov eax, dword [esp + 0x34]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x34], eax
jmp 0x425f1a
test byte [esp + 0x2f], 2
jne 0x425cd8
mov eax, dword [esp + 0x34]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x34], eax
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x20], 0
test ebx, ebx
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
je 0x425e81
cmp cl, 6
jne 0x426348
cmp dword [esi], 0
je 0x426b4a
mov dword [esp + 0x20], ebx
test edx, edx
jns 0x426350
jmp 0x426b7c
mov esi, dword [esp + 0x64]
mov eax, dword [esi + 4]
cmp dword [esi], eax
jle 0x4264b5
mov ecx, dword [esi + 8]
lea edx, [eax + 1]
mov dword [esi + 4], edx
mov ecx, dword [ecx + eax*4]
movzx eax, word [ecx + 0x10]
test al, 8
jne 0x425e93
test al, 0x24
je 0x426487
fild qword [ecx]
fstp qword [esp + 0x150]
movq xmm0, qword [esp + 0x150]
jmp 0x425954
mov eax, dword [esp + 0x64]
mov ecx, dword [eax + 4]
xor ebx, ebx
cmp dword [eax], ecx
jle 0x425f1a
mov edx, dword [eax + 8]
lea esi, [ecx + 1]
mov dword [eax + 4], esi
mov ecx, dword [edx + ecx*4]
test ecx, ecx
je 0x425f1a
mov edx, dword [ecx + 0x10]
mov esi, edx
not esi
test esi, 0x202
jne 0x425ee9
cmp byte [ecx + 0x12], 1
jne 0x425ee9
mov ebx, dword [ecx + 8]
jmp 0x425f1a
test byte [esp + 0x2f], 2
jne 0x425d95
mov esi, dword [esp + 0x1c]
mov eax, dword [esi]
mov edx, dword [esp + 0x34]
mov ecx, dword [edx]
add edx, 4
mov dword [esp + 0x34], edx
mov dword [ecx], eax
mov edx, dword [esp + 0xc]
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x20], 0
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x18]
jmp 0x427985
mov byte [esp + 0xc0], 0x25
mov dword [esp + 0x20], 0
mov ecx, 1
lea ebx, [esp + 0xc0]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
jmp 0x4263b0
test byte [esp + 0x2f], 2
jne 0x425dae
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx]
add ecx, 4
mov dword [esp + 0x34], ecx
cmp eax, 0x7f
ja 0x4262c3
mov byte [esp + 0xc0], al
jmp 0x427090
mov eax, dword [ebp + 8]
test byte [eax + 0x15], 1
fldz
je case.default.0x425924
fstp st(0)
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x34]
mov ebx, dword [eax]
cmp byte [esp + 0x4c], 0
je 0x425e9c
test ebx, ebx
je 0x427659
test byte [ebx + 5], 8
jne 0x427659
mov esi, dword [ebx + 8]
test esi, esi
je 0x42756f
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
and eax, 0x3fffffff
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
mov dword [esp + 0x38], ecx
add ecx, eax
mov edx, dword [esp + 0x18]
mov dword [esp + 0x24], ecx
cmp ecx, dword [edx]
jae 0x42757f
test eax, eax
je 0x42758c
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
mov dword [edx], ecx
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x38]
add ecx, dword [edx]
push eax
push esi
push ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
jmp 0x42758c
mov eax, dword [ebp + 8]
test byte [eax + 0x15], 1
fldz
je case.default.0x425924
fstp st(0)
mov eax, dword [esp + 0x34]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x34], eax
mov esi, dword [ebx + 0xc]
test esi, esi
je 0x425e21
cmp byte [esp + 0x38], 0
jne 0x425e21
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
and eax, 0x3fffffff
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
lea edx, [ecx + eax]
mov edi, dword [esp + 0x18]
cmp edx, dword [edi]
jae 0x426444
test eax, eax
mov ebx, dword [esp + 0x28]
je 0x4271c2
mov edi, dword [esp + 0x1c]
mov dword [edi], edx
mov edx, dword [esp + 0x44]
add ecx, dword [edx]
push eax
push esi
mov esi, edi
mov edi, dword [esp + 0x20]
push ecx
jmp 0x427153
mov al, 1
mov dword [esp + 0x54], 0
mov ecx, 0x3e0ffa
bt ecx, ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], edx
jb 0x425c9e
test byte [esp + 0x2f], 2
jne 0x425d31
test al, al
mov ecx, dword [esp + 0x48]
je 0x426267
movzx eax, al
cmp eax, 2
mov ebx, dword [esp + 0x14]
jne 0x42627e
mov eax, dword [esp + 0x34]
mov edi, dword [eax]
mov edx, dword [eax + 4]
add eax, 8
mov dword [esp + 0x34], eax
jmp 0x42720e
test byte [esp + 0x2f], 2
jne 0x425d64
test al, al
je 0x426297
movzx eax, al
cmp eax, 2
mov ebx, dword [esp + 0x14]
jne 0x4262ad
mov eax, dword [esp + 0x34]
mov edi, dword [eax]
mov edx, dword [eax + 4]
add eax, 8
xor ecx, ecx
mov dword [esp + 0x34], eax
jmp 0x42723b
mov esi, dword [esp + 0x64]
mov eax, dword [esi + 4]
mov ebx, 0x52a82c
mov dword [esp + 0x20], 0
cmp dword [esi], eax
jle 0x425dfa
mov ecx, dword [esi + 8]
lea edx, [eax + 1]
mov dword [esi + 4], edx
mov ecx, dword [ecx + eax*4]
test ecx, ecx
mov esi, dword [esp + 0x1c]
je 0x42633c
mov eax, dword [ecx + 0x10]
mov edx, eax
not edx
test edx, 0x202
jne 0x426301
cmp byte [ecx + 0x12], 1
jne 0x426301
mov ebx, dword [ecx + 8]
jmp 0x426331
mov esi, dword [esp + 0x64]
mov eax, dword [esi + 4]
xor edi, edi
cmp dword [esi], eax
jle 0x425e03
mov ecx, dword [esi + 8]
lea edx, [eax + 1]
mov dword [esi + 4], edx
mov ecx, dword [ecx + eax*4]
movzx eax, word [ecx + 0x10]
test al, 0x24
je 0x4263bb
mov edi, dword [ecx]
mov edx, dword [ecx + 4]
jmp 0x427206
mov esi, dword [esp + 0x64]
mov eax, dword [esi + 4]
cmp dword [esi], eax
jle 0x425e12
mov ecx, dword [esi + 8]
lea edx, [eax + 1]
mov dword [esi + 4], edx
mov ecx, dword [ecx + eax*4]
movzx eax, word [ecx + 0x10]
test al, 0x24
je 0x4263ed
mov edi, dword [ecx]
mov edx, dword [ecx + 4]
jmp 0x427235
xor eax, eax
mov dword [esp + 0x20], 0
mov esi, dword [esp + 0x1c]
xor ecx, ecx
mov ebx, dword [esp + 0x28]
jmp 0x4263b0
mov ecx, dword [esp + 0x64]
mov eax, dword [ecx + 4]
cmp dword [ecx], eax
jle 0x427088
mov esi, dword [esp + 0x64]
mov ecx, dword [esi + 8]
lea edx, [eax + 1]
mov dword [esi + 4], edx
mov ecx, dword [ecx + eax*4]
test ecx, ecx
je 0x427088
mov eax, dword [ecx + 0x10]
mov edx, eax
not edx
test edx, 0x202
jne 0x426fc7
cmp byte [ecx + 0x12], 1
jne 0x426fc7
mov eax, dword [ecx + 8]
jmp 0x426ff9
mov esi, dword [esp + 0x1c]
jmp 0x426340
xor edx, edx
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x14]
jmp 0x42721b
xor ecx, ecx
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x14]
jmp 0x427c16
cmp dword [ebx + 8], 0
mov edi, dword [esp + 0x18]
je 0x42641d
mov esi, dword [ebx + 4]
test esi, esi
je 0x4270fb
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
and eax, 0x3fffffff
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
lea edx, [ecx + eax]
cmp edx, dword [edi]
jae 0x4270c0
test eax, eax
je 0x4270ce
mov edi, dword [esp + 0x1c]
mov dword [edi], edx
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x44]
add ecx, dword [edx]
push eax
push esi
push ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
jmp 0x4270ce
mov ebx, 0x52a82c
test edx, edx
jns 0x426350
jmp 0x426b7c
movq xmm0, qword [ecx]
jmp 0x425954
test ebx, ebx
je 0x427659
mov eax, dword [ebx + 4]
test eax, eax
je 0x427659
mov ecx, dword [ebx]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
lea esi, [ecx + eax]
mov edx, dword [esp + 0x18]
cmp esi, dword [edx]
jae 0x4275d0
mov edx, dword [esp + 0x1c]
mov dword [edx], esi
mov esi, dword [esp + 0x44]
add ecx, dword [esi]
push eax
push dword [esp + 0x28]
push ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
jmp 0x4275df
test dl, 1
jne 0x425f1a
mov edx, 1
call fcn.00456040
movdqa xmm7, xmmword [0x526570]
movdqa xmm6, xmmword [0x526560]
movdqa xmm5, xmmword [0x526550]
movsd xmm4, qword [0x526580]
mov ebx, eax
mov esi, dword [esp + 0x14]
cmp byte [esp + 0x10], 0
mov edi, str._NULL_
mov eax, str.NULL
cmovne edi, eax
test ebx, ebx
mov dword [esp + 0x28], ebx
cmovne edi, ebx
test esi, esi
mov dword [esp + 0x54], edi
je 0x425fc2
sar esi, 0x1f
mov dword [esp + 0x4c], 0
xor edx, edx
xor ebx, ebx
mov dword [esp + 0x48], 0
jmp 0x425f84
add ebx, 1
mov ecx, dword [esp + 0x48]
adc ecx, 0
mov edi, dword [esp + 0x54]
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x14]
add eax, 0xffffffff
adc esi, 0xffffffff
mov dword [esp + 0x14], eax
or eax, esi
je 0x425fd6
movzx ecx, byte [edi + ebx]
test cl, cl
je 0x425fd6
xor eax, eax
cmp cl, byte [esp + 0x40]
sete al
add dword [esp + 0x4c], eax
adc edx, 0
cmp byte [esp + 0x38], 0
je 0x425f60
cmp cl, 0xc0
jb 0x425f60
mov edi, dword [esp + 0x54]
mov ecx, dword [esp + 0x48]
add ebx, 1
adc ecx, 0
movzx eax, byte [edi + ebx]
and al, 0xc0
cmp al, 0x80
je 0x425fb0
jmp 0x425f6e
xor ebx, ebx
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
xor edx, edx
cmp dword [esp + 0x28], 0
setne byte [esp + 0x14]
mov eax, dword [esp + 0x4c]
add eax, ebx
mov ecx, edx
adc ecx, dword [esp + 0x48]
add eax, 3
adc ecx, 0
mov dword [esp + 0x4c], eax
cmp eax, 0x47
mov eax, ecx
sbb eax, 0
lea eax, [esp + 0xc0]
mov dword [esp + 0x28], eax
mov esi, dword [ebp + 8]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0xc]
mov edx, 0
jl 0x42609a
cmp byte [esi + 0x14], 0
fldz
jne case.default.0x425924
fstp st(0)
mov edx, dword [esp + 0x4c]
cmp dword [eax], edx
mov eax, 0
sbb eax, ecx
mov edi, ecx
jae 0x42604c
mov eax, dword [esi + 0xc]
cmp eax, edx
mov ecx, 0
sbb ecx, edi
jb 0x427e73
mov eax, edi
mov ecx, dword [esi]
test ecx, ecx
je 0x42605f
push eax
call fcn.0043f5f0
add esp, 4
jmp 0x426068
mov ecx, edx
mov edx, eax
call fcn.00424d20
mov dword [esp + 0x28], eax
mov edx, eax
test eax, eax
movsd xmm4, qword [0x526580]
movdqa xmm5, xmmword [0x526550]
movdqa xmm6, xmmword [0x526560]
movdqa xmm7, xmmword [0x526570]
mov edi, dword [esp + 0xc]
je 0x427dd9
mov dword [esp + 0x4c], 0
mov eax, dword [esp + 0x10]
and al, byte [esp + 0x14]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edi
je 0x4260c9
mov eax, dword [esp + 0x28]
movzx ecx, byte [esp + 0x40]
mov byte [eax], cl
mov dword [esp + 0x50], 1
jmp 0x4260d1
mov dword [esp + 0x50], 0
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x20], edx
cmp ebx, 1
mov ecx, dword [esp + 0x48]
mov eax, ecx
sbb eax, 0
jl 0x426101
mov eax, ebx
xor eax, 1
mov dword [esp + 0x14], 0
or eax, ecx
mov edi, dword [esp + 0x50]
jne 0x426112
jmp 0x42620a
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
jmp 0x426242
mov eax, ebx
and eax, 0xfffffffe
mov dword [esp + 0x3c], eax
xor edx, edx
mov dword [esp + 0x30], 0
jmp 0x426158
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
add edx, 2
mov ecx, dword [esp + 0x30]
adc ecx, 0
mov eax, edx
xor eax, dword [esp + 0x3c]
mov dword [esp + 0x30], ecx
xor ecx, dword [esp + 0x48]
or ecx, eax
je 0x426204
mov eax, dword [esp + 0x54]
mov dword [esp + 0x14], edx
movzx eax, byte [eax + edx]
mov byte [esp + 0x50], al
mov esi, edi
add esi, 1
mov edx, dword [esp + 0x4c]
adc edx, 0
mov ecx, dword [esp + 0x28]
movzx eax, byte [esp + 0x50]
mov byte [ecx + edi], al
mov ch, byte [esp + 0x40]
cmp byte [esp + 0x50], ch
mov byte [esp + 0x40], ch
jne 0x4261b0
add edi, 2
mov dword [esp + 0x50], edi
mov eax, dword [esp + 0x4c]
adc eax, 0
mov edx, dword [esp + 0x28]
mov byte [edx + esi], ch
mov esi, edi
mov dword [esp + 0x58], eax
jmp 0x4261be
mov dword [esp + 0x50], esi
mov dword [esp + 0x58], edx
mov eax, edx
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
or ecx, 1
mov edi, dword [esp + 0x54]
movzx ecx, byte [edi + ecx]
mov edi, dword [esp + 0x50]
add edi, 1
adc eax, 0
mov dword [esp + 0x4c], eax
mov byte [edx + esi], cl
mov ch, byte [esp + 0x40]
cmp cl, ch
jne 0x426130
mov cl, ch
add esi, 2
mov eax, dword [esp + 0x58]
adc eax, 0
mov byte [edx + edi], ch
mov edi, esi
mov dword [esp + 0x4c], eax
jmp 0x426130
mov dword [esp + 0x14], edx
mov ecx, edi
mov edx, dword [esp + 0xc]
test bl, 1
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
je 0x426246
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x14]
movzx eax, byte [eax + ecx]
lea ecx, [edi + 1]
mov byte [ebx + edi], al
movzx edx, byte [esp + 0x40]
cmp al, dl
jne 0x42623e
mov byte [ebx + ecx], dl
add edi, 2
mov ecx, edi
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp byte [esp + 0x10], 0
je 0x42625a
mov edi, edx
movzx edx, byte [esp + 0x40]
mov byte [ebx + ecx], dl
mov edx, edi
inc ecx
mov dword [esp + 0x10], ecx
mov byte [ebx + ecx], 0
jmp 0x4277eb
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
add eax, 4
mov dword [esp + 0x34], eax
mov edi, edx
sar edx, 0x1f
jmp 0x42720a
mov eax, dword [esp + 0x34]
mov esi, dword [eax]
add eax, 4
mov dword [esp + 0x34], eax
mov edi, esi
mov edx, esi
sar edx, 0x1f
jmp 0x42720e
mov eax, dword [esp + 0x34]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x34], eax
xor ecx, ecx
xor edx, edx
jmp 0x427237
mov eax, dword [esp + 0x34]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x34], eax
xor ecx, ecx
xor edx, edx
jmp 0x42723b
cmp eax, 0x7ff
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ecx, eax
ja 0x426f85
shr ecx, 6
or cl, 0xc0
mov byte [esp + 0xc0], cl
and al, 0x3f
or al, 0x80
mov byte [esp + 0xc1], al
mov dword [esp + 0x10], 2
jmp 0x4276e1
test al, 1
jne 0x42633c
mov edx, 1
call fcn.00456040
movdqa xmm7, xmmword [0x526570]
movdqa xmm6, xmmword [0x526560]
movdqa xmm5, xmmword [0x526550]
movsd xmm4, qword [0x526580]
mov ebx, eax
mov cl, 5
mov edi, dword [esp + 0xc]
jmp 0x4259d3
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
test edx, edx
js 0x426b7c
cmp byte [esp + 0x38], 0
je 0x42639d
mov ecx, ebx
test edx, edx
jne 0x42637f
sub ecx, ebx
mov dword [esp + 0x10], ecx
mov al, 1
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x24]
mov edx, edi
jmp 0x4277eb
inc ecx
lea eax, [edx - 1]
cmp edx, 1
mov edx, eax
jle 0x42635d
mov eax, ecx
movzx eax, byte [ecx]
test al, al
je 0x42635d
cmp al, 0xc0
jb 0x426374
nop dword [eax]
movzx eax, byte [ecx + 1]
inc ecx
and al, 0xc0
cmp al, 0x80
je 0x426390
jmp 0x426375
xor ecx, ecx
test edx, edx
je 0x4263b0
cmp byte [ebx + ecx], 0
je 0x4263b0
inc ecx
cmp edx, ecx
jne 0x4263a3
mov ecx, edx
mov edx, edi
mov edi, dword [esp + 0x18]
jmp 0x427985
test al, 8
jne 0x4271fb
test al, 0x12
mov ebx, dword [esp + 0x14]
je 0x427c03
cmp dword [ecx + 8], 0
je 0x427c03
call fcn.00456d20
mov edi, eax
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x48]
jmp 0x42720e
test al, 8
jne 0x42722a
test al, 0x12
mov ebx, dword [esp + 0x14]
je 0x427c10
cmp dword [ecx + 8], 0
je 0x427c10
call fcn.00456d20
mov edi, eax
mov ebx, dword [esp + 0x14]
xor ecx, ecx
jmp 0x42723b
test esi, esi
je 0x42767f
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
and eax, 0x3fffffff
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
lea edx, [ecx + eax]
cmp edx, dword [edi]
jb 0x425c20
mov ecx, dword [ebp + 8]
mov edx, esi
push eax
call fcn.00428370
add esp, 4
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x20], 0
mov esi, dword [esp + 0x1c]
movsd xmm4, qword [0x526580]
movdqa xmm5, xmmword [0x526550]
movdqa xmm6, xmmword [0x526560]
movdqa xmm7, xmmword [0x526570]
jmp 0x427672
test al, 0x12
je 0x4264b5
call fcn.004565a0
movdqa xmm7, xmmword [0x526570]
movdqa xmm6, xmmword [0x526560]
movdqa xmm5, xmmword [0x526550]
movsd xmm4, qword [0x526580]
jmp 0x425954
mov eax, dword [esp + 0x14]
cmp eax, 0x5f5e100
mov ebx, 0x5f5e100
cmovl ebx, eax
test eax, eax
mov eax, 6
cmovs ebx, eax
fldz
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
or cl, byte [esp + 0x3c]
test ebx, ebx
setg al
and al, cl
movzx eax, al
sub ebx, eax
mov eax, ebx
and eax, 0xfff
imul ecx, eax, 0xcccd
shr ecx, 0x12
and ecx, 0xfffffffe
lea ecx, [ecx + ecx*4]
mov edx, eax
sub edx, ecx
movzx ecx, dx
movsd xmm0, qword [ecx*8 + 0x52a7d8]
cmp eax, 0xa
jb 0x42652c
add eax, 0xa
nop dword [eax]
mulsd xmm0, xmm4
add eax, 0xfffffff6
cmp eax, 0x13
ja 0x426520
cmp byte [esp + 0x30], 0
je 0x4265a5
fst qword [esp + 0x140]
mov eax, dword [esp + 0x144]
shr eax, 0x14
and eax, 0x7ff
add eax, 0xfffffc01
cwde
imul eax, eax, 0x5556
mov ecx, eax
shr ecx, 0x1f
shr eax, 0x10
add eax, ecx
cwde
add eax, ebx
fld st(0)
fmul qword [0x526588]
movsd qword [esp + 0x138], xmm0
fadd qword [esp + 0x138]
fstp qword [esp + 0x130]
cmp eax, 0xf
jge 0x42658f
movsd xmm0, qword [esp + 0x130]
mov edx, dword [esp + 0xc]
movsd qword [esp + 0x128], xmm0
fadd qword [esp + 0x128]
jmp 0x4265a9
mov edx, dword [esp + 0xc]
fst qword [esp + 0x120]
movq xmm1, qword [esp + 0x120]
movq qword [esp + 0x118], xmm1
fld qword [esp + 0x118]
fxam
wait
fnstsw ax
fstp st(0)
and eax, 0x4500
cmp eax, 0x100
jne 0x4265f9
fstp st(0)
mov ebx, 0x52a828
mov dword [esp + 0x20], 0
mov ecx, 3
mov eax, dword [esp + 0x24]
jmp 0x427985
xor ecx, ecx
fldz
fxch st(1)
fucomi st(1)
fstp st(1)
jbe 0x42676f
mov dword [esp + 0x40], ebx
fld1
xor eax, eax
fld qword [0x526590]
fxch st(2)
fucomi st(2)
fldz
jb 0x42667f
fstp st(2)
fstp st(1)
mov eax, 0x64
fld xword [0x526598]
fxch st(1)
fucomi st(1)
fldz
fxch st(3)
fxch st(2)
jb 0x42667f
fstp st(2)
fstp st(2)
mov eax, 0xc8
fld xword [0x5265a4]
fxch st(2)
fucomi st(2)
fldz
jb 0x42667f
fstp st(2)
fstp st(1)
mov eax, 0x12c
fld xword [0x5265b0]
fxch st(1)
fucomi st(1)
fldz
fxch st(3)
fxch st(2)
jb 0x42667f
fstp st(2)
fstp st(2)
mov eax, 0x190
fldz
fldz
fxch st(1)
fxch st(3)
fxch st(1)
fstp st(3)
fstp st(2)
lea ecx, [eax - 1]
fldz
nop dword [eax + eax]
fstp st(0)
fld st(0)
mov ebx, ecx
fxch st(1)
fmul dword [0x5265bc]
fxch st(2)
fucomi st(2)
fxch st(2)
fxch st(1)
jb 0x4266b7
lea edx, [eax + 0xa]
lea ecx, [ebx + 0xa]
cmp eax, 0x15f
mov eax, edx
jb 0x426690
fstp st(1)
mov ecx, ebx
fldz
nop dword [eax]
fstp st(0)
fld st(0)
inc ecx
fxch st(1)
fmul dword [0x5265c0]
fxch st(2)
fucomi st(2)
fxch st(2)
fxch st(1)
jb 0x4266df
cmp ecx, 0x15f
jb 0x4266c0
fstp st(1)
fdivp st(1)
fld qword [0x5265c8]
fucompi st(1)
mov edx, dword [esp + 0xc]
jbe 0x426713
nop word cs:[eax + eax]
fmul dword [0x5265d0]
add ecx, 0xfffffff8
fld qword [0x5265c8]
fucompi st(1)
ja 0x426700
fld1
fucompi st(1)
mov ebx, dword [esp + 0x40]
jbe 0x42672d
nop dword [eax]
fmul dword [0x5265c0]
dec ecx
fld1
fucompi st(1)
ja 0x426720
cmp ecx, 0x15f
jl 0x42676f
fstp st(0)
mov eax, dword [esp + 0x48]
mov byte [esp + 0xc0], al
xor ecx, ecx
test al, al
setne cl
mov dword [esp + ecx + 0xc0], 0x666e49
add ecx, 3
mov dword [esp + 0x20], 0
lea ebx, [esp + 0xc0]
mov eax, dword [esp + 0x24]
jmp 0x427985
cmp byte [esp + 0x30], 0
je 0x426782
mov eax, dword [esp + 0x38]
mov byte [esp + 0x10], al
mov dl, 1
jmp 0x4267f9
movsd qword [esp + 0x110], xmm0
fadd qword [esp + 0x110]
fld dword [0x5265c0]
fld st(1)
fmul qword [0x5265d8]
fxch st(2)
fucomi st(1)
fstp st(1)
fxch st(1)
fcmovb st(0), st(1)
fstp st(1)
sbb ecx, 0xffffffff
mov eax, dword [esp + 0x74]
cmp eax, 0xf
je 0x4267bd
cmp eax, 2
jne 0x4267e8
cmp byte [esp + 0x4c], 0
sete byte [esp + 0x10]
cmp ecx, 0xfffffffc
setl al
cmp ebx, ecx
setl dl
or dl, al
mov eax, ecx
mov esi, ecx
mov ecx, 0
cmovne eax, ecx
mov ecx, esi
sub ebx, eax
inc dl
jmp 0x4267f9
mov eax, dword [esp + 0x88]
mov edx, eax
mov eax, dword [esp + 0x38]
mov byte [esp + 0x10], al
xor eax, eax
mov byte [esp + 0x54], dl
cmp dl, 2
mov dword [esp + 0x14], ecx
mov edx, ecx
mov dword [esp + 0x20], 0
cmove edx, eax
test edx, edx
mov ecx, 0
mov dword [esp + 0x30], edx
cmovg ecx, edx
mov esi, ebx
sar esi, 0x1f
mov edi, dword [esp + 0x24]
mov eax, edi
sar eax, 0x1f
mov edx, ebx
add edx, edi
adc eax, esi
add edx, ecx
adc eax, 0
cmp edx, 0x38
mov ecx, eax
sbb ecx, 0
lea edi, [esp + 0xc0]
mov dword [esp + 0x40], ebx
jl 0x4268e1
add edx, 0xf
adc eax, 0
mov ecx, dword [ebp + 8]
cmp byte [ecx + 0x14], 0
mov edi, dword [esp + 0x18]
jne case.default.0x425924
cmp dword [edi], edx
mov ecx, 0
sbb ecx, eax
mov ebx, dword [ebp + 8]
jae 0x42688d
mov ecx, dword [ebx + 0xc]
cmp ecx, edx
mov esi, 0
sbb esi, eax
mov ebx, dword [ebp + 8]
jb 0x427f19
fstp xword [esp + 0x58]
mov ecx, dword [ebx]
test ecx, ecx
je 0x4268a2
push eax
call fcn.0043f5f0
add esp, 4
jmp 0x4268ab
mov ecx, edx
mov edx, eax
call fcn.00424d20
mov edi, eax
mov dword [esp + 0x20], eax
test eax, eax
movsd xmm4, qword [0x526580]
movdqa xmm5, xmmword [0x526550]
movdqa xmm6, xmmword [0x526560]
movdqa xmm7, xmmword [0x526570]
fld xword [esp + 0x58]
mov ebx, dword [esp + 0x40]
je 0x427ebe
movzx eax, byte [esp + 0x38]
add eax, eax
test ebx, ebx
setg cl
mov edx, dword [esp + 0x4c]
or dl, cl
mov esi, edi
mov ecx, dword [esp + 0x48]
test cl, cl
je 0x426902
lea esi, [edi + 1]
mov byte [edi], cl
mov dword [esp + 0x28], edi
lea ebx, [eax + eax*4]
add ebx, 0x10
or dl, byte [esp + 0x38]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x30]
test edx, edx
mov edi, dword [esp + 0x18]
js 0x42697f
fldz
test dl, 1
jne 0x42698c
fstp st(0)
fnstcw word [esp + 0x72]
movzx ecx, word [esp + 0x72]
or ecx, 0xc00
mov word [esp + 0x86], cx
fldcw word [esp + 0x86]
lea ebx, [eax + eax*4]
fist dword [esp + 0xb8]
fldcw word [esp + 0x72]
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xbc], eax
fisub dword [esp + 0xbc]
add ebx, 0xf
fmul dword [0x5265c0]
add al, 0x30
mov byte [esi], al
inc esi
lea eax, [edx - 1]
fld st(0)
jmp 0x42698e
mov byte [esi], 0x30
inc esi
mov ecx, dword [esp + 0x14]
jmp 0x426a70
mov eax, edx
mov ecx, 0xffffffff
test edx, edx
je 0x426a6e
fstp st(0)
add eax, 2
jmp 0x4269c2
mov byte [esi + 1], cl
add esi, 2
add eax, 0xfffffffe
cmp eax, 1
jle 0x426a67
mov cl, 0x30
test ebx, ebx
jle 0x426a12
fnstcw word [esp + 0x70]
movzx edx, word [esp + 0x70]
or edx, 0xc00
mov word [esp + 0x84], dx
fldcw word [esp + 0x84]
fist dword [esp + 0xb0]
fldcw word [esp + 0x70]
mov edx, dword [esp + 0xb0]
mov dword [esp + 0xb4], edx
fisub dword [esp + 0xb4]
dec ebx
fmul dword [0x5265c0]
add dl, 0x30
jmp 0x426a14
mov dl, 0x30
mov byte [esi], dl
test ebx, ebx
jle 0x4269b0
fnstcw word [esp + 0x6e]
movzx ecx, word [esp + 0x6e]
or ecx, 0xc00
mov word [esp + 0x82], cx
fldcw word [esp + 0x82]
fist dword [esp + 0xa8]
fldcw word [esp + 0x6e]
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0xac], ecx
fisub dword [esp + 0xac]
dec ebx
fmul dword [0x5265c0]
add cl, 0x30
jmp 0x4269b0
mov ecx, 0xffffffff
jmp 0x426a70
fstp st(1)
cmp byte [esp + 0x4c], 0
je 0x426a7b
mov byte [esi], 0x2e
inc esi
cmp ecx, 0xfffffffe
jg 0x426acf
mov edi, ecx
not edi
push edi
push 0x30
push esi
fstp xword [esp + 0x64]
mov dword [esp + 0x3c], ecx
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
mov ecx, dword [esp + 0x3c]
fld xword [esp + 0x64]
movdqa xmm7, xmmword [0x526570]
movdqa xmm6, xmmword [0x526560]
movdqa xmm5, xmmword [0x526550]
movsd xmm4, qword [0x526580]
add esp, 0xc
add esi, edi
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x40]
add eax, ecx
inc eax
jmp 0x426ad3
mov eax, dword [esp + 0x40]
test eax, eax
jle 0x426b41
cmp ecx, 0xffffffff
mov edx, ecx
mov ecx, 0xffffffff
cmovge edx, ecx
test al, 1
je 0x426bc5
test ebx, ebx
jle 0x426bbf
fnstcw word [esp + 0x6c]
movzx ecx, word [esp + 0x6c]
or ecx, 0xc00
mov word [esp + 0x80], cx
fldcw word [esp + 0x80]
fist dword [esp + 0xa0]
fldcw word [esp + 0x6c]
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0xa4], ecx
fisub dword [esp + 0xa4]
dec ebx
fmul dword [0x5265c0]
add cl, 0x30
jmp 0x426bc1
fstp st(0)
fldz
jmp 0x426bcd
mov eax, dword [ebp + 8]
cmp dword [eax + 0xc], 0
je 0x427cc1
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4259fd
test edx, edx
jns 0x4259fd
mov eax, dword [ebp + 8]
cmp byte [eax + 0x14], 0
je 0x427c66
mov dword [esp + 0x20], ebx
mov edi, dword [esp + 0x18]
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
and eax, 0x7fffffff
mov dword [esp + 0x10], eax
movsd xmm4, qword [0x526580]
movdqa xmm5, xmmword [0x526550]
movdqa xmm6, xmmword [0x526560]
movdqa xmm7, xmmword [0x526570]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
jmp 0x4277ef
mov cl, 0x30
dec eax
mov byte [esi], cl
inc esi
mov ecx, edx
add dword [esp + 0x40], edx
jne 0x426c3d
fstp st(0)
cmp byte [esp + 0x10], 0
je 0x426ce4
cmp byte [esp + 0x4c], 0
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
je 0x426d01
nop word cs:[eax + eax]
dec esi
movzx eax, byte [esi]
cmp eax, 0x30
jne 0x426c0e
mov byte [esi], 0
jmp 0x426c00
cmp eax, 0x2e
jne 0x426d00
cmp byte [esp + 0x38], 0
mov eax, dword [esp + 0x24]
je 0x4270ad
mov byte [esi + 1], 0x30
add esi, 2
cmp byte [esp + 0x54], 2
je 0x426d10
jmp 0x426d90
dec eax
jmp 0x426c4b
mov byte [esi + 1], cl
add esi, 2
add eax, 0xfffffffe
jae 0x426bcd
mov cl, 0x30
test ebx, ebx
jle 0x426c95
fnstcw word [esp + 0x6a]
movzx edx, word [esp + 0x6a]
or edx, 0xc00
mov word [esp + 0x7e], dx
fldcw word [esp + 0x7e]
fist dword [esp + 0x98]
fldcw word [esp + 0x6a]
mov edx, dword [esp + 0x98]
mov dword [esp + 0x9c], edx
fisub dword [esp + 0x9c]
dec ebx
fmul dword [0x5265c0]
add dl, 0x30
jmp 0x426c97
mov dl, 0x30
mov byte [esi], dl
test ebx, ebx
jle 0x426c40
fnstcw word [esp + 0x68]
movzx ecx, word [esp + 0x68]
or ecx, 0xc00
mov word [esp + 0x7c], cx
fldcw word [esp + 0x7c]
fist dword [esp + 0x90]
fldcw word [esp + 0x68]
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x94], ecx
fisub dword [esp + 0x94]
dec ebx
fmul dword [0x5265c0]
add cl, 0x30
jmp 0x426c40
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
cmp byte [esp + 0x54], 2
je 0x426d10
jmp 0x426d90
inc esi
mov eax, dword [esp + 0x24]
cmp byte [esp + 0x54], 2
jne 0x426d90
mov eax, dword [esp + 0x78]
movzx eax, byte [eax + eax + 0x52a721]
movzx eax, byte [eax + str.0123456789ABCDEF0123456789abcdef]
mov byte [esi], al
test ecx, ecx
js 0x426d2f
mov byte [esi + 1], 0x2b
jmp 0x426d35
mov byte [esi + 1], 0x2d
neg ecx
cmp ecx, 0x64
jb 0x426d60
mov eax, ecx
mov dword [esp + 0x14], ecx
mov ecx, 0x51eb851f
mul ecx
shr edx, 5
imul eax, edx, 0x64
mov ecx, edx
add cl, 0x30
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x14]
add esi, 3
sub ecx, eax
jmp 0x426d63
add esi, 2
movzx eax, cl
imul eax, eax, 0xcd
shr eax, 0xb
mov edx, ecx
mov ecx, eax
or cl, 0x30
mov byte [esi], cl
add eax, eax
lea eax, [eax + eax*4]
sub dl, al
or dl, 0x30
mov byte [esi + 1], dl
add esi, 2
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
mov byte [esi], 0
mov ecx, esi
sub ecx, ebx
mov dword [esp + 0x10], ecx
cmp byte [esp + 0x50], 0
je 0x426f6f
test dl, dl
jne 0x426f6f
mov ecx, dword [esp + 0x10]
sub eax, ecx
jle 0x426f78
test ecx, ecx
js 0x427cfe
mov edi, dword [esp + 0x24]
cmp edi, eax
mov ecx, eax
cmovl ecx, edi
neg ecx
add ecx, edi
inc ecx
mov dword [esp + 0x40], ecx
cmp ecx, 4
jb 0x427cdc
mov edi, dword [esp + 0x24]
cmp edi, eax
mov edx, eax
cmovl edx, edi
mov ecx, edi
sub ecx, edx
lea edx, [ebx + edi]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x14], ecx
sub edx, ecx
cmp edx, dword [esp + 0x38]
ja 0x427cdc
mov ecx, dword [esp + 0x10]
add ecx, ebx
mov ebx, ecx
sub ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x24]
cmp ebx, ecx
mov ebx, dword [esp + 0x28]
ja 0x427cdc
mov ecx, esi
sub ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x24]
cmp ecx, 0x10
jb 0x427cdc
xor edx, edx
mov ecx, dword [esp + 0x40]
cmp ecx, 0x10
jb 0x426f19
lea edi, [ecx - 0x10]
mov edx, edi
shr edx, 4
inc edx
mov ebx, edx
and ebx, 3
xor ecx, ecx
cmp edi, 0x30
mov dword [esp + 0x38], ebx
jb 0x426eb2
and edx, 0xfffffffc
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
lea edi, [ebx + ecx]
add edi, 0xfffffff1
mov ecx, dword [esp + 0x10]
add ebx, ecx
add ebx, 0xfffffff1
xor ecx, ecx
movups xmm0, xmmword [ebx + ecx]
movups xmmword [edi + ecx], xmm0
movups xmm0, xmmword [ebx + ecx - 0x10]
movups xmmword [edi + ecx - 0x10], xmm0
movups xmm0, xmmword [ebx + ecx - 0x20]
movups xmmword [edi + ecx - 0x20], xmm0
movupd xmm0, xmmword [ebx + ecx - 0x30]
movupd xmmword [edi + ecx - 0x30], xmm0
add ecx, 0xffffffc0
add edx, 0xfffffffc
jne 0x426e7c
neg ecx
mov ebx, dword [esp + 0x38]
mov edx, dword [esp + 0x40]
and edx, 0xfffffff0
test ebx, ebx
je 0x426efe
mov edi, dword [esp + 0x24]
sub edi, ecx
mov ebx, dword [esp + 0x28]
add edi, ebx
add edi, 0xfffffff1
mov dword [esp + 0x14], edi
add ecx, ebx
mov edi, ebx
mov ebx, esi
sub ebx, ecx
lea ecx, [edi + ebx]
add ecx, 0xfffffff1
shl dword [esp + 0x38], 4
xor ebx, ebx
movupd xmm0, xmmword [ecx + ebx]
mov edi, dword [esp + 0x14]
movupd xmmword [edi + ebx], xmm0
add ebx, 0xfffffff0
mov edi, dword [esp + 0x38]
add edi, ebx
jne 0x426ee5
cmp dword [esp + 0x40], edx
mov ebx, dword [esp + 0x28]
je 0x427cfe
mov ecx, dword [esp + 0x40]
test cl, 0xc
je 0x427cd6
and ecx, 0xfffffffc
mov edi, dword [esp + 0x24]
sub edi, ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x54], ecx
neg ecx
mov dword [esp + 0x38], ecx
neg edx
mov ecx, dword [esp + 0x24]
lea edi, [ebx + ecx]
add edi, 0xfffffffd
mov ecx, dword [esp + 0x10]
add ecx, ebx
add ecx, 0xfffffffd
mov ebx, dword [ecx + edx]
mov dword [edi + edx], ebx
add edx, 0xfffffffc
cmp dword [esp + 0x38], edx
jne 0x426f45
mov ecx, dword [esp + 0x54]
cmp dword [esp + 0x40], ecx
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x14]
jne 0x427cdc
jmp 0x427cfe
mov esi, dword [esp + 0x1c]
jmp 0x427981
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
jmp 0x427985
cmp eax, 0xffff
ja 0x42769a
shr ecx, 0xc
or cl, 0xe0
mov byte [esp + 0xc0], cl
mov ecx, eax
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [esp + 0xc1], cl
and al, 0x3f
or al, 0x80
mov byte [esp + 0xc2], al
mov dword [esp + 0x10], 3
jmp 0x4276e1
test al, 1
jne 0x427088
mov edx, 1
call fcn.00456040
movdqa xmm7, xmmword [0x526570]
movdqa xmm6, xmmword [0x526560]
movdqa xmm5, xmmword [0x526550]
movsd xmm4, qword [0x526580]
test eax, eax
je 0x427088
movzx ecx, byte [eax]
mov byte [esp + 0xc0], cl
mov dword [esp + 0x10], 1
cmp cl, 0xc0
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
jb 0x427c38
movzx ecx, byte [eax + 1]
mov edx, ecx
and dl, 0xc0
cmp dl, 0x80
jne 0x427c38
mov byte [esp + 0xc1], cl
movzx ecx, byte [eax + 2]
mov edx, ecx
and dl, 0xc0
mov dword [esp + 0x10], 2
cmp dl, 0x80
jne 0x427c38
mov byte [esp + 0xc2], cl
movzx eax, byte [eax + 3]
mov ecx, eax
and cl, 0xc0
mov dword [esp + 0x10], 3
cmp cl, 0x80
mov edx, dword [esp + 0x14]
jne 0x4276e1
mov byte [esp + 0xc3], al
jmp 0x4276d9
mov byte [esp + 0xc0], 0
mov dword [esp + 0x10], 1
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
jmp 0x4276e5
mov byte [esi], 0
cmp byte [esp + 0x54], 2
je 0x426d10
jmp 0x426d90
mov ecx, dword [ebp + 8]
mov edx, esi
push eax
call fcn.00428370
add esp, 4
mov edx, dword [esp + 0x1c]
mov eax, dword [edx]
lea ecx, [eax + 1]
cmp ecx, dword [edi]
jae 0x4270e9
mov dword [edx], ecx
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx]
mov byte [ecx + eax], 0x2e
jmp 0x4270fb
mov ecx, dword [ebp + 8]
mov edx, 0x52a839
push 1
call fcn.00428370
add esp, 4
mov esi, dword [ebx + 8]
test esi, esi
je 0x427169
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov edx, eax
and edx, 0x3fffffff
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
lea ecx, [eax + edx]
cmp ecx, dword [edi]
mov ebx, dword [esp + 0x28]
jae 0x4271b2
test edx, edx
je 0x4271c2
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x24]
mov dword [ecx], eax
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x38]
add eax, dword [ecx]
push edx
push esi
mov esi, dword [esp + 0x24]
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x20], 0
jmp 0x4271d2
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
xor eax, eax
cmp ecx, dword [edi]
mov ebx, dword [esp + 0x28]
jae 0x4271b4
xor eax, eax
mov dword [esp + 0x20], 0
mov esi, dword [esp + 0x1c]
movsd xmm4, qword [0x526580]
movdqa xmm5, xmmword [0x526550]
movdqa xmm6, xmmword [0x526560]
movdqa xmm7, xmmword [0x526570]
mov edx, dword [esp + 0xc]
xor ecx, ecx
jmp 0x427985
mov eax, edx
mov ecx, dword [ebp + 8]
mov edx, esi
push eax
call fcn.00428370
add esp, 4
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x20], 0
mov esi, dword [esp + 0x1c]
movsd xmm4, qword [0x526580]
movdqa xmm5, xmmword [0x526550]
movdqa xmm6, xmmword [0x526560]
movdqa xmm7, xmmword [0x526570]
mov edx, dword [esp + 0xc]
jmp 0x427985
movq xmm0, qword [ecx]
call fcn.00456cb0
mov edi, eax
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x14]
test edx, edx
movzx ecx, cl
mov eax, 0x2d
cmovs ecx, eax
mov eax, edx
sar eax, 0x1f
xor edx, eax
xor edi, eax
sub edi, eax
sbb edx, eax
jmp 0x42723b
movq xmm0, qword [ecx]
call fcn.00456cb0
mov edi, eax
xor ecx, ecx
mov ebx, dword [esp + 0x14]
mov esi, edi
mov dword [esp + 0x28], edx
or edi, edx
je 0x427c12
mov eax, dword [esp + 0x24]
cmp byte [esp + 0x50], 0
je 0x42725f
cmp cl, 1
adc eax, 0xffffffff
cmp ebx, eax
cmovle ebx, eax
cmp ebx, 0x25
mov dword [esp + 0x48], ecx
mov dword [esp + 0x14], ebx
jge 0x427289
mov dword [esp + 0x20], 0
mov edi, 0x46
lea ecx, [esp + 0xc0]
mov edx, dword [esp + 0x28]
jmp 0x427317
xor ecx, ecx
mov edi, ebx
add edi, 0xa
setb cl
cmp byte [esp + 0x54], 0
je 0x4272ae
mov eax, ebx
mov ebx, ecx
mov ecx, 0xaaaaaaab
mul ecx
mov ecx, ebx
shr edx, 1
add edi, edx
adc ecx, 0
mov eax, dword [ebp + 8]
cmp byte [eax + 0x14], 0
fldz
jne case.default.0x425924
fstp st(0)
mov edx, edi
mov eax, dword [esp + 0x18]
cmp dword [eax], edi
mov eax, 0
sbb eax, ecx
mov edi, dword [ebp + 8]
mov eax, ecx
jae 0x4272e7
mov ebx, dword [edi + 0xc]
cmp ebx, edx
mov ecx, 0
sbb ecx, eax
jb 0x427e28
mov ecx, dword [edi]
test ecx, ecx
mov ebx, edi
mov edi, edx
je 0x4272fc
push eax
call fcn.0043f5f0
add esp, 4
jmp 0x427305
mov ecx, edx
mov edx, eax
call fcn.00424d20
mov ecx, eax
test eax, eax
mov edx, dword [esp + 0x28]
je 0x427daf
mov dword [esp + 0x20], ecx
lea ebx, [edi + ecx]
dec ebx
mov dword [esp + 0x10], ebx
cmp byte [esp + 0x58], 0
je 0x4273c4
push 0
push 0xa
push edx
push esi
mov dword [esp + 0x48], ecx
call fcn.0050f870
add esp, 0x10
mov ecx, eax
mov dword [esp + 0x40], edx
add eax, eax
lea ebx, [eax + eax*4]
mov eax, ecx
mov edx, 0xcccccccd
mul edx
mov dword [esp + 0x58], edi
mov edi, esi
sub edi, ebx
imul ecx, ecx, 0xcccccccc
add ecx, edx
imul edx, dword [esp + 0x40], 0xcccccccd
add edx, ecx
add eax, 0x33333333
adc edx, 0x33333333
mov ecx, edx
shrd ecx, eax, 1
shld edx, eax, 0x1f
cmp edx, 0x9999999a
sbb ecx, 0x19999999
mov eax, edi
mov ecx, 0
cmovb eax, ecx
cmp edi, 4
mov edi, dword [esp + 0x58]
cmovae eax, ecx
movzx ecx, byte [eax + eax + 0x52a7a8]
mov edx, dword [esp + 0x10]
mov byte [edx - 1], cl
mov ecx, dword [esp + 0x38]
movzx eax, byte [eax + eax + str.thstndrd]
mov byte [edx - 2], al
lea ebx, [edx - 2]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x74]
add eax, eax
movzx ebx, byte [eax + eax*2 + 0x52a71e]
mov byte [esp + 0x50], bl
movzx eax, byte [eax + eax*2 + 0x52a721]
mov dword [esp + 0x30], eax
add edi, ecx
mov ebx, dword [esp + 0x28]
mov ecx, ebx
not ecx
mov dword [esp + 0x58], edi
add ecx, edi
nop word cs:[eax + eax]
mov dword [esp + 0x28], edx
mov dword [esp + 0x38], ecx
movzx edi, byte [esp + 0x50]
push 0
push edi
push edx
push esi
call fcn.0050f870
add esp, 0x10
mov dword [esp + 0x40], edx
mov ecx, eax
mov edx, eax
imul ecx, edi
mov eax, esi
sub esi, ecx
mov ecx, dword [esp + 0x30]
movzx ecx, byte [ecx + esi + str.0123456789ABCDEF0123456789abcdef]
mov byte [ebx - 1], cl
mov ecx, dword [esp + 0x38]
dec ebx
inc ecx
cmp eax, edi
sbb dword [esp + 0x28], 0
mov esi, edx
mov edx, dword [esp + 0x40]
jae 0x427400
mov edx, dword [esp + 0x14]
mov eax, edx
sub eax, ecx
jle 0x427471
mov ecx, edx
not ecx
add ecx, dword [esp + 0x58]
push eax
push 0x30
mov ebx, ecx
push ecx
mov esi, edx
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov ecx, esi
cmp byte [esp + 0x54], 0
movdqa xmm5, xmmword [0x526550]
movdqa xmm6, xmmword [0x526560]
movdqa xmm7, xmmword [0x526570]
je 0x4274f3
mov edi, ecx
dec ecx
mov eax, ecx
mov edx, 0x55555556
imul edx
mov esi, edx
shr esi, 0x1f
add esi, edx
sub ebx, esi
cmp edi, 4
movsd xmm4, qword [0x526580]
jl 0x427501
mov eax, ecx
mov edx, 0xaaaaaaab
mul edx
shr edx, 1
lea eax, [edx + edx*2]
neg eax
add ecx, eax
inc ecx
xor eax, eax
mov edi, dword [esp + 0x18]
jmp 0x4274d5
inc eax
test esi, esi
jle 0x427505
lea edx, [eax + esi]
movzx edx, byte [ebx + edx]
mov byte [ebx + eax], dl
dec ecx
jne 0x4274d0
mov ecx, dword [esp + 0x54]
mov byte [ebx + eax + 1], cl
inc eax
dec esi
mov ecx, 3
jmp 0x4274d0
mov edi, dword [esp + 0x18]
movsd xmm4, qword [0x526580]
jmp 0x427505
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x48]
test al, al
mov esi, dword [esp + 0x1c]
je 0x427515
mov byte [ebx - 1], al
dec ebx
cmp byte [esp + 0x4c], 0
je 0x42755c
mov eax, 0x77f2ff
mov ecx, dword [esp + 0x74]
bt eax, ecx
jb 0x42755c
mov eax, dword [esp + 0x78]
movzx eax, byte [eax + eax + 0x52a722]
movzx ecx, byte [eax + 0x52a7d1]
lea eax, [eax + 0x52a7d2]
nop word cs:[eax + eax]
mov byte [ebx - 1], cl
dec ebx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x427550
mov ecx, dword [esp + 0x10]
sub ecx, ebx
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
jmp 0x427985
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
xor eax, eax
mov edx, dword [esp + 0x18]
cmp ecx, dword [edx]
jb 0x42758c
mov ecx, edi
mov edx, esi
push eax
call fcn.00428370
add esp, 4
mov eax, dword [edi]
movsd xmm4, qword [0x526580]
movdqa xmm5, xmmword [0x526550]
movdqa xmm6, xmmword [0x526560]
movdqa xmm7, xmmword [0x526570]
jmp 0x4275bb
mov ebx, dword [ebx + 0xc]
test ebx, ebx
je 0x427659
test byte [ebx + 4], 3
jne 0x4275b0
mov ecx, dword [ebx + 0x24]
test ecx, ecx
jle 0x4275b0
mov dword [eax + 0x44], ecx
jmp 0x427659
mov ecx, edi
mov edx, dword [esp + 0x24]
push eax
call fcn.00428370
add esp, 4
mov esi, dword [edi]
test esi, esi
movsd xmm4, qword [0x526580]
movdqa xmm5, xmmword [0x526550]
movdqa xmm6, xmmword [0x526560]
movdqa xmm7, xmmword [0x526570]
je 0x427659
cmp dword [esi + 0x44], 0xfffffffe
jne 0x427659
mov eax, dword [esi + 0x108]
test eax, eax
je 0x427659
mov edi, dword [eax + 0xe8]
test edi, edi
je 0x427659
mov ebx, dword [ebx]
cmp edi, ebx
ja 0x427659
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
movdqa xmm7, xmmword [0x526570]
movdqa xmm6, xmmword [0x526560]
movdqa xmm5, xmmword [0x526550]
movsd xmm4, qword [0x526580]
add esp, 4
add eax, edi
cmp eax, ebx
jbe 0x427659
sub ebx, edi
mov dword [esi + 0x44], ebx
add dword [esp + 0x34], 4
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x20], 0
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x28]
jmp 0x427985
mov eax, dword [ebx + 0x14]
test byte [eax + 5], 8
mov eax, dword [eax + 0x10]
jne 0x427c50
push eax
push str._subquery__u_
jmp 0x427c56
shr ecx, 0x12
and cl, 7
or cl, 0xf0
mov byte [esp + 0xc0], cl
mov ecx, eax
shr ecx, 0xc
and cl, 0x3f
or cl, 0x80
mov byte [esp + 0xc1], cl
mov ecx, eax
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [esp + 0xc2], cl
and al, 0x3f
or al, 0x80
mov byte [esp + 0xc3], al
mov dword [esp + 0x10], 4
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x20], 0
mov al, 1
mov dword [esp + 0x38], eax
cmp edx, 2
jl 0x427727
mov eax, dword [esp + 0x24]
sub eax, edx
inc eax
cmp eax, 2
jl 0x42776b
test cl, cl
mov ebx, dword [esp + 0x10]
jne 0x42776f
dec eax
mov edx, eax
xor eax, eax
mov ecx, dword [esi]
add ecx, edx
setb al
mov edi, dword [esp + 0x18]
cmp ecx, dword [edi]
sbb eax, 0
jae 0x427739
mov eax, edx
jmp 0x427749
lea ebx, [esp + 0xc0]
mov eax, dword [esp + 0x24]
mov edx, ecx
jmp 0x4277ef
mov ecx, dword [ebp + 8]
call fcn.004280d0
test eax, eax
jle 0x427c45
inc eax
mov ebx, dword [esp + 0x44]
mov edi, eax
mov eax, dword [ebx]
mov ecx, dword [esi]
lea edx, [ecx + 1]
mov dword [esi], edx
mov byte [eax + ecx], 0x20
mov eax, edi
dec eax
cmp eax, 1
ja 0x42774e
xor eax, eax
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x24], eax
inc edx
jmp 0x4277b8
mov dword [esi], ecx
mov ecx, dword [esp + 0x44]
add eax, dword [ecx]
push ebx
lea ecx, [esp + 0xc4]
push ecx
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov edx, edi
dec edx
cmp edx, 2
movsd xmm4, qword [0x526580]
movdqa xmm5, xmmword [0x526550]
movdqa xmm6, xmmword [0x526560]
movdqa xmm7, xmmword [0x526570]
jle 0x4277dc
mov edi, edx
mov eax, dword [esi]
lea ecx, [eax + ebx]
mov edx, dword [esp + 0x18]
cmp ecx, dword [edx]
jb 0x427776
mov ecx, dword [ebp + 8]
lea edx, [esp + 0xc0]
push ebx
call fcn.00428370
add esp, 4
jmp 0x427790
lea ebx, [esp + 0xc0]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
cmp byte [esp + 0x38], 0
je 0x427981
test eax, eax
jle 0x427981
mov ecx, dword [esp + 0x10]
test ecx, ecx
jle 0x427985
cmp ecx, 8
jae 0x42781a
mov edi, ecx
jmp 0x4278c8
mov edi, ecx
and edi, 0xfffffff8
mov edx, ecx
and edx, 7
mov dword [esp + 0x24], edx
movd xmm0, eax
mov dword [esp + 0x28], ebx
lea edx, [ebx + ecx]
add edx, 0xfffffffc
mov esi, edi
neg esi
pxor xmm1, xmm1
xor ebx, ebx
movd xmm3, dword [edx + ebx]
movd xmm2, dword [edx + ebx - 4]
pand xmm3, xmm5
punpcklbw xmm3, xmm3
pand xmm2, xmm5
punpcklbw xmm2, xmm2
pshufd xmm3, xmm3, 0xc4
pshuflw xmm3, xmm3, 0xe7
pshufhw xmm3, xmm3, 0xc5
pcmpeqb xmm3, xmm6
pand xmm3, xmm7
paddd xmm0, xmm3
pshufd xmm2, xmm2, 0xc4
pshuflw xmm2, xmm2, 0xe7
pshufhw xmm2, xmm2, 0xc5
pcmpeqb xmm2, xmm6
pand xmm2, xmm7
paddd xmm1, xmm2
add ebx, 0xfffffff8
cmp esi, ebx
jne 0x427840
paddd xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd eax, xmm1
cmp dword [esp + 0x10], edi
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
je 0x427979
mov ecx, eax
movzx edx, byte [ebx + edi - 1]
and dl, 0xc0
xor eax, eax
cmp dl, 0x80
sete al
add eax, ecx
cmp edi, 2
jb 0x427979
movzx ecx, byte [ebx + edi - 2]
and cl, 0xc0
xor edx, edx
cmp cl, 0x80
sete dl
add eax, edx
lea ecx, [edi - 1]
cmp ecx, 2
jb 0x427979
movzx ecx, byte [ebx + edi - 3]
and cl, 0xc0
xor edx, edx
cmp cl, 0x80
sete dl
add eax, edx
lea ecx, [edi - 2]
cmp ecx, 2
jb 0x427979
movzx ecx, byte [ebx + edi - 4]
and cl, 0xc0
xor edx, edx
cmp cl, 0x80
sete dl
add eax, edx
lea ecx, [edi - 3]
cmp ecx, 2
jb 0x427979
movzx ecx, byte [ebx + edi - 5]
and cl, 0xc0
xor edx, edx
cmp cl, 0x80
sete dl
add eax, edx
lea ecx, [edi - 4]
cmp ecx, 2
jb 0x427979
movzx ecx, byte [edi + ebx - 6]
and cl, 0xc0
xor edx, edx
cmp cl, 0x80
sete dl
add eax, edx
lea ecx, [edi - 5]
cmp ecx, 2
jb 0x427979
movzx edx, byte [edi + ebx - 7]
and dl, 0xc0
xor ecx, ecx
cmp dl, 0x80
sete cl
add eax, ecx
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x28], ebx
sub eax, ecx
mov ebx, ecx
jle 0x4279be
mov edi, eax
mov eax, dword [esi]
test dl, dl
je 0x4279e1
lea ecx, [eax + ebx]
mov edx, dword [esp + 0x18]
cmp ecx, dword [edx]
jae 0x427a08
test ebx, ebx
je 0x427a18
mov dword [esi], ecx
mov ecx, dword [esp + 0x44]
add eax, dword [ecx]
push ebx
push dword [esp + 0x2c]
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
jmp 0x427a18
mov eax, dword [esi]
lea ecx, [eax + ebx]
cmp ecx, dword [edi]
jae 0x427aac
test ebx, ebx
mov edx, dword [esp + 0x44]
je 0x427bc0
mov dword [esi], ecx
add eax, dword [edx]
push ebx
jmp 0x427b55
mov dword [esp + 0x10], ebx
xor ecx, ecx
mov edx, edi
add eax, edi
setb cl
mov edi, dword [esp + 0x18]
cmp eax, dword [edi]
sbb ecx, 0
jae 0x427ae1
mov eax, edx
mov ebx, dword [esp + 0x44]
jmp 0x427af1
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x28]
push ebx
call fcn.00428370
add esp, 4
xor eax, eax
mov ecx, dword [esi]
mov edx, edi
add ecx, edi
setb al
mov edi, dword [esp + 0x18]
cmp ecx, dword [edi]
sbb eax, 0
jae 0x427a56
movsd xmm4, qword [0x526580]
movdqa xmm5, xmmword [0x526550]
movdqa xmm6, xmmword [0x526560]
movdqa xmm7, xmmword [0x526570]
mov eax, edx
mov ebx, dword [esp + 0x44]
jmp 0x427a8a
mov ecx, dword [ebp + 8]
call fcn.004280d0
test eax, eax
movsd xmm4, qword [0x526580]
movdqa xmm5, xmmword [0x526550]
movdqa xmm6, xmmword [0x526560]
movdqa xmm7, xmmword [0x526570]
mov ebx, dword [esp + 0x44]
jle 0x427bc0
inc eax
nop dword [eax + eax]
mov edi, eax
mov eax, dword [ebx]
mov ecx, dword [esi]
lea edx, [ecx + 1]
mov dword [esi], edx
mov byte [eax + ecx], 0x20
mov eax, edi
dec eax
cmp eax, 1
ja 0x427a90
jmp 0x427bc0
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x28]
push ebx
call fcn.00428370
movdqa xmm7, xmmword [0x526570]
movdqa xmm6, xmmword [0x526560]
movdqa xmm5, xmmword [0x526550]
movsd xmm4, qword [0x526580]
add esp, 4
jmp 0x427bc0
mov ecx, dword [ebp + 8]
call fcn.004280d0
test eax, eax
mov ebx, dword [esp + 0x44]
jle 0x427b17
inc eax
nop word cs:[eax + eax]
mov edi, eax
mov eax, dword [ebx]
mov ecx, dword [esi]
lea edx, [ecx + 1]
mov dword [esi], edx
mov byte [eax + ecx], 0x20
mov eax, edi
dec eax
cmp eax, 1
ja 0x427b00
mov eax, dword [esi]
mov edi, dword [esp + 0x10]
lea ecx, [eax + edi]
mov edx, dword [esp + 0x18]
cmp ecx, dword [edx]
jae 0x427b84
test edi, edi
movsd xmm4, qword [0x526580]
movdqa xmm5, xmmword [0x526550]
movdqa xmm6, xmmword [0x526560]
movdqa xmm7, xmmword [0x526570]
mov edx, dword [esp + 0x44]
je 0x427bc0
mov dword [esi], ecx
add eax, dword [edx]
push edi
push dword [esp + 0x2c]
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
movdqa xmm7, xmmword [0x526570]
movdqa xmm6, xmmword [0x526560]
movdqa xmm5, xmmword [0x526550]
movsd xmm4, qword [0x526580]
add esp, 0xc
jmp 0x427bc0
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x28]
push edi
call fcn.00428370
add esp, 4
movsd xmm4, qword [0x526580]
movdqa xmm5, xmmword [0x526550]
movdqa xmm6, xmmword [0x526560]
movdqa xmm7, xmmword [0x526570]
nop word cs:[eax + eax]
mov edx, dword [esp + 0x20]
test edx, edx
je 0x427bf2
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
call fcn.0043f4f0
movdqa xmm7, xmmword [0x526570]
movdqa xmm6, xmmword [0x526560]
movdqa xmm5, xmmword [0x526550]
movsd xmm4, qword [0x526580]
mov ecx, dword [esp + 0x8c]
inc ecx
mov edx, dword [esp + 0x28]
jmp 0x425305
xor edi, edi
xor edx, edx
mov ecx, dword [esp + 0x48]
jmp 0x42721b
xor ecx, ecx
mov eax, dword [esp + 0x24]
xor esi, esi
mov dword [esp + 0x28], 0
mov dword [esp + 0x4c], 0
cmp byte [esp + 0x50], 0
jne 0x427254
jmp 0x42725f
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
jmp 0x4276e5
xor eax, eax
mov edx, dword [esp + 0x14]
jmp 0x42776f
push eax
push str._join__u_
push dword [ebp + 8]
call fcn.00428090
add esp, 0xc
jmp 0x426452
mov dword [eax + 4], ebx
mov ecx, dword [eax]
test ecx, ecx
mov edi, dword [esp + 0x18]
je 0x427c94
cmp dword [ecx + 0x164], ebx
jbe 0x427c94
mov eax, 0x80
cmp dword [ecx + 0x15c], ebx
jbe 0x427c9e
cmp dword [ecx + 0x160], ebx
jbe 0x427d66
push ebx
call dword [0x53c234]
add esp, 4
mov ecx, dword [ebp + 8]
mov dword [ecx + 8], eax
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
and eax, 0x7fffffff
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x10], eax
or byte [ecx + 0x15], 4
jmp 0x42715b
mov dword [esp + 0x20], ebx
mov eax, dword [esp + 0x24]
test edx, edx
jns 0x426350
jmp 0x426b7c
mov edi, dword [esp + 0x24]
sub edi, edx
lea edx, [edi + 1]
add esi, edi
sub esi, dword [esp + 0x24]
sub esi, ebx
nop word [eax + eax]
movzx ecx, byte [ebx + esi]
mov byte [ebx + edx - 1], cl
dec edx
dec esi
cmp edx, eax
jg 0x427cf0
mov edi, dword [esp + 0x24]
cmp edi, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
jne 0x427d1d
mov ecx, edi
mov edx, dword [esp + 0xc]
mov eax, edi
mov edi, dword [esp + 0x18]
jmp 0x427985
cmp byte [esp + 0x48], 1
mov ecx, ebx
sbb ecx, 0xffffffff
push eax
push 0x30
push ecx
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
movdqa xmm7, xmmword [0x526570]
movdqa xmm6, xmmword [0x526560]
movdqa xmm5, xmmword [0x526550]
movsd xmm4, qword [0x526580]
add esp, 0xc
mov ecx, edi
mov edx, dword [esp + 0x18]
mov eax, edi
mov edi, edx
mov edx, dword [esp + 0xc]
jmp 0x427985
movzx eax, word [ecx + 0x136]
jmp 0x427c9e
mov edx, dword [esp + 0x1c]
mov eax, dword [edx]
lea ecx, [eax + 1]
mov esi, dword [esp + 0x18]
cmp ecx, dword [esi]
jae 0x427d91
mov dword [edx], ecx
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx]
mov byte [ecx + eax], 0x25
jmp 0x427da3
mov ecx, dword [ebp + 8]
mov edx, 0x52a71b
push 1
call fcn.00428370
add esp, 4
fldz
fstp st(0)
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov byte [ebx + 0x14], 7
cmp dword [ebx + 0xc], 0
fldz
je case.default.0x425924
fstp st(0)
mov ebx, dword [ebp + 8]
movzx eax, byte [ebx + 0x15]
test al, 4
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x18]
jne 0x427ee8
jmp 0x427efe
mov byte [esi + 0x14], 7
cmp dword [esi + 0xc], 0
fldz
je case.default.0x425924
fstp st(0)
movzx eax, byte [esi + 0x15]
test al, 4
mov edi, dword [esp + 0x44]
je 0x427e09
mov edx, dword [edi]
test edx, edx
je 0x427e04
mov ecx, dword [esi]
call fcn.0043f4f0
movzx eax, byte [esi + 0x15]
and al, 0xfb
mov byte [esi + 0x15], al
mov eax, dword [esp + 0x18]
mov dword [eax], 0
mov eax, dword [esp + 0x1c]
mov dword [eax], 0
mov dword [edi], 0
jmp 0x427da3
mov byte [edi + 0x14], 0x12
test ebx, ebx
je 0x427e6c
movzx eax, byte [edi + 0x15]
test al, 4
mov esi, dword [esp + 0x44]
je 0x427e52
mov edx, dword [esi]
test edx, edx
je 0x427e4d
mov ecx, dword [edi]
call fcn.0043f4f0
movzx eax, byte [edi + 0x15]
and al, 0xfb
mov byte [edi + 0x15], al
mov eax, dword [esp + 0x18]
mov dword [eax], 0
mov eax, dword [esp + 0x1c]
mov dword [eax], 0
mov dword [esi], 0
mov eax, dword [edi]
jmp 0x427f5d
mov byte [esi + 0x14], 0x12
test eax, eax
mov edi, dword [esp + 0x44]
je 0x427eb7
movzx eax, byte [esi + 0x15]
test al, 4
je 0x427e9d
mov edx, dword [edi]
test edx, edx
je 0x427e98
mov ecx, dword [esi]
call fcn.0043f4f0
movzx eax, byte [esi + 0x15]
and al, 0xfb
mov byte [esi + 0x15], al
mov eax, dword [esp + 0x18]
mov dword [eax], 0
mov eax, dword [esp + 0x1c]
mov dword [eax], 0
mov dword [edi], 0
mov eax, dword [esi]
jmp 0x427f5d
fstp st(0)
mov eax, dword [ebp + 8]
mov byte [eax + 0x14], 7
cmp dword [eax + 0xc], 0
mov edi, dword [esp + 0x18]
fldz
je case.default.0x425924
fstp st(0)
mov ebx, dword [ebp + 8]
movzx eax, byte [ebx + 0x15]
test al, 4
mov esi, dword [esp + 0x44]
je 0x427efe
mov edx, dword [esi]
test edx, edx
je 0x427ef9
mov ecx, dword [ebx]
call fcn.0043f4f0
movzx eax, byte [ebx + 0x15]
and al, 0xfb
mov byte [ebx + 0x15], al
mov dword [edi], 0
mov eax, dword [esp + 0x1c]
mov dword [eax], 0
mov dword [esi], 0
jmp 0x427da3
fstp st(0)
mov byte [ebx + 0x14], 0x12
test ecx, ecx
mov esi, dword [esp + 0x44]
je 0x427f5b
movzx eax, byte [ebx + 0x15]
test al, 4
je 0x427f45
mov edx, dword [esi]
test edx, edx
je 0x427f40
mov ecx, dword [ebx]
call fcn.0043f4f0
movzx eax, byte [ebx + 0x15]
and al, 0xfb
mov byte [ebx + 0x15], al
mov dword [edi], 0
mov eax, dword [esp + 0x1c]
mov dword [eax], 0
mov dword [esi], 0
mov eax, dword [ebx]
test eax, eax
fldz
je case.default.0x425924
fstp st(0)
mov eax, dword [eax + 0x108]
test eax, eax
fldz
je case.default.0x425924
fstp st(0)
mov dword [eax + 0xc], 0x12
inc dword [eax + 0x24]
jmp 0x427da3