Function at 0x421ed8
Capabilities:
Access peb ldr_data
Authenticate hmac
Check os version
Encode data using xor
Get ntdll base address
Get number of processors
Hash data using fnv
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x2a0
mov esi, esp
mov ecx, dword [ebp + 8]
sub esp, 0xc
mov al, byte [esi + 0xc0]
mov byte [esp + 8], al
mov dword [esp + 4], ecx
lea eax, [esi + 0x284]
mov dword [esp], eax
call fcn.00452893
add esp, 0xc
mov dword [esi + 0x2c], esp
xor eax, eax
mov dword [esi + 0x180], eax
mov dword [esi + 0x190], eax
mov ecx, 0xf
mov dword [esi + 0x194], ecx
mov dword [esi + 0x78], eax
mov dword [esi + 0x88], eax
mov dword [esi + 0x8c], ecx
mov byte [esi + 0x180], al
mov byte [esi + 0x78], al
sub esp, 0x20
mov eax, esp
mov dword [esi + 0x38], eax
add eax, 8
mov dword [esi + 0x34], eax
mov dword [esi + 0x40], 0x7f79724e
mov dword [esi + 0x44], 0xf877f73
pxor xmm0, xmm0
movdqu xmmword [esi + 0x48], xmm0
mov dword [esi + 0x18], eax
call fcn.0046d640
mov eax, dword [eax]
mov dword [esi + 0xc], eax
call fcn.0046d646
mov eax, dword [eax]
mov dword [esi + 0x10], eax
xor edi, edi
mov eax, dword [esi + 0x18]
mov ecx, 0xda6d2d
cmp dword [esi + 0xc], edi
ja 0x422be7
mov dword [esi + 0x18], eax
movzx ecx, byte [esi + edi + 0x40]
lea eax, [edi - 0x6db8d17f]
mov dword [esi + 0x14], edi
lea ebx, [edi + ecx]
add ebx, 0x92472e81
and eax, ecx
add eax, eax
sub ebx, eax
lea eax, [edi - 0x292f6b]
lea edx, [edi + ecx]
add edx, 0xffd6d095
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x1c], edx
lea eax, [edi + 0x4817e309]
and eax, ecx
add eax, eax
lea edx, [edi + ecx]
add edx, 0x4817e309
sub edx, eax
lea eax, [edi + 0x23898607]
and eax, ecx
add eax, eax
mov dword [esi + 0x20], ecx
add ecx, edi
add ecx, 0x23898607
sub ecx, eax
add bl, 0x79
mov eax, dword [esi + 0x1c]
add al, 0xed
mov dword [esi + 0x1c], eax
add dl, 0xc1
mov dword [esi + 0x30], edx
add cl, 0xcf
mov dword [esi + 0x24], ecx
movdqa xmm2, xmmword [0x4734a0]
mov dword [esi + 0x28], ebx
mov eax, dword [esi + 0x10]
inc eax
mov ecx, ebx
cmp dword [esi + 0xc], eax
jb 0x422076
je 0x4225d3
mov eax, dword [esi + 0x10]
add eax, 2
cmp dword [esi + 0xc], eax
je 0x4225f7
mov eax, dword [esi + 0x10]
add eax, 4
cmp dword [esi + 0xc], eax
je 0x42261e
mov eax, dword [esi + 0x10]
add eax, 6
cmp dword [esi + 0xc], eax
je 0x422663
mov eax, dword [esi + 0x10]
add eax, 3
cmp dword [esi + 0xc], eax
je 0x4226a9
mov eax, dword [esi + 0x10]
add eax, 5
mov ecx, dword [esi + 0x18]
cmp dword [esi + 0xc], eax
je 0x4226f1
mov eax, dword [esi + 0x14]
cmp dword [esi + 0x10], eax
ja 0x422bde
mov eax, dword [esi + 0x10]
lea edx, [eax + 0x10]
mov eax, dword [esi + 0x1c]
cmp dword [esi + 0xc], edx
jb 0x4220db
mov eax, dword [esi + 0x10]
inc eax
cmp dword [esi + 0xc], eax
je 0x422641
mov eax, dword [esi + 0x10]
add eax, 2
cmp dword [esi + 0xc], eax
je 0x422686
mov eax, dword [esi + 0x10]
add eax, 3
cmp dword [esi + 0xc], eax
je 0x4226cc
mov eax, dword [esi + 0x10]
add eax, 5
cmp dword [esi + 0xc], eax
je 0x422713
mov eax, dword [esi + 0x10]
lea edx, [eax + 8]
mov eax, ecx
cmp dword [esi + 0xc], edx
je 0x422736
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
add ecx, edx
cmp ecx, dword [esi + 0x14]
jbe 0x422776
mov ecx, dword [esi + 0x10]
lea eax, [ecx + 0x7a]
cmp dword [esi + 0xc], eax
je 0x4222f7
lea edi, [ecx + 0x10]
mov edx, dword [esi + 0xc]
mov eax, edi
mov dword [esi + 0x10], edi
cmp edx, edi
sete al
movd xmm0, ecx
pshufd xmm1, xmm0, 0
paddd xmm1, xmm2
movd xmm0, edx
pshufd xmm0, xmm0, 0
pcmpeqd xmm0, xmm1
lea edx, [ecx + 0x1000]
cmp dword [esi + 0xc], edx
je 0x422320
pextrw edx, xmm0, 6
test dl, 1
jne 0x422346
pextrw edx, xmm0, 4
test dl, 1
jne 0x42236c
pextrw edx, xmm0, 2
test dl, 1
jne 0x422390
movd edx, xmm0
test dl, 1
jne 0x4223b6
test al, 1
jne 0x4223d9
lea edi, [ecx + 0xa]
lea eax, [ecx + 0x18]
mov ebx, edi
mov dword [esi + 0xc], edi
cmp edi, eax
jb 0x422bb8
lea eax, [ecx + 0x15]
cmp dword [esi + 0xc], eax
jb 0x422403
lea eax, [ecx + 0x13]
cmp dword [esi + 0xc], eax
jb 0x4222dd
lea eax, [ecx + 0x11]
cmp dword [esi + 0xc], eax
jb 0x4222d3
lea eax, [ecx + 0x6a]
cmp dword [esi + 0xc], eax
jb 0x4222bd
lea eax, [ecx + 0x8a]
cmp dword [esi + 0xc], eax
jb 0x422429
lea eax, [ecx + 0x1010]
cmp dword [esi + 0xc], eax
jb 0x422450
lea eax, [ecx + 0x3f8]
cmp dword [esi + 0xc], eax
jb 0x422283
lea ebx, [ecx + 0x410]
lea edx, [ecx + 0x490]
lea eax, [ecx + 0x690]
mov edi, ebx
mov dword [esi + 0xc], ebx
cmp ebx, eax
ja 0x422480
lea eax, [ecx + 0x4f4]
cmp dword [esi + 0xc], eax
ja 0x4224aa
lea eax, [ecx + 0x4d0]
cmp dword [esi + 0xc], eax
mov ebx, edx
ja 0x4224d1
lea eax, [ecx + 0x4b0]
cmp dword [esi + 0xc], eax
ja 0x4224fd
lea eax, [ecx + 0x49a]
cmp dword [esi + 0xc], eax
ja 0x42251f
lea eax, [ecx + 0x498]
cmp dword [esi + 0xc], eax
ja 0x422544
lea edi, [ecx + 0x495]
mov eax, edi
mov dword [esi + 0x10], edi
cmp dword [esi + 0xc], edi
ja 0x4225a7
lea eax, [ecx + 0x493]
add ecx, 0x494
mov edx, dword [esi + 0xc]
cmp edx, eax
cmovbe edx, ecx
mov dword [esi + 0xc], edx
mov eax, dword [esi + 0x10]
cmova eax, ebx
mov dword [esi + 0x10], eax
mov ecx, dword [esi + 0x10]
lea edx, [ecx + 0x7a]
lea edi, [ecx + 0x10]
mov ebx, dword [esi + 0xc]
mov eax, edi
mov dword [esi + 0x10], edi
cmp ebx, edi
sete al
movd xmm0, ecx
pshufd xmm1, xmm0, 0
paddd xmm1, xmm2
movd xmm0, ebx
pshufd xmm0, xmm0, 0
pcmpeqd xmm0, xmm1
cmp ebx, edx
jne 0x422125
jmp 0x4222f7
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
add eax, ecx
cmp eax, dword [esi + 0x14]
ja 0x4220ef
jmp 0x42275b
mov eax, dword [esi + 0x30]
mov ecx, eax
jmp 0x422076
mov eax, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x14]
cmp dword [esi + 0xc], eax
mov ebx, dword [esi + 0x28]
jbe 0x422017
jmp 0x426ed0
mov edi, dword [esi + 0x14]
lea eax, [edi - 0x256a0492]
mov ebx, dword [esi + 0x20]
lea edx, [edi + ebx]
add edx, 0xda95fb6e
and eax, ebx
add eax, eax
sub edx, eax
add dl, 0xfe
mov dword [esi + 0x18], edx
mov dword [esi + 0x10], ecx
jmp 0x4228ed
mov ebx, dword [esi + 0x14]
lea eax, [ebx - 0xdba790]
mov edi, dword [esi + 0x20]
and eax, edi
add edi, ebx
add edi, 0xff245870
add eax, eax
sub edi, eax
mov eax, edi
add al, 0xf0
mov dword [esi + 0x10], ecx
jmp 0x42290d
mov ebx, dword [esi + 0x14]
lea eax, [ebx + 0x23b2b572]
mov edi, dword [esi + 0x20]
and eax, edi
add edi, ebx
add edi, 0x23b2b572
add eax, eax
sub edi, eax
mov eax, edi
add al, 0xe2
mov dword [esi + 0x10], ecx
jmp 0x422910
mov ebx, dword [esi + 0x14]
lea eax, [ebx + 0x48411274]
mov edi, dword [esi + 0x20]
add ebx, edi
add ebx, 0x48411274
and eax, edi
add eax, eax
sub ebx, eax
mov eax, edi
add bl, 0xd4
jmp 0x422567
mov ebx, dword [esi + 0x14]
lea eax, [ebx + 0x6ccf6f76]
mov edi, dword [esi + 0x20]
and eax, edi
add edi, ebx
add edi, 0x6ccf6f76
add eax, eax
sub edi, eax
mov eax, edi
add al, 0xc6
mov dword [esi + 0x10], ecx
jmp 0x42258a
mov edi, dword [esi + 0x14]
lea eax, [edi - 0x6ea23388]
mov ebx, dword [esi + 0x20]
add edi, ebx
add edi, 0x915dcc78
and eax, ebx
add eax, eax
sub edi, eax
mov eax, edi
add al, 0xb8
jmp 0x422590
mov edx, dword [esi + 0x14]
lea eax, [edx - 0xf71c82]
mov edi, dword [esi + 0x20]
add edx, edi
add edx, 0xff08e37e
and eax, edi
add eax, eax
sub edx, eax
mov eax, edi
add dl, 0x8e
mov dword [esi + 0x18], edx
mov dword [esi + 0x10], ecx
jmp 0x422a00
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x14]
lea ecx, [edx + eax]
add ecx, 0xfefb2905
add edx, 0xfefb2905
and edx, eax
mov eax, ecx
add edx, edx
sub eax, edx
add al, 0xdd
xor edi, edi
jmp 0x421f83
mov ebx, dword [esi + 0x14]
lea eax, [ebx - 0x6ecb62f3]
mov ecx, dword [esi + 0x20]
mov edx, ebx
lea edi, [ebx + ecx]
add edi, 0x91349d0d
and eax, ecx
mov ecx, edi
add eax, eax
sub ecx, eax
add cl, 0xa5
jmp 0x42278b
mov ebx, dword [esi + 0x14]
lea eax, [ebx - 0x1204bed]
mov ecx, dword [esi + 0x20]
mov edx, ebx
lea edi, [ebx + ecx]
add edi, 0xfedfb413
and eax, ecx
mov ecx, edi
add eax, eax
sub ecx, eax
add cl, 0x7b
mov eax, dword [esi + 0x14]
mov byte [esi + eax + 0x40], cl
mov eax, ecx
jmp 0x422a09
mov ecx, dword [esi + 0x14]
lea eax, [ecx - 0x25bc6368]
mov edi, dword [esi + 0x20]
add ecx, edi
add ecx, 0xda439c98
and eax, edi
add eax, eax
sub ecx, eax
mov eax, edi
add cl, 0xd8
mov dword [esi + 0x18], ecx
mov dword [esi + 0x10], edx
jmp 0x422a00
mov ecx, dword [esi + 0x14]
lea eax, [ecx - 0x12e0666]
mov ebx, dword [esi + 0x20]
add ecx, ebx
add ecx, 0xfed1f99a
and eax, ebx
add eax, eax
sub ecx, eax
add cl, 0xca
mov dword [esi + 0x18], ecx
mov edi, edx
jmp 0x4227ed
mov ecx, dword [esi + 0x14]
lea eax, [ecx + 0x2360569c]
mov edi, dword [esi + 0x20]
add ecx, edi
add ecx, 0x2360569c
and eax, edi
add eax, eax
sub ecx, eax
add cl, 0xbc
mov dword [esi + 0x18], ecx
mov eax, ebx
mov ebx, edi
mov dword [esi + 0x10], eax
jmp 0x4227be
mov edx, dword [esi + 0x14]
lea eax, [edx + 0x47eeb39e]
mov ecx, dword [esi + 0x20]
and eax, ecx
add ecx, edx
add ecx, 0x47eeb39e
add eax, eax
sub ecx, eax
mov eax, ecx
add al, 0xae
mov ecx, ebx
jmp 0x422590
mov edx, dword [esi + 0x14]
lea eax, [edx + 0x6c7d10a0]
mov ecx, dword [esi + 0x20]
and eax, ecx
add ecx, edx
add ecx, 0x6c7d10a0
add eax, eax
sub ecx, eax
mov eax, ecx
add al, 0xa0
mov ecx, ebx
mov dword [esi + 0x10], ebx
jmp 0x42258a
mov edx, dword [esi + 0x14]
lea eax, [edx - 0x6ef4925e]
mov ecx, dword [esi + 0x20]
add edx, ecx
add edx, 0x910b6da2
and eax, ecx
add eax, eax
sub edx, eax
mov eax, ecx
add dl, 0x92
mov ecx, ebx
mov ebx, edx
mov dword [esi + 0x10], ecx
mov edx, dword [esi + 0x14]
lea ecx, [edx - 0xcded17]
and ecx, eax
add eax, edx
add eax, 0xff3212e9
add ecx, ecx
sub eax, ecx
add al, bl
add al, 0xa1
mov byte [esi + edx + 0x40], al
mov eax, ebx
mov ecx, dword [esi + 0x10]
add dword [esi + 0xc], ecx
mov dword [esi + 0x18], eax
movzx eax, byte [esi + 0x18]
not eax
add dword [esi + 0x14], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x10], ecx
jmp 0x422a09
mov ecx, dword [esi + 0x14]
lea eax, [ecx - 0x1497b58]
mov edx, dword [esi + 0x20]
add ecx, edx
add ecx, 0xfeb684a8
and eax, edx
add eax, eax
sub ecx, eax
add cl, 0x68
mov dword [esi + 0x18], ecx
mov eax, ebx
mov ebx, edx
mov dword [esi + 0x10], eax
jmp 0x4228ed
mov ecx, dword [esi + 0x14]
lea eax, [ecx - 0x492a747d]
mov edx, dword [esi + 0x20]
add ecx, edx
add ecx, 0xb6d58b83
and eax, edx
add eax, eax
sub ecx, eax
mov eax, edx
add cl, 0x6b
jmp 0x4229fd
mov ecx, dword [esi + 0x14]
lea eax, [ecx - 0xdba79]
mov edx, dword [esi + 0x20]
add ecx, edx
add ecx, 0xfff24587
and eax, edx
add eax, eax
sub ecx, eax
mov ebx, edx
add cl, 0x4f
mov dword [esi + 0x18], ecx
jmp 0x4227be
mov ecx, dword [esi + 0x14]
lea eax, [ecx + 0x490eff8b]
mov edx, dword [esi + 0x20]
add ecx, edx
add ecx, 0x490eff8b
and eax, edx
add eax, eax
sub ecx, eax
mov eax, ecx
add al, 0x33
jmp 0x42258a
mov ecx, dword [esi + 0x14]
lea eax, [ecx + 0x24652d97]
mov ebx, dword [esi + 0x20]
add ecx, ebx
add ecx, 0x24652d97
and eax, ebx
add eax, eax
sub ecx, eax
add cl, 0xdf
jmp 0x4228ea
mov ecx, dword [esi + 0x14]
lea eax, [ecx - 0x6dd44671]
mov edx, dword [esi + 0x20]
add ecx, edx
add ecx, 0x922bb98f
and eax, edx
add eax, eax
sub ecx, eax
mov eax, ecx
add al, 0x17
jmp 0x422910
mov ecx, dword [esi + 0x14]
lea eax, [ecx + 0x6d81e79b]
mov edx, dword [esi + 0x20]
add ecx, edx
add ecx, 0x6d81e79b
and eax, edx
add eax, eax
sub ecx, eax
mov eax, ecx
add al, 0xc3
jmp 0x422910
mov ecx, dword [esi + 0x14]
lea eax, [ecx - 0x4945e96f]
mov edx, dword [esi + 0x20]
add ecx, edx
add ecx, 0xb6ba1691
and eax, edx
add eax, eax
sub ecx, eax
mov eax, ecx
add al, 9
jmp 0x42290d
mov edx, dword [esi + 0x14]
lea eax, [edx - 0x6defbb63]
mov ecx, dword [esi + 0x20]
lea ebx, [edx + ecx]
add ebx, 0x9210449d
and eax, ecx
add eax, eax
sub ebx, eax
mov eax, ecx
add bl, 0xb5
jmp 0x42256a
mov ecx, dword [esi + 0x14]
lea eax, [ecx - 0x24b78c6d]
mov ebx, dword [esi + 0x20]
add ecx, ebx
add ecx, 0xdb487393
and eax, ebx
add eax, eax
sub ecx, eax
add cl, 0xfb
jmp 0x4228ea
mov ecx, dword [esi + 0x14]
lea eax, [ecx - 0x49615e61]
mov edx, dword [esi + 0x20]
add ecx, edx
add ecx, 0xb69ea19f
and eax, edx
add eax, eax
sub ecx, eax
mov eax, ecx
add al, 0xa7
jmp 0x42258a
mov edx, dword [esi + 0x14]
lea eax, [edx + 0x48d815a7]
mov edi, dword [esi + 0x20]
lea ecx, [edx + edi]
add ecx, 0x48d815a7
and eax, edi
add eax, eax
sub ecx, eax
mov eax, edi
add cl, 0x6f
jmp 0x4229fd
mov eax, dword [esi + 0x14]
lea ecx, [eax + 0x6ca6400b]
mov edx, dword [esi + 0x20]
add eax, edx
add eax, 0x6ca6400b
and ecx, edx
add ecx, ecx
sub eax, ecx
add al, 0xb3
mov ecx, dword [esi + 0x10]
add ecx, 0x400
cmp dword [esi + 0xc], ecx
jae 0x422918
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 0x10]
add eax, edi
cmp eax, 6
jne 0x42282a
mov eax, dword [esi + 0x14]
lea ecx, [eax - 0x6e86be96]
mov edx, dword [esi + 0x20]
add eax, edx
add eax, 0x9179416a
and ecx, edx
add ecx, ecx
sub eax, ecx
mov ebx, edx
sub al, bl
add al, 0x1a
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x14]
lea ecx, [edx + 0x23c06feb]
lea eax, [edx + ebx]
add eax, 0x23c06feb
and ecx, ebx
add ecx, ecx
sub eax, ecx
add al, 0x93
mov byte [esi + edx + 0x40], al
movzx eax, al
sub edx, eax
mov eax, dword [esi + 0x10]
lea edi, [eax + 1]
not eax
add edx, eax
mov dword [esi + 0x14], edx
mov edx, dword [esi + 0x14]
lea eax, [edx - 0x49f86194]
and eax, ebx
lea ecx, [edx + ebx]
add ecx, 0xb6079e6c
add eax, eax
sub ecx, eax
add cl, 0xc
mov byte [esi + edx + 0x40], cl
mov eax, dword [esi + 0xc]
sub edx, eax
inc eax
mov dword [esi + 0xc], eax
movzx eax, byte [esi + edx + 0x3e]
add edx, 0xfffffffe
mov dword [esi + 0x14], edx
mov ecx, edi
mov dword [esi + 0x10], edi
jmp 0x422a00
mov eax, dword [esi + 0x10]
add eax, 8
cmp dword [esi + 0xc], eax
jbe 0x4228c0
mov edx, dword [esi + 0x14]
lea eax, [edx - 0x2509eb43]
mov ecx, dword [esi + 0x20]
lea edi, [edx + ecx]
add edi, 0xdaf614bd
and eax, ecx
mov ecx, edi
add eax, eax
sub ecx, eax
add cl, 0xd5
cmp dword [esi + 0xc], 0x7f
ja 0x422945
mov eax, dword [esi + 0x10]
add eax, 0x200
cmp dword [esi + 0xc], eax
jbe 0x4229d1
mov edx, dword [esi + 0x14]
lea eax, [edx - 0x25331aae]
mov ecx, dword [esi + 0x20]
lea edi, [edx + ecx]
add edi, 0xdacce552
and eax, ecx
mov ecx, edi
add eax, eax
sub ecx, eax
add cl, 0xc2
cmp dword [esi + 0x10], 0
je 0x422aed
mov edx, dword [esi + 0x14]
lea eax, [edx + 0x485c8766]
mov ebx, dword [esi + 0x20]
lea ecx, [edx + ebx]
add ecx, 0x485c8766
and eax, ebx
add eax, eax
sub ecx, eax
add cl, cl
add cl, 0x6c
jmp 0x4228ea
mov eax, dword [esi + 0x10]
inc eax
cmp dword [esi + 0xc], eax
jne 0x42296c
mov ecx, dword [esi + 0x14]
lea eax, [ecx - 0x7b8e41]
mov ebx, dword [esi + 0x20]
add ecx, ebx
add ecx, 0xff8471bf
and eax, ebx
add eax, eax
sub ecx, eax
add cl, 0xc7
mov dword [esi + 0x18], ecx
mov edx, dword [esi + 0x14]
lea ecx, [edx - 0x255c4a19]
lea eax, [edx + ebx]
add eax, 0xdaa3b5e7
and ecx, ebx
add ecx, ecx
sub eax, ecx
add al, 0xaf
mov byte [esi + edx + 0x40], al
mov eax, dword [esi + 0x18]
inc dword [esi + 0x10]
dec dword [esi + 0x14]
jmp 0x422a09
mov ecx, dword [esi + 0x10]
inc ecx
cmp dword [esi + 0xc], ecx
jne 0x42299e
mov ecx, dword [esi + 0x14]
lea eax, [ecx - 0x525ed6]
mov edx, dword [esi + 0x20]
add ecx, edx
add ecx, 0xffada12a
and eax, edx
add eax, eax
sub ecx, eax
mov eax, edx
add cl, 0xda
jmp 0x4229fd
mov edi, dword [esi + 0x14]
lea eax, [edi + 0x6ceae468]
mov ecx, dword [esi + 0x20]
lea ebx, [edi + ecx]
add ebx, 0x6ceae468
and eax, ecx
add eax, eax
sub ebx, eax
mov eax, ecx
add bl, al
add bl, 0x28
jmp 0x42256a
mov eax, dword [esi + 0x10]
add eax, 2
cmp dword [esi + 0xc], eax
jne 0x422a1d
mov ecx, dword [esi + 0x14]
lea eax, [ecx + 0x2412cec1]
mov edx, dword [esi + 0x20]
add ecx, edx
add ecx, 0x2412cec1
and eax, edx
add eax, eax
sub ecx, eax
mov eax, ecx
add al, 0xb9
jmp 0x42290d
mov ecx, dword [esi + 0x10]
add ecx, 3
cmp dword [esi + 0xc], ecx
jne 0x422a51
mov ecx, dword [esi + 0x14]
lea eax, [ecx + 0x48ca5b2e]
mov edx, dword [esi + 0x20]
add ecx, edx
add ecx, 0x48ca5b2e
and eax, edx
add eax, eax
sub ecx, eax
mov ebx, edx
add cl, 0xbe
jmp 0x422616
mov eax, dword [esi + 0x10]
inc eax
cmp dword [esi + 0xc], eax
jne 0x422a83
mov ecx, dword [esi + 0x14]
lea eax, [ecx - 0xa4bdac]
mov edx, dword [esi + 0x20]
add ecx, edx
add ecx, 0xff5b4254
and eax, edx
add eax, eax
sub ecx, eax
mov eax, edx
add cl, 0xb4
mov dword [esi + 0x18], ecx
add eax, dword [esi + 0x10]
add dword [esi + 0x14], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x14]
inc ecx
mov edi, ecx
cmp ecx, 0x18
jb 0x421f83
jmp 0x422be5
mov eax, dword [esi + 0x10]
add eax, 3
cmp dword [esi + 0xc], eax
jne 0x422ab2
mov edx, dword [esi + 0x14]
lea eax, [edx + 0x6d2f88c5]
mov ecx, dword [esi + 0x20]
lea ebx, [edx + ecx]
add ebx, 0x6d2f88c5
and eax, ecx
add eax, eax
sub ebx, eax
mov eax, ecx
add bl, 0x9d
jmp 0x42256a
mov ecx, dword [esi + 0x10]
add ecx, 6
cmp dword [esi + 0xc], ecx
jne 0x422ae6
mov ecx, dword [esi + 0x14]
lea eax, [ecx - 0x24fc30ca]
mov edx, dword [esi + 0x20]
add ecx, edx
add ecx, 0xdb03cf36
and eax, edx
add eax, eax
sub ecx, eax
mov eax, ecx
add al, 0x86
jmp 0x422910
mov eax, dword [esi + 0x10]
add eax, 3
cmp dword [esi + 0xc], eax
jne 0x422af9
mov ecx, dword [esi + 0x14]
lea eax, [ecx + 0x4877fc58]
mov edx, dword [esi + 0x20]
add ecx, edx
add ecx, 0x4877fc58
and eax, edx
add eax, eax
sub ecx, eax
mov ebx, edx
add cl, 0x98
jmp 0x422616
mov eax, dword [esi + 0x10]
add eax, 4
cmp dword [esi + 0xc], eax
jne 0x422859
mov edx, dword [esi + 0x14]
lea eax, [edx - 0x25256035]
mov edi, dword [esi + 0x20]
lea ecx, [edx + edi]
add ecx, 0xdada9fcb
and eax, edi
add eax, eax
sub ecx, eax
mov ebx, edi
add cl, 0x73
jmp 0x422616
mov ecx, eax
jmp 0x42278b
mov dword [esi + 0x10], 0
jmp 0x422472
mov eax, dword [esi + 0x10]
add eax, 4
cmp dword [esi + 0xc], eax
jne 0x422b27
mov ecx, dword [esi + 0x14]
lea eax, [ecx - 0x6e6b49a4]
mov edx, dword [esi + 0x20]
add ecx, edx
add ecx, 0x9194b65c
and eax, edx
add eax, eax
sub ecx, eax
mov eax, ecx
add al, 0x7c
jmp 0x42258a
mov eax, dword [esi + 0x10]
add eax, 5
cmp dword [esi + 0xc], eax
jne 0x422b57
mov edx, dword [esi + 0x14]
lea eax, [edx - 0x49dceca2]
mov ecx, dword [esi + 0x20]
lea ebx, [edx + ecx]
add ebx, 0xb623135e
and eax, ecx
add eax, eax
sub ebx, eax
mov eax, ecx
add bl, 0x6e
jmp 0x42256a
mov eax, dword [esi + 0x10]
add eax, 2
cmp dword [esi + 0xc], eax
jne 0x422b85
mov ecx, dword [esi + 0x14]
lea eax, [ecx - 0x254e8fa0]
mov edx, dword [esi + 0x20]
add ecx, edx
add ecx, 0xdab17060
and eax, edx
add eax, eax
sub ecx, eax
mov eax, ecx
add al, 0x60
jmp 0x422910
mov eax, dword [esi + 0x10]
add eax, 6
cmp dword [esi + 0xc], eax
jne 0x422894
mov edx, dword [esi + 0x14]
lea eax, [edx - 0xc0329e]
mov edi, dword [esi + 0x20]
lea ecx, [edx + edi]
add ecx, 0xff3fcd62
and eax, edi
add eax, eax
sub ecx, eax
mov eax, ecx
add al, 0x52
jmp 0x42290d
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x14]
lea ecx, [edx + eax]
add ecx, 0xda6ccc03
add edx, 0xda6ccc03
and edx, eax
add edx, edx
sub ecx, edx
add cl, 0xeb
mov dword [esi + 0x18], ecx
jmp 0x421f6a
mov ecx, 0x1533eac
jmp 0x422be7
xor ecx, ecx
lea edi, [esi + ecx]
add edi, 0x40
xor eax, eax
mov ebx, dword [esi + 0x38]
mov dword [ebx + 8], eax
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], 0xf
mov byte [ebx + 8], 0
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ecx, dword [esi + 0x34]
push eax
push edi
call fcn.00450e50
lea ecx, [esi + 0x1a0]
mov dword [ebx], ecx
lea eax, [esi + 0x284]
mov dword [ebx + 4], eax
mov ebx, ecx
call fcn.0040cd09
add esp, 0x20
mov esp, dword [esi + 0x2c]
cmp dword [ebx + 0x14], 0x10
mov edi, dword [ebp + 8]
jb 0x422c43
mov ebx, dword [esi + 0x1a0]
mov edi, dword [edi + 0x10]
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov edx, closesocket
sub edx, edi
cmp edx, eax
jb 0x42752c
mov ecx, edi
mov edi, dword [ebp + 8]
mov edx, dword [edi]
mov edi, dword [edi + 0x14]
mov dword [esi + 0x1c], edi
mov dword [esi + 0xc0], 0
mov edi, eax
add edi, ecx
cmp edi, 0x10
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], eax
jb 0x422cb7
mov dword [esi + 0x20], edx
mov edx, edi
or edx, 0xf
mov dword [esi + 0x18], ecx
js 0x422cc6
cmp edx, 0x17
mov ebx, edx
mov edx, 0x16
mov dword [esi + 0x28], ebx
cmovae edx, ebx
lea ebx, [edx + 1]
mov dword [esi + 0x24], ebx
mov dword [esi + 0xc], edx
cmp edx, 0xfff
jb 0x422ce5
mov eax, dword [esi + 0x24]
jmp 0x422cd2
lea ebx, [esi + 0xc0]
mov dword [esi + 0xc], 0xf
jmp 0x422cfe
mov dword [esi + 0x28], closesocket
mov eax, closesocket
push eax
call fcn.0040130b
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x28]
mov dword [esi + 0xc], eax
jmp 0x422cf2
push dword [esi + 0x24]
call fcn.004716fe
add esp, 4
mov ebx, eax
mov dword [esi + 0xc0], ebx
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x20]
cmp dword [esi + 0x1c], 0x10
mov eax, dword [ebp + 8]
cmovae eax, edx
mov dword [esi + 0xd0], edi
mov edx, dword [esi + 0xc]
mov dword [esi + 0xd4], edx
push ecx
push eax
push ebx
mov dword [esi + 0xc], edi
mov edi, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, ebx
push dword [esi + 0x14]
push dword [esi + 0x10]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0xc]
mov byte [ebx + eax], 0
mov eax, dword [esi + 0x194]
cmp eax, 0x10
jb 0x422d7d
mov ecx, dword [esi + 0x180]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x422d73
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x427531
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
movsd xmm0, qword [esi + 0xd0]
movsd qword [esi + 0x190], xmm0
movdqu xmm0, xmmword [esi + 0xc0]
movdqa xmmword [esi + 0x180], xmm0
mov eax, dword [esi + 0x1b4]
cmp eax, 0x10
jb 0x422ddb
mov ecx, dword [esi + 0x1a0]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x422dd1
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x427531
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
cmp dword [esi + 0x194], 0x10
jb 0x422dec
mov eax, dword [esi + 0x180]
jmp 0x422df2
lea eax, [esi + 0x180]
lea ecx, [esi + 0x1f8]
mov dword [ecx], eax
sub esp, 0xc
mov al, byte [esi + 0xc0]
mov byte [esp + 8], al
mov dword [esp + 4], ecx
lea edi, [esi + 0x1a0]
mov dword [esp], edi
call fcn.004529f5
add esp, 0xc
xor ebx, ebx
mov dword [esi + 0x60], ebx
call fcn.0044d769
mov dword [esi + 0x64], eax
mov dword [esi + 0x40], ebx
mov dword [esi + 0x44], 0xffff
cmp dword [edi + 0x14], 8
jb 0x422e3f
mov edi, dword [esi + 0x1a0]
lea ebx, [esi + 0xc0]
push 0xffffffffffffffff
push 3
push ebx
push edi
call fcn.00471de2
lea edi, [esi + 0x40]
mov dword [edi + 8], eax
mov ecx, edi
push ebx
push eax
call fcn.0044e62a
mov ebx, dword [edi + 8]
call fcn.0044d769
mov dword [esi + 0x60], ebx
mov dword [esi + 0x64], eax
mov edi, dword [edi]
test edi, edi
je 0x42328b
mov dword [esi + 0x60], 0
call fcn.0044d769
lea ecx, [esi + 0x1a0]
call fcn.0040d3aa
cmp edi, 1
je 0x427482
mov dword [esi + 0x5c], 0
movaps xmm0, xmmword [0x4734b0]
movups xmmword [esi + 0xc0], xmm0
movdqa xmm0, xmmword [0x4734c0]
movdqu xmmword [esi + 0xd0], xmm0
mov dword [esi + 0xe0], 0xa3f7f4f8
mov dword [esi + 0xe4], 0x12141f19
mov byte [esi + 0xe8], 0x8e
pxor xmm0, xmm0
movdqu xmmword [esi + 0xe9], xmm0
mov byte [esi + 0xf9], 0
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov ecx, dword [eax]
xor eax, eax
cmp edi, eax
ja 0x4232a3
mov dl, byte [esi + eax + 0xc0]
mov byte [esi + 0x14], dl
movzx edx, dl
mov dword [esi + 0xc], edx
lea edx, [ecx + 1]
cmp edi, edx
jae 0x422f79
cmp ecx, eax
ja 0x4232ae
lea ebx, [edi + ecx]
mov dword [esi + 0x1c], ebx
cmp ebx, eax
jbe 0x422ff5
mov dword [esi + 0x10], edx
lea edx, [ecx + 0x10]
cmp edi, edx
je 0x423126
lea edx, [ecx + 5]
cmp edi, edx
mov edx, dword [esi + 0x10]
cmovne edx, ecx
je 0x423176
mov dword [esi + 0x10], edx
lea edx, [ecx + 4]
cmp edi, edx
mov edx, dword [esi + 0x10]
je 0x423176
lea edx, [ecx + 0x28]
cmp edi, edx
je 0x422fc2
lea edx, [ecx + 8]
cmp edi, edx
mov dl, byte [esi + 0x14]
je 0x423167
jmp 0x422eea
je 0x423164
mov dword [esi + 0x10], edx
lea edx, [ecx + 2]
cmp edi, edx
jne 0x4230ca
mov dword [esi + 0x14], edi
mov edx, dword [esi + 0xc]
lea ebx, [eax - 0x32e24c45]
and ebx, edx
add ebx, ebx
add edx, eax
add edx, 0xcd1db3bb
sub edx, ebx
mov edi, dword [esi + 0x14]
add dl, 0xe3
mov byte [esi + eax + 0xc0], dl
not ecx
add ecx, eax
movzx eax, dl
sub ecx, eax
mov eax, ecx
mov ecx, dword [esi + 0x10]
lea edx, [eax - 0x7b229e54]
mov ebx, dword [esi + 0xc]
and edx, ebx
add ebx, eax
add ebx, 0x84dd61ac
add edx, edx
sub ebx, edx
add bl, 0x4c
mov byte [esi + eax + 0xc0], bl
sub eax, edi
inc edi
mov dl, byte [esi + eax + 0xbe]
add eax, 0xfffffffe
jmp 0x423167
lea ebx, [ecx + 9]
cmp edi, ebx
jae 0x423091
mov dword [esi + 0x10], edx
lea edx, [eax - 0x4840520f]
mov ebx, dword [esi + 0xc]
mov dword [esi + 0x20], ecx
lea ecx, [eax + ebx]
add ecx, 0xb7bfadf1
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x20]
and edx, ebx
mov ebx, dword [esi + 0x18]
add edx, edx
sub ebx, edx
add bl, 0x69
lea edx, [ecx + 3]
cmp edi, edx
jbe 0x423121
mov dword [esi + 0x20], edx
lea edx, [eax - 0x37538d93]
mov ebx, dword [esi + 0xc]
add ebx, eax
add ebx, 0xc8ac726d
mov dword [esi + 0x18], ebx
and edx, dword [esi + 0xc]
mov ebx, dword [esi + 0x18]
add edx, edx
sub ebx, edx
add bl, 5
lea edx, [ecx + 6]
cmp edi, edx
jbe 0x42315d
lea edx, [eax - 0x249a48ce]
mov ebx, dword [esi + 0xc]
add ebx, eax
add ebx, 0xdb65b732
mov dword [esi + 0x18], ebx
and edx, dword [esi + 0xc]
mov ebx, dword [esi + 0x18]
add edx, edx
sub ebx, edx
add bl, 0xa2
mov byte [esi + eax + 0xc0], bl
jmp 0x423179
cmp edi, edx
je 0x423164
mov dword [esi + 0x18], ebx
lea ebx, [ecx + 3]
mov dword [esi + 0x20], ebx
cmp edi, ebx
jne 0x423188
lea ebx, [eax + 0x73f09d30]
mov edx, dword [esi + 0xc]
add edx, eax
add edx, 0x73f09d30
and ebx, dword [esi + 0xc]
add ebx, ebx
sub edx, ebx
add dl, 0xb0
mov dword [esi + 0x10], edx
jmp 0x423119
lea edx, [ecx + 5]
cmp edi, edx
jne 0x42314d
lea ebx, [eax + 0x54bbd53d]
mov edx, dword [esi + 0xc]
add edx, eax
add edx, 0x54bbd53d
and ebx, dword [esi + 0xc]
add ebx, ebx
sub edx, ebx
add dl, 0x55
mov dword [esi + 0x10], edx
add edi, ecx
mov edx, edi
lea edi, [eax + 0x5d9e57d9]
mov ebx, dword [esi + 0xc]
and edi, ebx
add ebx, eax
add ebx, 0x5d9e57d9
add edi, edi
sub ebx, edi
add bl, byte [esi + 0x10]
add bl, 0x11
mov byte [esi + eax + 0xc0], bl
mov edi, edx
movzx edx, byte [esi + 0x10]
not edx
jmp 0x42316c
cmp edi, dword [esi + 0x10]
jne 0x423170
lea edx, [eax - 0x11e10409]
mov ebx, dword [esi + 0xc]
lea ecx, [eax + ebx]
add ecx, 0xee1efbf7
and edx, ebx
add edx, edx
sub ecx, edx
add cl, 0x3f
mov byte [esi + eax + 0xc0], cl
mov edx, dword [esi + 0x10]
jmp 0x423176
lea edx, [ecx + 4]
cmp edi, edx
mov edx, dword [esi + 0x10]
jne 0x422f19
jmp 0x423174
mov edx, dword [esi + 0x10]
cmp edi, edx
jne 0x4231ba
mov dl, byte [esi + 0x14]
movzx edx, dl
add edx, ecx
add eax, edx
jmp 0x423179
cmp edi, edx
jne 0x4231ed
mov edx, ecx
dec eax
mov ecx, edx
inc eax
cmp eax, 0x3a
jb 0x422efa
jmp 0x4232aa
mov dword [esi + 0x10], edx
lea edx, [ecx + 5]
cmp edi, edx
mov ebx, dword [esi + 0x18]
jne 0x423211
lea edi, [eax - 0x1c9006ee]
mov edx, dword [esi + 0xc]
and edi, edx
add edx, eax
add edx, 0xe36ff912
add edi, edi
sub edx, edi
add dl, 0x82
mov dword [esi + 0x10], edx
mov edi, dword [esi + 0x1c]
jmp 0x423119
lea edx, [ecx + 2]
cmp edi, edx
je 0x422f8d
lea edx, [ecx + 5]
cmp edi, edx
jne 0x42326f
lea edi, [eax + 0x7861de7e]
mov edx, dword [esi + 0xc]
lea ebx, [eax + edx]
add ebx, 0x7861de7e
and edi, edx
add edi, edi
sub ebx, edi
add bl, 0x8e
jmp 0x423233
mov dword [esi + 0x20], edx
lea edx, [ecx + 6]
cmp edi, edx
je 0x422f8d
mov dword [esi + 0x18], edx
lea edx, [ecx + 2]
cmp edi, edx
mov edx, dword [esi + 0x18]
jne 0x42305c
jmp 0x423164
lea edx, [ecx + 4]
cmp edi, edx
jne 0x42323e
lea edi, [eax + 0x52ef54f4]
mov edx, dword [esi + 0xc]
lea ebx, [eax + edx]
add ebx, 0x52ef54f4
and edi, edx
add edi, edi
sub ebx, edi
add bl, 0x54
mov dword [esi + 0x10], ebx
mov edx, dword [esi + 0x1c]
jmp 0x4230f3
cmp edi, ebx
je 0x423126
lea edx, [eax + 0x12b944c5]
mov ebx, dword [esi + 0xc]
add ebx, eax
add ebx, 0x12b944c5
mov dword [esi + 0x18], ebx
and edx, dword [esi + 0xc]
mov ebx, dword [esi + 0x18]
add edx, edx
sub ebx, edx
mov edx, dword [esi + 0x20]
add bl, 0x9d
jmp 0x42302d
cmp edi, dword [esi + 0x20]
je 0x423174
lea edx, [ecx + 4]
cmp edi, edx
mov edx, dword [esi + 0x10]
jne 0x423085
jmp 0x423176
test ebx, ebx
jne 0x427537
lea ecx, [esi + 0x1a0]
call fcn.0040d3aa
jmp 0x427482
mov eax, 0x1088bdd
jmp 0x4232b3
xor eax, eax
jmp 0x4232b3
mov eax, 0x148ddec
lea edi, [esi + eax]
add edi, 0xc0
xor eax, eax
lea ebx, [esi + 0x1a0]
mov dword [ebx], eax
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], 0xf
mov byte [ebx], 0
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov dword [esi + 0x30], ebx
mov ecx, ebx
push eax
push edi
call fcn.00450e50
xor eax, eax
mov dword [esi + 0x3c], eax
mov edx, dword [0x4785fc]
test edx, edx
jne 0x42346f
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax]
xor eax, eax
mov edi, 0x9a55b065
mov dword [esi + 0x28], ecx
mov dword [esi + 0x18], ecx
test eax, eax
mov dword [esi + 0x20], eax
mov dword [esi + 0xc], edi
je 0x423369
mov eax, dword [esi + 0x18]
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x5d6c8e13
cmp cx, 2
jb 0x42335b
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x5d6c8e13
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x423348
mov eax, dword [esi + 0x20]
cmp edx, eax
mov edi, dword [esi + 0xc]
jne 0x423426
mov eax, dword [esi + 0x18]
mov edx, dword [eax + 0x18]
mov eax, dword [edx + 0x3c]
mov ebx, dword [edx + eax + 0x78]
test ebx, ebx
je 0x423423
mov eax, dword [edx + eax + 0x7c]
mov dword [esi + 0x24], eax
lea eax, [edx + ebx]
mov dword [esi + 0x10], eax
mov eax, dword [eax + 0x18]
lea ecx, [edx + 1]
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x14], ebx
sub eax, 1
jb 0x423423
mov ecx, dword [esi + 0x10]
mov ecx, dword [ecx + 0x20]
add ecx, edx
mov ebx, dword [ecx + eax*4]
mov cl, byte [edx + ebx]
test cl, cl
je 0x4233ce
add ebx, dword [esi + 0x1c]
mov edi, 0x5d6c8e13
movsx ecx, cl
xor ecx, edi
imul edi, ecx, 0x1000193
mov cl, byte [ebx]
inc ebx
test cl, cl
jne 0x4233ba
jmp 0x4233d3
mov edi, 0x5d6c8e13
mov ecx, dword [esi + 0xc]
cmp edi, ecx
mov edi, ecx
mov ebx, dword [esi + 0x14]
jne 0x423397
mov ecx, dword [edx + ebx + 0x24]
add ecx, edx
movzx eax, word [ecx + eax*2]
mov ecx, dword [edx + ebx + 0x1c]
add ecx, edx
mov eax, dword [ecx + eax*4]
add edx, eax
cmp ebx, eax
jge 0x423469
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x24]
cmp eax, edx
jbe 0x423469
mov al, byte [edx]
mov edi, 0x5d6c8e13
mov ecx, 0x5d6c8e13
cmp al, 0x2e
je 0x42342b
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edx + 1]
inc edx
jmp 0x42340e
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x18]
jmp 0x423453
mov al, byte [edx + 1]
test al, al
je 0x42344c
add edx, 2
mov edi, 0x5d6c8e13
movsx eax, al
xor eax, edi
imul edi, eax, 0x1000193
mov al, byte [edx]
inc edx
test al, al
jne 0x42343a
mov eax, dword [esi + 0x28]
mov edx, dword [eax]
mov eax, ecx
mov ecx, dword [edx]
xor edx, edx
cmp ecx, dword [esi + 0x28]
je 0x423469
mov dword [esi + 0x18], ecx
cmp dword [ecx + 0x18], 0
jne 0x423316
mov dword [0x4785fc], edx
cmp dword [esi + 0x194], 0x10
jb 0x423480
mov eax, dword [esi + 0x180]
jmp 0x423486
lea eax, [esi + 0x180]
lea ecx, [esi + 0x5c]
push ecx
push eax
call edx
test eax, eax
jne 0x427444
mov ebx, dword [0x478600]
test ebx, ebx
jne 0x42360d
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0x190b5913
xor edi, edi
mov dword [esi + 0x28], eax
test edi, edi
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], edi
mov dword [esi + 0x18], eax
je 0x423511
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x360af685
cmp cx, 2
jb 0x423500
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x360af685
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x4234ed
mov edi, dword [esi + 0x20]
cmp edx, edi
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x18]
jne 0x4235f4
mov ebx, dword [eax + 0x18]
mov eax, dword [ebx + 0x3c]
mov edx, dword [ebx + eax + 0x78]
test edx, edx
je 0x4235c9
mov eax, dword [ebx + eax + 0x7c]
mov dword [esi + 0x24], eax
lea eax, [ebx + edx]
mov dword [esi + 0x10], eax
mov edi, dword [eax + 0x18]
lea eax, [ebx + 1]
mov dword [esi + 0x1c], eax
mov dword [esi + 0x14], edx
sub edi, 1
jb 0x4235c6
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0x20]
add eax, ebx
mov edx, dword [eax + edi*4]
mov cl, byte [ebx + edx]
test cl, cl
je 0x423573
add edx, dword [esi + 0x1c]
mov eax, 0x360af685
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x42355f
jmp 0x423578
mov eax, 0x360af685
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x42353c
mov eax, dword [ebx + edx + 0x24]
add eax, ebx
movzx eax, word [eax + edi*2]
mov ecx, dword [ebx + edx + 0x1c]
add ecx, ebx
mov eax, dword [ecx + eax*4]
add ebx, eax
cmp edx, eax
jge 0x423607
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x24]
cmp eax, ebx
jbe 0x423607
mov al, byte [ebx]
mov ecx, 0x360af685
mov edi, 0x360af685
cmp al, 0x2e
je 0x4235ce
movsx eax, al
xor eax, edi
imul edi, eax, 0x1000193
mov al, byte [ebx + 1]
inc ebx
jmp 0x4235b1
mov edi, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
jmp 0x4235f4
mov al, byte [ebx + 1]
test al, al
je 0x4235ef
add ebx, 2
mov ecx, 0x360af685
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [ebx]
inc ebx
test al, al
jne 0x4235dd
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
mov eax, dword [eax]
xor ebx, ebx
cmp eax, dword [esi + 0x28]
je 0x423607
cmp dword [eax + 0x18], 0
jne 0x4234bb
mov dword [0x478600], ebx
cmp dword [esi + 0x1b4], 0x10
jb 0x42361f
mov eax, dword [esi + 0x1a0]
mov dword [esi + 0x30], eax
lea eax, [esi + 0x3c]
push 0
push eax
push 0xffffffffffffffff
push dword [esi + 0x30]
push dword [esi + 0x5c]
call ebx
test eax, eax
je 0x42691f
mov edi, dword [0x478604]
test edi, edi
jne 0x4237af
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xa93d8d4b
xor ebx, ebx
mov dword [esi + 0x28], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x18], eax
je 0x4236b3
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x36e36ed7
cmp cx, 2
jb 0x4236a2
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x36e36ed7
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x42368f
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x18]
jne 0x423796
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x42376b
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x24], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x1c], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x423768
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0x20]
add eax, edi
mov edx, dword [eax + ebx*4]
mov cl, byte [edi + edx]
test cl, cl
je 0x423715
add edx, dword [esi + 0x1c]
mov eax, 0x36e36ed7
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x423701
jmp 0x42371a
mov eax, 0x36e36ed7
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x4236de
mov eax, dword [edi + edx + 0x24]
add eax, edi
movzx eax, word [eax + ebx*2]
mov ecx, dword [edi + edx + 0x1c]
add ecx, edi
mov eax, dword [ecx + eax*4]
add edi, eax
cmp edx, eax
jge 0x4237a9
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x24]
cmp eax, edi
jbe 0x4237a9
mov al, byte [edi]
mov ecx, 0x36e36ed7
mov ebx, 0x36e36ed7
cmp al, 0x2e
je 0x423770
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x423753
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
jmp 0x423796
mov al, byte [edi + 1]
test al, al
je 0x423791
add edi, 2
mov ecx, 0x36e36ed7
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x42377f
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x28]
je 0x4237a9
cmp dword [eax + 0x18], 0
jne 0x42365d
mov dword [0x478604], edi
push dword [esi + 0x5c]
call edi
jmp 0x427444
mov edi, dword [0x47860c]
test edi, edi
jne 0x423931
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xbfca19de
xor ebx, ebx
mov dword [esi + 0x28], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x18], eax
je 0x423835
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x5fbbd804
cmp cx, 2
jb 0x423824
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x5fbbd804
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x423811
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x18]
jne 0x423918
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x4238ed
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x24], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x1c], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x4238ea
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0x20]
add eax, edi
mov edx, dword [eax + ebx*4]
mov cl, byte [edi + edx]
test cl, cl
je 0x423897
add edx, dword [esi + 0x1c]
mov eax, 0x5fbbd804
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x423883
jmp 0x42389c
mov eax, 0x5fbbd804
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x423860
mov eax, dword [edi + edx + 0x24]
add eax, edi
movzx eax, word [eax + ebx*2]
mov ecx, dword [edi + edx + 0x1c]
add ecx, edi
mov eax, dword [ecx + eax*4]
add edi, eax
cmp edx, eax
jge 0x42392b
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x24]
cmp eax, edi
jbe 0x42392b
mov al, byte [edi]
mov ecx, 0x5fbbd804
mov ebx, 0x5fbbd804
cmp al, 0x2e
je 0x4238f2
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x4238d5
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
jmp 0x423918
mov al, byte [edi + 1]
test al, al
je 0x423913
add edi, 2
mov ecx, 0x5fbbd804
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x423901
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x28]
je 0x42392b
cmp dword [eax + 0x18], 0
jne 0x4237df
mov dword [0x47860c], edi
push 0
push dword [esi + 0x3c]
call edi
mov dword [esi + 0x30], eax
mov edi, dword [0x478610]
test edi, edi
jne 0x423ab3
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0x73f19dba
xor ebx, ebx
mov dword [esi + 0x28], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x18], eax
je 0x4239b7
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x59444ba0
cmp cx, 2
jb 0x4239a6
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x59444ba0
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x423993
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x18]
jne 0x423a9a
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x423a6f
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x24], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x1c], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x423a6c
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0x20]
add eax, edi
mov edx, dword [eax + ebx*4]
mov cl, byte [edi + edx]
test cl, cl
je 0x423a19
add edx, dword [esi + 0x1c]
mov eax, 0x59444ba0
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x423a05
jmp 0x423a1e
mov eax, 0x59444ba0
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x4239e2
mov eax, dword [edi + edx + 0x24]
add eax, edi
movzx eax, word [eax + ebx*2]
mov ecx, dword [edi + edx + 0x1c]
add ecx, edi
mov eax, dword [ecx + eax*4]
add edi, eax
cmp edx, eax
jge 0x423aad
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x24]
cmp eax, edi
jbe 0x423aad
mov al, byte [edi]
mov ecx, 0x59444ba0
mov ebx, 0x59444ba0
cmp al, 0x2e
je 0x423a74
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x423a57
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
jmp 0x423a9a
mov al, byte [edi + 1]
test al, al
je 0x423a95
add edi, 2
mov ecx, 0x59444ba0
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x423a83
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x28]
je 0x423aad
cmp dword [eax + 0x18], 0
jne 0x423961
mov dword [0x478610], edi
push 1
push dword [esi + 0x3c]
call edi
mov edi, dword [0x478614]
test edi, edi
mov dword [esi + 0x2c], eax
jne 0x423c3d
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xdd9e81b2
mov dword [esi + 0x28], eax
mov dword [esi + 0x18], eax
xor eax, eax
test eax, eax
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], eax
je 0x423b39
mov eax, dword [esi + 0x18]
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x9cf1aed8
cmp cx, 2
jb 0x423b2b
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x9cf1aed8
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x423b18
mov eax, dword [esi + 0x20]
cmp edx, eax
mov ecx, dword [esi + 0xc]
jne 0x423bf4
mov eax, dword [esi + 0x18]
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x423bf1
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x24], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov eax, dword [eax + 0x18]
lea ebx, [edi + 1]
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x14], edx
sub eax, 1
jb 0x423bf1
mov ecx, dword [esi + 0x10]
mov ecx, dword [ecx + 0x20]
add ecx, edi
mov edx, dword [ecx + eax*4]
mov cl, byte [edi + edx]
test cl, cl
je 0x423b9e
add edx, dword [esi + 0x1c]
mov ebx, 0x9cf1aed8
movsx ecx, cl
xor ecx, ebx
imul ebx, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x423b8a
jmp 0x423ba3
mov ebx, 0x9cf1aed8
mov ecx, dword [esi + 0xc]
cmp ebx, ecx
mov edx, dword [esi + 0x14]
jne 0x423b67
mov ecx, dword [edi + edx + 0x24]
add ecx, edi
movzx eax, word [ecx + eax*2]
mov ecx, dword [edi + edx + 0x1c]
add ecx, edi
mov eax, dword [ecx + eax*4]
add edi, eax
cmp edx, eax
jge 0x423c37
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x24]
cmp eax, edi
jbe 0x423c37
mov al, byte [edi]
mov ecx, 0x9cf1aed8
mov edx, 0x9cf1aed8
cmp al, 0x2e
je 0x423bf9
movsx eax, al
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x423bdc
mov eax, dword [esi + 0x20]
mov edi, dword [esi + 0x18]
jmp 0x423c21
mov al, byte [edi + 1]
test al, al
je 0x423c1a
add edi, 2
mov ecx, 0x9cf1aed8
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x423c08
mov eax, dword [esi + 0x28]
mov edi, dword [eax]
mov eax, edx
mov edx, dword [edi]
xor edi, edi
cmp edx, dword [esi + 0x28]
je 0x423c37
mov dword [esi + 0x18], edx
cmp dword [edx + 0x18], 0
jne 0x423ae6
mov dword [0x478614], edi
push 2
push dword [esi + 0x3c]
call edi
mov dword [esi + 0xc], eax
xor ebx, ebx
mov dword [esi + 0x40], ebx
mov dword [esi + 0x50], ebx
mov eax, 0xf
mov dword [esi + 0x54], eax
mov byte [esi + 0x40], bl
mov edi, dword [esi + 0x30]
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ecx, [esi + 0x40]
push eax
push edi
call fcn.00450e50
mov dword [esi + 0x60], ebx
mov dword [esi + 0x70], ebx
mov eax, 0xf
mov dword [esi + 0x74], eax
mov byte [esi + 0x60], bl
mov edi, dword [esi + 0x2c]
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ecx, [esi + 0x60]
push eax
push edi
call fcn.00450e50
mov dword [esi + 0x1f8], ebx
mov dword [esi + 0x208], ebx
mov eax, 0xf
mov dword [esi + 0x20c], eax
mov byte [esi + 0x1f8], bl
mov edi, dword [esi + 0xc]
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ecx, [esi + 0x1f8]
push eax
push edi
call fcn.00450e50
lea eax, [esi + 0x1e6]
pxor xmm0, xmm0
movdqu xmmword [eax], xmm0
mov word [eax + 0x10], 0
mov word [esi + 0x1e4], 0x510
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov edx, dword [eax]
xor eax, eax
cmp edi, eax
ja 0x424284
movzx ecx, byte [esi + eax + 0x1e4]
mov dword [esi + 0x10], ecx
lea ecx, [edx + 1]
cmp edi, ecx
mov dword [esi + 0xc], edi
jae 0x423d63
cmp edx, eax
ja 0x42428f
mov ebx, edx
mov edx, edi
add edi, ebx
cmp edi, eax
jbe 0x423dc6
lea ecx, [ebx + 5]
cmp edx, ecx
jne 0x423e99
lea ecx, [eax + 0xa9b5672]
mov edi, eax
mov eax, dword [esi + 0x10]
and ecx, eax
lea edx, [edi + eax]
add edx, 0xa9b5672
mov eax, edi
mov edi, dword [esi + 0xc]
add ecx, ecx
sub edx, ecx
add dl, 0xe2
mov ecx, ebx
mov ebx, edx
jmp 0x423f8f
jne 0x423d90
mov edi, edx
mov edx, dword [esi + 0x10]
lea ecx, [eax + 0x511f0903]
lea ebx, [eax + edx]
add ebx, 0x511f0903
and ecx, edx
add ecx, ecx
sub ebx, ecx
mov ecx, edx
mov edx, edi
mov edi, dword [esi + 0xc]
add bl, 0xeb
add ecx, edx
jmp 0x423f3b
mov dword [esi + 0x18], ebx
lea edi, [edx + 2]
cmp dword [esi + 0xc], edi
jne 0x423e63
mov edi, edx
mov edx, dword [esi + 0x10]
lea ecx, [eax - 0xca2e4f7]
lea ebx, [eax + edx]
add ebx, 0xf35d1b09
and ecx, edx
mov edx, edi
mov edi, dword [esi + 0xc]
add ecx, ecx
sub ebx, ecx
add bl, 0xc1
jmp 0x423f36
lea edi, [eax - 0x3a4afcff]
mov dword [esi + 0x14], ecx
mov ecx, eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x20], ecx
add ecx, eax
add ecx, 0xc5b50301
and edi, eax
add edi, edi
sub ecx, edi
add cl, 0xf9
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x1c], ebx
lea edi, [ebx + 5]
cmp edx, edi
mov dword [esi + 0x14], ecx
jbe 0x423ecd
mov eax, dword [esi + 0x20]
lea edi, [eax + 0x1c21b73d]
mov ecx, dword [esi + 0x10]
lea ebx, [eax + ecx]
add ebx, 0x1c21b73d
and edi, ecx
add edi, edi
sub ebx, edi
mov edi, edx
add bl, 0x55
mov edx, dword [esi + 0x1c]
cmp edi, 4
ja 0x423ef2
mov ecx, dword [esi + 0x14]
cmp edi, ecx
jne 0x424001
lea ecx, [eax - 0x209b03ac]
mov edi, edx
mov edx, eax
mov eax, dword [esi + 0x10]
lea ebx, [edx + eax]
add ebx, 0xdf64fc54
and ecx, eax
add ecx, ecx
sub ebx, ecx
mov ecx, eax
mov eax, edx
mov edx, edi
mov edi, dword [esi + 0xc]
add bl, 0xb4
jmp 0x423d89
mov dword [esi + 0x14], ecx
lea edi, [edx + 4]
cmp dword [esi + 0xc], edi
jne 0x423f3f
mov edi, edx
mov edx, dword [esi + 0x10]
lea ecx, [eax - 0x6a64d2f1]
and ecx, edx
lea ebx, [eax + edx]
add ebx, 0x959b2d0f
add ecx, ecx
sub ebx, ecx
add bl, 0x97
mov ecx, edi
mov edi, dword [esi + 0xc]
jmp 0x423f8f
mov edi, edx
lea ecx, [ebx + 9]
cmp edx, ecx
jne 0x423fa1
lea ecx, [eax - 0x69faa38c]
mov edi, ebx
mov edx, eax
mov eax, dword [esi + 0x10]
lea ebx, [edx + eax]
add ebx, 0x96055c74
and ecx, eax
add ecx, ecx
sub ebx, ecx
mov ecx, eax
mov eax, edx
mov edx, edi
add bl, 0xd4
jmp 0x423f11
cmp edx, ecx
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x20]
jne 0x423fcf
lea edi, [eax - 0x587442c1]
lea ebx, [eax + ecx]
add ebx, 0xa78bbd3f
and edi, ecx
mov byte [esi + 0x1c], 0x47
jmp 0x423f63
mov edi, dword [esi + 0x10]
lea ecx, [eax + 0x51893868]
lea ebx, [eax + edi]
add ebx, 0x51893868
and ecx, edi
add ecx, ecx
sub ebx, ecx
mov ecx, edi
add bl, cl
add bl, 0x28
lea edi, [eax + 0x173e3b69]
and edi, ecx
add ecx, eax
add ecx, 0x173e3b69
add edi, edi
sub ecx, edi
add cl, bl
add cl, 0x21
mov byte [esi + eax + 0x1e4], cl
mov edi, dword [esi + 0xc]
add edi, edx
movzx ecx, bl
not ecx
add eax, ecx
jmp 0x423f92
lea edi, [edx + 8]
cmp dword [esi + 0xc], edi
jne 0x424097
lea edi, [eax - 0x5390c6ed]
mov ecx, dword [esi + 0x10]
lea ebx, [eax + ecx]
add ebx, 0xac6f3913
and edi, ecx
mov byte [esi + 0x1c], 0x7b
add edi, edi
sub ebx, edi
lea edi, [eax - 0x742bca99]
and edi, ecx
lea edx, [ecx + eax]
add edx, 0x8bd43567
add edi, edi
sub edx, edi
add dl, 0x2f
mov byte [esi + eax + 0x1e4], dl
add bl, byte [esi + 0x1c]
mov edi, dword [esi + 0xc]
mov ecx, dword [esi + 0x14]
dec eax
mov edx, ecx
inc eax
cmp eax, 0x14
jb 0x423cfa
jmp 0x42428b
lea ecx, [ebx + 3]
cmp edi, ecx
jne 0x4240d7
mov dword [esi + 0x1c], ebx
lea ecx, [eax - 0x3c528b84]
mov edx, dword [esi + 0x10]
lea ebx, [eax + edx]
add ebx, 0xc3ad747c
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x9c
jmp 0x424063
mov dword [esi + 0x28], edi
mov ebx, dword [esi + 0x1c]
lea edi, [ebx + 2]
cmp edx, edi
jne 0x42410f
mov edi, edx
mov edx, dword [esi + 0x10]
lea ecx, [eax - 0x41a036bd]
and ecx, edx
add edx, eax
add edx, 0xbe5fc943
add ecx, ecx
sub edx, ecx
add dl, 0x2b
jmp 0x423d5a
lea edi, [edx + 2]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
jne 0x42413b
lea edi, [eax - 0x9c6f7a8]
and edi, dword [esi + 0x10]
add edi, edi
mov ebx, dword [esi + 0x10]
add ebx, eax
add ebx, 0xf6390858
sub ebx, edi
lea edi, [eax - 0x5d57be95]
mov ecx, dword [esi + 0x10]
and edi, ecx
add edi, edi
add ecx, eax
add ecx, 0xa2a8416b
sub ecx, edi
mov edi, dword [esi + 0xc]
add cl, 0x13
mov byte [esi + eax + 0x1e4], cl
not edx
add edx, eax
movzx eax, cl
sub edx, eax
add bl, 0x98
mov eax, edx
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x1c], ecx
lea ecx, [eax + 0x685d446c]
and ecx, edx
add edx, eax
add edx, 0x685d446c
add ecx, ecx
sub edx, ecx
add dl, 0xc
mov byte [esi + eax + 0x1e4], dl
sub eax, edi
inc edi
movzx ecx, byte [esi + eax + 0x1e2]
add eax, 0xfffffffe
mov edx, dword [esi + 0x1c]
jmp 0x423d89
cmp edx, eax
ja 0x42428f
lea edi, [edx + 3]
cmp dword [esi + 0xc], edi
mov ecx, dword [esi + 0xc]
jne 0x4241a2
mov edi, edx
mov edx, dword [esi + 0x10]
lea ecx, [eax + 0x1e937527]
lea ebx, [eax + edx]
add ebx, 0x1e937527
and ecx, edx
add ecx, ecx
sub ebx, ecx
mov ecx, edx
mov edx, edi
mov edi, dword [esi + 0xc]
add bl, 0xef
jmp 0x423d89
lea ecx, [ebx + 0x10]
cmp edi, ecx
jne 0x424262
lea ecx, [eax + 0x4f177a7e]
mov edi, ebx
mov edx, eax
mov eax, dword [esi + 0x10]
lea ebx, [edx + eax]
add ebx, 0x4f177a7e
and ecx, eax
add ecx, ecx
sub ebx, ecx
mov ecx, eax
mov eax, edx
mov edx, edi
mov edi, dword [esi + 0xc]
add bl, 0x8e
jmp 0x423d89
lea edi, [ebx + 3]
cmp dword [esi + 0xc], edi
mov edx, ebx
jne 0x42416c
mov edi, dword [esi + 0x10]
lea ecx, [eax + 0x49c9cf45]
lea ebx, [eax + edi]
add ebx, 0x49c9cf45
and ecx, edi
add ecx, ecx
sub ebx, ecx
mov ecx, edi
add bl, 0x1d
jmp 0x423f11
lea ecx, [edx + 3]
cmp edi, ecx
jne 0x4241e7
lea ecx, [eax + 0x23e12060]
mov edi, edx
mov edx, eax
mov eax, dword [esi + 0x10]
and ecx, eax
lea ebx, [edx + eax]
add ebx, 0x23e12060
mov eax, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x60
jmp 0x423e8f
lea edi, [edx + 4]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
jne 0x4241f3
mov edi, edx
mov edx, eax
mov eax, dword [esi + 0x10]
lea ecx, [edx - 0x2acc2ab9]
lea ebx, [edx + eax]
add ebx, 0xd533d547
and ecx, eax
mov eax, edx
mov edx, edi
mov edi, dword [esi + 0xc]
add ecx, ecx
sub ebx, ecx
add bl, 0xf
jmp 0x423f34
mov ebx, edx
mov edx, ecx
lea edi, [ecx + ebx]
cmp edi, eax
mov ecx, dword [esi + 0x14]
ja 0x423d2d
lea edi, [ebx + 5]
cmp edx, edi
jne 0x424229
lea ecx, [eax + 0x28c49c34]
mov edi, eax
mov eax, dword [esi + 0x10]
lea edx, [edi + eax]
add edx, 0x28c49c34
and ecx, eax
add ecx, ecx
sub edx, ecx
mov ecx, eax
mov eax, edi
add dl, 0x94
mov edi, edx
mov edx, ebx
mov ebx, edi
jmp 0x423f11
mov byte [esi + eax + 0x1e4], bl
jmp 0x423f92
cmp edi, dword [esi + 0x28]
mov ebx, dword [esi + 0x18]
jne 0x423e22
mov edi, edx
mov edx, eax
mov eax, dword [esi + 0x10]
lea ecx, [edx + 0x609ddb49]
lea ebx, [edx + eax]
add ebx, 0x609ddb49
and ecx, eax
mov eax, edx
mov edx, edi
mov edi, dword [esi + 0xc]
add ecx, ecx
sub ebx, ecx
inc bl
jmp 0x423f36
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ebx
mov eax, edi
lea edi, [ebx + 6]
cmp dword [esi + 0xc], edi
mov edi, eax
mov edx, dword [esi + 0xc]
jne 0x423df4
mov eax, dword [esi + 0x20]
lea edi, [eax - 0x34fd51c6]
mov ecx, dword [esi + 0x10]
lea ebx, [eax + ecx]
add ebx, 0xcb02ae3a
and edi, ecx
mov byte [esi + 0x1c], 0x6a
jmp 0x423f63
mov ecx, eax
mov eax, dword [esi + 0x10]
lea ebx, [ecx + eax]
add ebx, 0x2ba08983
add ecx, 0x2ba08983
and ecx, eax
add ecx, ecx
sub ebx, ecx
add bl, 0x6b
jmp 0x423cea
mov eax, 0x9307ad
jmp 0x424294
xor eax, eax
jmp 0x424294
mov eax, 0x15e04ac
add eax, esi
add eax, 0x1e4
mov dword [esi + 0x58], eax
xor ebx, ebx
mov dword [esi + 0x248], ebx
mov dword [esi + 0x258], ebx
mov dword [esi + 0x25c], 0xf
mov byte [esi + 0x248], bl
push 0x40
call fcn.004716fe
add esp, 4
mov dword [esi + 0x258], 0x32
mov dword [esi + 0x25c], 0x3f
movdqa xmm0, xmmword [str.________________]
movdqu xmmword [eax], xmm0
movdqu xmmword [eax + 0x10], xmm0
movdqu xmmword [eax + 0x20], xmm0
mov word [eax + 0x30], 0x5f5f
mov byte [eax + 0x32], bl
mov dword [esi + 0x248], eax
lea eax, [esi + 0x232]
mov dword [eax + 0x12], ebx
mov dword [eax + 0xe], ebx
pxor xmm0, xmm0
movdqu xmmword [eax], xmm0
mov word [esi + 0x230], 0xad9a
mov dword [esi + 0x14], eax
call fcn.0046d640
mov eax, dword [eax]
mov dword [esi + 0xc], eax
call fcn.0046d646
mov edx, dword [eax]
xor ebx, ebx
mov eax, dword [esi + 0x14]
cmp dword [esi + 0xc], ebx
ja 0x4249ea
movzx ecx, byte [esi + ebx + 0x230]
lea edi, [edx + 1]
cmp dword [esi + 0xc], edi
mov dword [esi + 0x10], edx
jae 0x4243e9
lea edx, [ebx - 0x17a754c6]
lea eax, [ebx + ecx]
add eax, 0xe858ab3a
and edx, ecx
add edx, edx
sub eax, edx
add al, 0x6a
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x10]
cmp eax, ebx
ja 0x4249f5
lea edx, [eax + 3]
cmp dword [esi + 0xc], edx
jae 0x4244b6
mov dword [esi + 0x20], edx
mov dword [esi + 0x1c], edi
lea edx, [ebx + 0xf460bc2]
mov eax, ecx
add ecx, ebx
add ecx, 0xf460bc2
mov edi, eax
and edx, eax
add edx, edx
sub ecx, edx
mov eax, dword [esi + 0x10]
add cl, 0xb2
mov dword [esi + 0x14], ecx
lea ecx, [eax + 5]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0xc]
lea edx, [ecx + eax]
cmp edx, ebx
jbe 0x424526
mov eax, dword [esi + 0x18]
cmp dword [esi + 0xc], eax
mov ecx, edi
jne 0x424615
lea edx, [ebx - 0x593516a0]
lea eax, [ebx + ecx]
add eax, 0xa6cae960
and edx, ecx
add edx, edx
sub eax, edx
add al, 0x60
jmp 0x4244f7
jne 0x42440e
mov edi, ecx
mov ecx, edx
lea edx, [ebx - 0x46f5fe52]
lea eax, [ebx + edi]
add eax, 0xb90a01ae
and edx, edi
add edx, edx
sub eax, edx
add al, 0x3e
mov edx, ecx
mov ecx, edi
jmp 0x424819
mov dword [esi + 0x14], eax
mov eax, edx
add edx, 3
cmp dword [esi + 0xc], edx
jne 0x4244ff
mov dword [esi + 0x1c], edi
lea edx, [ebx + 0x5a6cae96]
lea eax, [ebx + ecx]
add eax, 0x5a6cae96
mov dword [esi + 0x14], eax
and edx, ecx
mov dword [esi + 0x18], edx
mov byte [esi + 0x20], 0xe6
lea edi, [ebx + 0x1d0f913e]
and edi, ecx
add edi, edi
lea edx, [ecx + ebx]
add edx, 0x1d0f913e
sub edx, edi
add dl, 0x4e
mov byte [esi + ebx + 0x230], dl
mov eax, dword [esi + 0x10]
not eax
add eax, ebx
movzx ebx, dl
mov edx, eax
sub edx, ebx
lea edi, [edx + 0x5683c78]
and edi, ecx
add ecx, edx
add ecx, 0x5683c78
add edi, edi
sub ecx, edi
add cl, 0xb8
mov byte [esi + edx + 0x230], cl
mov ecx, dword [esi + 0x18]
add ecx, ecx
mov edx, dword [esi + 0x14]
sub edx, ecx
add dl, byte [esi + 0x20]
mov ecx, dword [esi + 0xc]
add ebx, ecx
inc ecx
mov dword [esi + 0xc], ecx
sub eax, ebx
movzx ecx, byte [esi + eax + 0x22e]
add eax, 0xfffffffe
mov ebx, eax
mov eax, edx
mov edx, dword [esi + 0x1c]
jmp 0x424819
cmp dword [esi + 0xc], edi
jne 0x4245bf
mov dword [esi + 0x1c], edi
lea edx, [ebx - 0x20089dca]
lea eax, [ebx + ecx]
add eax, 0xdff76236
and edx, ecx
add edx, edx
sub eax, edx
add al, 0x86
lea edi, [ebx + 0x7bace456]
lea edx, [ecx + ebx]
add edx, 0x7bace456
and edi, ecx
add edi, edi
sub edx, edi
add dl, 0xa6
mov byte [esi + ebx + 0x230], dl
mov edi, dword [esi + 0x1c]
jmp 0x4247c5
lea edx, [eax + 5]
cmp dword [esi + 0xc], edx
jne 0x4245e9
lea edx, [ebx - 0x337f4e0e]
lea eax, [ebx + ecx]
add eax, 0xcc80b1f2
and edx, ecx
add edx, edx
sub eax, edx
add al, 0x62
jmp 0x424773
mov eax, dword [esi + 0x18]
cmp dword [esi + 0xc], eax
mov ecx, edi
jae 0x42463f
lea edx, [ebx - 0x17a754c6]
lea eax, [ebx + ecx]
add eax, 0xe858ab3a
and edx, ecx
add edx, edx
sub eax, edx
add al, 0x6a
mov dword [esi + 0x14], eax
mov edi, dword [esi + 0x1c]
mov eax, dword [esi + 0x10]
lea edx, [eax + 8]
cmp dword [esi + 0xc], edx
jbe 0x424690
lea edx, [ebx + 0x5d20ccd2]
lea eax, [ebx + ecx]
add eax, 0x5d20ccd2
and edx, ecx
add edx, edx
sub eax, edx
add al, 0x42
cmp dword [esi + 0xc], 9
ja 0x42475b
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x10]
lea edx, [eax + 2]
cmp dword [esi + 0xc], edx
jbe 0x424881
lea edx, [ebx + 0x6c66d894]
lea eax, [ebx + ecx]
add eax, 0x6c66d894
and edx, ecx
add edx, edx
sub eax, edx
add al, 0xf4
mov edx, dword [esi + 0x10]
cmp edx, 3
ja 0x424928
mov byte [esi + ebx + 0x230], al
jmp 0x42481d
mov dword [esi + 0x20], edx
lea edx, [eax + 2]
cmp dword [esi + 0xc], edx
jne 0x424669
lea edx, [ebx - 0x4f574756]
lea eax, [ebx + ecx]
add eax, 0xb0a8b8aa
and edx, ecx
add edx, edx
sub eax, edx
add al, 0x5a
jmp 0x4247c5
lea edx, [eax + 2]
cmp dword [esi + 0xc], edx
jne 0x4246b7
lea edx, [ebx - 0x62cdf79a]
and edx, ecx
add ecx, ebx
add ecx, 0x9d320866
add edx, edx
sub ecx, edx
add cl, 0x36
mov edi, eax
mov eax, ecx
jmp 0x4247c5
mov eax, dword [esi + 0x10]
lea edx, [eax + 2]
cmp dword [esi + 0xc], edx
jne 0x4246de
lea edx, [ebx + 0x482d9648]
lea eax, [ebx + ecx]
add eax, 0x482d9648
and edx, ecx
add edx, edx
sub eax, edx
add al, 8
jmp 0x424773
mov edi, dword [esi + 0x1c]
cmp dword [esi + 0xc], edi
mov eax, dword [esi + 0x20]
jne 0x424709
lea edx, [ebx + 0x1e8c1784]
lea eax, [ebx + ecx]
add eax, 0x1e8c1784
and edx, ecx
add edx, edx
sub eax, edx
add al, 0x64
jmp 0x424816
mov eax, dword [esi + 0x20]
cmp dword [esi + 0xc], eax
jne 0x424731
lea edx, [ebx - 0x7ea5f0e2]
and edx, ecx
lea eax, [ebx + ecx]
add eax, 0x815a0f1e
add edx, edx
sub eax, edx
add al, 0x2e
jmp 0x4247c2
cmp dword [esi + 0xc], edi
jne 0x4247a0
mov dword [esi + 0x1c], edi
lea edx, [ebx + 0x2dd22346]
lea eax, [ebx + ecx]
add eax, 0x2dd22346
and edx, ecx
add edx, edx
sub eax, edx
add al, 0x16
jmp 0x4244d8
lea edx, [eax + 7]
cmp dword [esi + 0xc], edx
jne 0x4247ca
lea edx, [ebx + 0x6de35eda]
lea eax, [ebx + ecx]
add eax, 0x6de35eda
and edx, ecx
add edx, edx
sub eax, edx
add al, 0xa
jmp 0x4247c5
lea edx, [eax + 6]
cmp dword [esi + 0xc], edx
jne 0x4247f4
lea edx, [ebx - 0x45be665c]
lea eax, [ebx + ecx]
add eax, 0xba4199a4
mov dword [esi + 0x14], eax
and edx, ecx
mov dword [esi + 0x18], edx
mov byte [esi + 0x20], 0x84
jmp 0x42443c
cmp dword [esi + 0xc], eax
jne 0x42482c
lea edx, [ebx - 0x40113b94]
lea eax, [ebx + ecx]
add eax, 0xbfeec46c
mov dword [esi + 0x14], eax
and edx, ecx
mov dword [esi + 0x18], edx
mov byte [esi + 0x20], 0xc
jmp 0x42443c
mov eax, dword [esi + 0x10]
lea edx, [eax + 5]
mov dword [esi + 0x18], edx
cmp dword [esi + 0xc], edx
jne 0x424853
lea edx, [ebx + 0x22bcbc06]
lea eax, [ebx + ecx]
add eax, 0x22bcbc06
and edx, ecx
add edx, edx
sub eax, edx
add al, 0xd6
jmp 0x424793
lea edx, [ebx + 0x64058f90]
lea eax, [ebx + ecx]
add eax, 0x64058f90
and edx, ecx
add edx, edx
sub eax, edx
add al, cl
add al, 0x10
lea edx, [ebx + 0x4c5e3aca]
and edx, ecx
add ecx, ebx
add ecx, 0x4c5e3aca
add edx, edx
sub ecx, edx
add cl, al
add cl, 0x7a
mov byte [esi + ebx + 0x230], cl
mov edx, dword [esi + 0x10]
add dword [esi + 0xc], edx
movzx ecx, al
not ecx
jmp 0x42481b
mov eax, dword [esi + 0x20]
cmp dword [esi + 0xc], eax
jne 0x4248a9
lea edx, [ebx - 0x30cb2fd2]
and edx, ecx
lea eax, [ebx + ecx]
add eax, 0xcf34d02e
add edx, edx
sub eax, edx
add al, 0xbe
mov edi, dword [esi + 0x10]
dec ebx
mov edx, edi
jmp 0x42481d
lea edx, [eax + 9]
cmp dword [esi + 0xc], edx
jne 0x42436e
mov dword [esi + 0x1c], edi
lea edx, [ebx + 0x3e94b54e]
lea eax, [ebx + ecx]
add eax, 0x3e94b54e
and edx, ecx
add edx, edx
sub eax, edx
add al, 0xde
jmp 0x4244d8
mov eax, dword [esi + 0x20]
cmp dword [esi + 0xc], eax
jne 0x4249cf
lea edx, [ebx + 0x5ba4468c]
lea eax, [ebx + ecx]
add eax, 0x5ba4468c
and edx, ecx
add edx, edx
sub eax, edx
add al, 0x2c
mov edx, dword [esi + 0x10]
add ecx, edx
add ebx, ecx
inc ebx
cmp ebx, 0x18
jb 0x424335
jmp 0x4249f1
mov eax, dword [esi + 0x18]
cmp dword [esi + 0xc], eax
jne 0x4248d0
lea edx, [ebx + 0x61517154]
lea eax, [ebx + ecx]
add eax, 0x61517154
and edx, ecx
add edx, edx
sub eax, edx
add al, 0xb4
jmp 0x424793
mov dword [esi + 0x1c], edi
lea edx, [eax + 4]
cmp dword [esi + 0xc], edx
jne 0x4248fd
lea edx, [ebx - 0x3be09712]
lea eax, [ebx + ecx]
add eax, 0xc41f68ee
mov dword [esi + 0x14], eax
and edx, ecx
mov dword [esi + 0x18], edx
mov byte [esi + 0x20], 0x7e
jmp 0x42443c
cmp dword [esi + 0xc], edi
jne 0x424948
mov edi, ecx
mov ecx, eax
lea edx, [ebx + 0x3d182f08]
lea eax, [ebx + edi]
add eax, 0x3d182f08
and edx, edi
add edx, edx
sub eax, edx
add al, 0xc8
jmp 0x424405
mov eax, dword [esi + 0x18]
cmp dword [esi + 0xc], eax
jne 0x42496e
lea edx, [ebx + 0x70977d16]
lea eax, [ebx + ecx]
add eax, 0x70977d16
and edx, ecx
add edx, edx
sub eax, edx
add al, 0x66
jmp 0x424793
mov eax, dword [esi + 0x10]
lea edx, [eax + 4]
cmp dword [esi + 0xc], edx
jne 0x424550
mov dword [esi + 0x1c], edi
lea edx, [ebx - 0x5be934dc]
lea eax, [ebx + ecx]
add eax, 0xa416cb24
and edx, ecx
add edx, edx
sub eax, edx
add al, 4
jmp 0x4244d8
mov edi, ecx
lea edx, [eax + 8]
cmp dword [esi + 0xc], edx
jne 0x4243b2
mov ecx, eax
lea edx, [ebx + 0x658215d6]
lea eax, [ebx + edi]
add eax, 0x658215d6
and edx, edi
add edx, edx
sub eax, edx
add al, 0x26
jmp 0x424405
mov dword [esi + 0x1c], edi
lea edx, [ebx - 0x6cabc6e4]
lea eax, [ebx + ecx]
add eax, 0x9354391c
and edx, ecx
add edx, edx
sub eax, edx
add al, al
add al, 0x78
jmp 0x4244d8
mov dword [esi + 0x1c], edx
lea edx, [eax + 4]
cmp dword [esi + 0xc], edx
jne 0x4249a2
lea edx, [ebx + 0x7fdd88d8]
lea eax, [ebx + ecx]
add eax, 0x7fdd88d8
and edx, ecx
add edx, edx
sub eax, edx
add al, 0x18
jmp 0x424793
mov eax, dword [esi + 0x10]
lea edx, [eax + 6]
cmp dword [esi + 0xc], edx
mov eax, dword [esi + 0x14]
jne 0x424575
mov dword [esi + 0x1c], edi
lea edx, [ebx + 0x11fa29fe]
lea eax, [ebx + ecx]
add eax, 0x11fa29fe
mov dword [esi + 0x14], eax
and edx, ecx
mov dword [esi + 0x18], edx
mov byte [esi + 0x20], 0xe
jmp 0x42443c
mov eax, dword [esi + 0x1c]
cmp dword [esi + 0xc], eax
mov eax, dword [esi + 0x14]
jne 0x4245a7
mov dword [esi + 0x1c], edi
lea edx, [ebx - 0x3d5d1d58]
lea eax, [ebx + ecx]
add eax, 0xc2a2e2a8
and edx, ecx
add edx, edx
sub eax, edx
add al, 0x68
jmp 0x4244d8
lea eax, [ebx + ecx]
add eax, 0xe55f9eae
add ebx, 0xe55f9eae
and ebx, ecx
add ebx, ebx
sub eax, ebx
add al, 0x3e
jmp 0x42431c
mov eax, 0x6bb632
jmp 0x4249fa
xor eax, eax
jmp 0x4249fa
mov eax, 0x1530af8
add eax, esi
add eax, 0x230
mov dword [esi + 0x34], eax
mov dword [esi + 0x1b8], 0x2e3bcf9c
mov dword [esi + 0x1bc], 0x42fc5139
mov dword [esi + 0x1c0], 0x574e564f
mov word [esi + 0x1c4], 0xf590
mov byte [esi + 0x1c6], 0xd4
xor eax, eax
mov dword [esi + 0x1cb], eax
mov dword [esi + 0x1c7], eax
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov ebx, dword [eax]
xor eax, eax
cmp edi, eax
ja 0x424ea3
mov dl, byte [esi + eax + 0x1b8]
movzx ecx, dl
mov dword [esi + 0xc], ecx
lea ecx, [ebx + 1]
mov dword [esi + 0x10], ecx
cmp edi, ecx
jae 0x424a97
cmp ebx, eax
ja 0x424eae
lea ecx, [edi + ebx]
mov dword [esi + 0x14], ecx
cmp ecx, eax
jbe 0x424b11
lea ecx, [ebx + 0x10]
cmp edi, ecx
jne 0x424bd8
mov ecx, ebx
jmp 0x424d37
je 0x424c0c
mov ecx, ebx
add ebx, 2
cmp edi, ebx
jne 0x424bae
mov dword [esi + 0x14], edi
lea ebx, [eax + 0x1bdc8529]
mov edi, dword [esi + 0xc]
and ebx, edi
add ebx, ebx
lea edx, [edi + eax]
add edx, 0x1bdc8529
sub edx, ebx
add dl, 0xe1
mov byte [esi + eax + 0x1b8], dl
not ecx
add ecx, eax
movzx eax, dl
sub ecx, eax
mov eax, ecx
mov ebx, dword [esi + 0x10]
lea ecx, [eax - 0xc8d151c]
and ecx, edi
lea edx, [eax + edi]
add edx, 0xf372eae4
add ecx, ecx
sub edx, ecx
add dl, 0xc4
mov byte [esi + eax + 0x1b8], dl
mov edi, dword [esi + 0x14]
sub eax, edi
inc edi
mov dl, byte [esi + eax + 0x1b6]
add eax, 0xfffffffe
jmp 0x424c0c
lea ecx, [ebx + 3]
cmp edi, ecx
jae 0x424c03
mov dword [esi + 0x18], edx
mov dword [esi + 0x20], ecx
mov dword [esi + 0x1c], ebx
lea ebx, [eax - 0x28699a45]
mov ecx, dword [esi + 0xc]
lea edx, [eax + ecx]
add edx, 0xd79665bb
and ebx, ecx
add ebx, ebx
sub edx, ebx
add dl, 0xe3
mov dword [esi + 0x28], edx
mov ecx, dword [esi + 0x1c]
lea ebx, [ecx + 6]
cmp edi, ebx
jbe 0x424c16
lea ebx, [eax + 0x5ed63d8f]
mov ecx, dword [esi + 0xc]
lea edx, [eax + ecx]
add edx, 0x5ed63d8f
and ebx, ecx
add ebx, ebx
sub edx, ebx
add dl, 0x17
mov dword [esi + 0x28], edx
mov edx, dword [esi + 0x18]
cmp edi, 9
ja 0x424ce6
cmp edi, dword [esi + 0x10]
mov ebx, dword [esi + 0x1c]
je 0x424c0c
cmp edi, dword [esi + 0x20]
jne 0x424e08
mov edx, ecx
lea ecx, [eax - 0x35203c42]
and ecx, edx
add edx, eax
add edx, 0xcadfc3be
add ecx, ecx
sub edx, ecx
add dl, 0xce
jmp 0x424df2
lea ebx, [ecx + 3]
cmp edi, ebx
jne 0x424c4c
lea ebx, [eax - 0x6bb66c6d]
mov edx, dword [esi + 0xc]
and ebx, edx
add edx, eax
add edx, 0x94499393
add ebx, ebx
sub edx, ebx
add dl, 0xfb
jmp 0x424c73
lea ecx, [ebx + 5]
cmp edi, ecx
jne 0x424c7a
lea ecx, [eax - 0x4fd9e744]
mov edi, dword [esi + 0xc]
lea edx, [eax + edi]
add edx, 0xb02618bc
and ecx, edi
add ecx, ecx
sub edx, ecx
add dl, 0xdc
jmp 0x424dcc
cmp edi, dword [esi + 0x10]
jne 0x424ca5
movzx ecx, dl
add ecx, ebx
jmp 0x424df7
cmp edi, dword [esi + 0x10]
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0x18]
jne 0x424d06
lea ebx, [eax - 0x427d11c3]
mov ecx, dword [esi + 0xc]
lea edx, [ecx + eax]
add edx, 0xbd82ee3d
and ebx, ecx
add ebx, ebx
sub edx, ebx
add dl, 0x55
mov byte [esi + eax + 0x1b8], dl
jmp 0x424d34
lea ebx, [ecx + 5]
cmp edi, ebx
jne 0x424d2d
lea ebx, [eax + 0x43765f09]
mov edx, dword [esi + 0xc]
and ebx, edx
add edx, eax
add edx, 0x43765f09
add ebx, ebx
sub edx, ebx
add dl, 0xc1
add edi, ecx
mov ebx, ecx
jmp 0x424df2
lea ecx, [ebx + 4]
cmp edi, ecx
jne 0x424d3f
lea ecx, [eax + 0x5f52e432]
mov edi, dword [esi + 0xc]
lea edx, [eax + edi]
add edx, 0x5f52e432
and ecx, edi
add ecx, ecx
sub edx, ecx
add dl, 0xa2
jmp 0x424def
mov dword [esi + 0x20], ecx
mov ecx, ebx
add ebx, 2
cmp edi, ebx
je 0x424aaa
mov dword [esi + 0x1c], ecx
lea ebx, [ecx + 4]
cmp edi, ebx
jne 0x424da5
lea ecx, [eax + 0x1b5fde86]
mov edi, dword [esi + 0xc]
lea edx, [eax + edi]
add edx, 0x1b5fde86
and ecx, edi
add ecx, ecx
sub edx, ecx
add dl, 0x56
mov ebx, dword [esi + 0x1c]
jmp 0x424def
lea edi, [eax - 0x6ae6ac08]
mov ebx, ecx
add ecx, eax
add ecx, 0x951953f8
and edi, ebx
add edi, edi
sub ecx, edi
add dl, cl
add dl, 0x38
jmp 0x424dc9
lea ebx, [ecx + 2]
cmp edi, ebx
jne 0x424d69
lea ecx, [eax + 0x1b896b67]
mov edi, dword [esi + 0xc]
lea edx, [eax + edi]
add edx, 0x1b896b67
and ecx, edi
add ecx, ecx
sub edx, ecx
add dl, 0x2f
jmp 0x424dc9
lea ebx, [ecx + 7]
cmp edi, ebx
jne 0x424d93
mov ecx, dword [esi + 0x10]
dec eax
mov ebx, ecx
jmp 0x424df9
lea ecx, [ebx + 3]
cmp edi, ecx
jne 0x424a40
lea ecx, [eax + 0xe7fafa8]
mov edx, dword [esi + 0xc]
and ecx, edx
add edx, eax
add edx, 0xe7fafa8
add ecx, ecx
sub edx, ecx
add dl, 0x68
jmp 0x424df2
mov ecx, dword [esi + 0x20]
cmp edi, ecx
jne 0x424e2b
lea ecx, [eax + 0x79e30253]
mov edx, dword [esi + 0xc]
and ecx, edx
add edx, eax
add edx, 0x79e30253
add ecx, ecx
sub edx, ecx
add dl, 0xbb
mov ebx, dword [esi + 0x1c]
jmp 0x424df2
lea ebx, [ecx + 6]
cmp edi, ebx
mov ebx, ecx
jne 0x424a6f
jmp 0x424c25
cmp edi, dword [esi + 0x20]
jne 0x424e42
lea ecx, [eax - 0x35735604]
mov edi, dword [esi + 0xc]
lea edx, [eax + edi]
add edx, 0xca8ca9fc
and ecx, edi
add ecx, ecx
sub edx, ecx
add dl, 0x1c
mov ebx, dword [esi + 0x1c]
lea edi, [eax + 0x6cafb9b3]
mov ecx, dword [esi + 0xc]
and edi, ecx
add ecx, eax
add ecx, 0x6cafb9b3
add edi, edi
sub ecx, edi
add cl, dl
add cl, 0x1b
mov byte [esi + eax + 0x1b8], cl
mov edi, dword [esi + 0x14]
movzx ecx, dl
not ecx
add eax, ecx
inc eax
cmp eax, 0x17
jb 0x424a50
jmp 0x424eaa
lea edx, [ebx + 5]
cmp edi, edx
jne 0x424e65
mov edi, ecx
lea ecx, [eax + 0x7a0c8f34]
lea edx, [eax + edi]
add edx, 0x7a0c8f34
and ecx, edi
add ecx, ecx
sub edx, ecx
add dl, 0x94
jmp 0x424def
mov ecx, dword [esi + 0x1c]
lea ebx, [ecx + 5]
cmp edi, ebx
jne 0x424e8d
mov dword [esi + 0x14], edi
mov ebx, ecx
mov edi, dword [esi + 0xc]
jmp 0x424add
mov dword [esi + 0x18], edx
lea ebx, [eax - 0x50a9a7a9]
mov ecx, dword [esi + 0xc]
lea edx, [eax + ecx]
add edx, 0xaf565857
and ebx, ecx
add ebx, ebx
sub edx, ebx
add dl, 0x9f
jmp 0x424b40
lea edx, [ebx + 7]
cmp edi, edx
je 0x424a90
lea edx, [ebx + 2]
cmp edi, edx
mov ecx, dword [esi + 0x10]
je 0x424d37
mov ecx, dword [esi + 0x28]
mov byte [esi + eax + 0x1b8], cl
jmp 0x424df9
lea ebx, [ecx + 8]
cmp edi, ebx
mov ecx, dword [esi + 0xc]
jne 0x424b72
mov ebx, dword [esi + 0x1c]
jmp 0x424c0c
mov eax, 0xa2bf5f
jmp 0x424eb3
xor eax, eax
jmp 0x424eb3
mov eax, 0x14c59a4
add eax, esi
add eax, 0x1b8
mov dword [esi + 0x38], eax
mov dword [esi + 0xc0], 0xeffbcd9c
mov dword [esi + 0xc4], 0xbfa6f2e6
mov byte [esi + 0xc8], 0x9e
lea eax, [esi + 0xc9]
pxor xmm0, xmm0
movdqu xmmword [eax], xmm0
mov dword [esi + 0x14], eax
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov ecx, edi
mov edx, dword [eax]
xor edi, edi
mov eax, 0x1789c57
cmp ecx, edi
ja 0x4255f7
mov dword [esi + 0xc], ecx
movzx ebx, byte [esi + edi + 0xc0]
lea eax, [edi - 0x2f54c26d]
lea ecx, [edi + ebx]
add ecx, 0xd0ab3d93
and eax, ebx
add eax, eax
sub ecx, eax
lea eax, [edi + 0x1e0c0d0f]
mov dword [esi + 0x1c], edx
lea edx, [edi + ebx]
add edx, 0x1e0c0d0f
and eax, ebx
add eax, eax
sub edx, eax
lea eax, [edi + 0xa4d7885]
and eax, ebx
add eax, eax
mov dword [esi + 0x2c], ebx
add ebx, edi
add ebx, 0xa4d7885
sub ebx, eax
add cl, 0xfb
add dl, 0x97
mov dword [esi + 0x28], edx
mov edx, dword [esi + 0x1c]
add bl, 0x5d
mov dword [esi + 0x30], ebx
mov dword [esi + 0x10], edi
mov dword [esi + 0x24], ecx
lea ebx, [edx + 1]
mov eax, ecx
mov ecx, dword [esi + 0xc]
cmp ecx, ebx
mov dword [esi + 0x1c], ebx
jb 0x424fb1
cmp ebx, ecx
je 0x42515c
lea eax, [edx + 2]
cmp eax, ecx
je 0x425187
lea eax, [edx + 4]
cmp eax, ecx
je 0x4251df
lea ecx, [edx + 6]
mov eax, dword [esi + 0x14]
cmp ecx, dword [esi + 0xc]
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 0x10]
je 0x42524e
cmp edx, edi
ja 0x4255e7
mov byte [esi + 0x20], al
mov eax, ecx
lea ecx, [edx + 5]
mov edi, edx
mov edx, dword [esi + 0x28]
mov byte [esi + 0x18], dl
mov edx, edi
mov dword [esi + 0x14], ecx
cmp eax, ecx
mov ecx, eax
jb 0x42502a
cmp ebx, ecx
je 0x425200
lea ecx, [edx + 2]
cmp ecx, dword [esi + 0xc]
mov ecx, dword [esi + 0xc]
je 0x42526e
lea ecx, [edx + 3]
cmp ecx, dword [esi + 0xc]
mov ecx, dword [esi + 0xc]
je 0x425291
lea ecx, [edx + 4]
cmp ecx, dword [esi + 0xc]
mov ecx, dword [esi + 0xc]
je 0x4252ee
cmp dword [esi + 0x14], ecx
je 0x42530f
lea ecx, [edx + 9]
mov al, byte [esi + 0x20]
mov byte [esi + 0x18], al
cmp ecx, dword [esi + 0xc]
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 0x10]
je 0x425338
mov edi, ecx
mov ebx, edx
add ecx, edx
cmp ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x10]
jbe 0x42509e
cmp dword [esi + 0x1c], edi
mov ecx, edi
je 0x4250d9
lea eax, [ebx + 3]
cmp eax, ecx
mov edi, edx
je 0x4250fb
cmp dword [esi + 0x14], ecx
je 0x42511b
mov edx, ebx
lea eax, [ebx + 8]
cmp eax, ecx
je 0x42513f
lea ecx, [edx + 9]
lea eax, [edx + 0x19]
cmp ecx, eax
jb 0x4255c4
lea eax, [edx + 0x1c]
cmp ecx, eax
jb 0x425599
mov dword [esi + 0xc], ecx
add edx, 0x13
lea eax, [edx - 0xa]
mov ecx, dword [esi + 0x30]
mov dword [esi + 0x14], ecx
cmp eax, edi
mov ecx, dword [esi + 0x24]
jbe 0x424f6f
jmp 0x4255ee
mov edx, ebx
lea ecx, [ebx + 0xa]
inc ebx
cmp edi, ecx
mov ecx, edi
jae 0x4252bb
cmp ebx, ecx
mov edi, dword [esi + 0x10]
jne 0x425366
lea eax, [edi + 0x5a24272d]
mov edx, dword [esi + 0x2c]
lea ebx, [edi + edx]
add ebx, 0x5a24272d
and eax, edx
add eax, eax
sub ebx, eax
add bl, 0xc5
jmp 0x42521e
lea eax, [edx - 0x566b8ad6]
mov edi, dword [esi + 0x2c]
lea ebx, [edx + edi]
add ebx, 0xa994752a
mov edx, edi
and eax, edi
add eax, eax
sub ebx, eax
add bl, 0xda
jmp 0x42521e
lea eax, [edi + 0x4aeaf050]
mov edx, dword [esi + 0x2c]
lea ebx, [edi + edx]
add ebx, 0x4aeaf050
and eax, edx
add eax, eax
sub ebx, eax
add bl, 0xd0
jmp 0x425398
lea eax, [edi - 0x13be948a]
mov edx, dword [esi + 0x2c]
and eax, edx
add edx, edi
add edx, 0xec416b76
add eax, eax
sub edx, eax
add dl, 0xc6
mov dword [esi + 0x1c], ebx
mov ebx, edx
jmp 0x425398
lea eax, [edi + 0x12f1d334]
mov ebx, dword [esi + 0x2c]
lea ecx, [edi + ebx]
add ecx, 0x12f1d334
and eax, ebx
add eax, eax
sub ecx, eax
add cl, 0x94
jmp 0x4251a2
lea eax, [edi + 0x7201b8b9]
mov dword [esi + 0x14], eax
mov ebx, dword [esi + 0x2c]
lea eax, [edi + ebx]
add eax, 0x7201b8b9
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x14]
and eax, ebx
add eax, eax
sub dword [esi + 0x24], eax
mov eax, dword [esi + 0x24]
add al, 0xf1
jmp 0x42535e
lea eax, [edi + 0x135833df]
mov ebx, dword [esi + 0x2c]
lea ecx, [edi + ebx]
add ecx, 0x135833df
and eax, ebx
add eax, eax
sub ecx, eax
add cl, 0xe7
mov dword [esi + 0x24], ecx
lea eax, [edi + 0x83dfa04]
and eax, ebx
mov ecx, ebx
lea ecx, [edi + ebx]
add ecx, 0x83dfa04
add eax, eax
sub ecx, eax
add cl, 0xe4
mov byte [esi + edi + 0xc0], cl
mov ecx, dword [esi + 0xc]
sub edi, ecx
inc ecx
movzx ebx, byte [esi + edi + 0xbe]
add edi, 0xfffffffe
mov eax, dword [esi + 0x24]
jmp 0x42535e
lea eax, [edi - 0x8a45aaf]
mov ebx, dword [esi + 0x2c]
add edi, ebx
add edi, 0xf75ba551
and eax, ebx
mov ebx, edi
add eax, eax
sub ebx, eax
add bl, 0xc9
jmp 0x42530b
mov edi, dword [esi + 0x10]
lea eax, [edi - 0x409d77cb]
mov edx, dword [esi + 0x2c]
lea ebx, [edi + edx]
add ebx, 0xbf628835
and eax, edx
add eax, eax
sub ebx, eax
add bl, 0x8d
mov dword [esi + 0x1c], ecx
mov eax, dword [esi + 0x10]
lea ecx, [eax - 0xb1a39db]
mov eax, dword [esi + 0x10]
add eax, edx
add eax, 0xf4e5c625
and ecx, edx
add ecx, ecx
sub eax, ecx
mov edi, dword [esi + 0x10]
add al, 0xfd
mov byte [esi + edi + 0xc0], al
mov ecx, dword [esi + 0xc]
jmp 0x425398
lea eax, [edi - 0x24a0e93d]
mov edx, dword [esi + 0x2c]
lea ebx, [edi + edx]
add ebx, 0xdb5f16c3
and eax, edx
add eax, eax
sub ebx, eax
add bl, 0xab
jmp 0x425398
mov edi, dword [esi + 0x10]
lea eax, [edi + 0x60b9035b]
mov edx, dword [esi + 0x2c]
lea ebx, [edi + edx]
add ebx, 0x60b9035b
and eax, edx
add eax, eax
sub ebx, eax
add bl, 0x83
jmp 0x425398
mov ebx, dword [esi + 0x10]
lea eax, [ebx + 0x20f7e81]
mov edi, dword [esi + 0x2c]
and eax, edi
add edi, ebx
add edi, 0x20f7e81
mov dword [esi + 0x24], edi
mov edi, ebx
mov ebx, dword [esi + 0x24]
add eax, eax
sub ebx, eax
add bl, 0x79
jmp 0x425395
cmp ebx, ecx
jne 0x4253ae
mov edi, dword [esi + 0x10]
lea eax, [edi + 0x3c181a1e]
mov dword [esi + 0xc], eax
mov ebx, dword [esi + 0x2c]
lea eax, [edi + ebx]
add eax, 0x3c181a1e
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0xc]
and eax, ebx
add eax, eax
sub dword [esi + 0x24], eax
mov eax, dword [esi + 0x24]
add al, 0x2e
jmp 0x42535e
mov ebx, dword [esi + 0x10]
lea eax, [ebx + 0x44bc74cd]
mov edi, dword [esi + 0x2c]
add ebx, edi
add ebx, 0x44bc74cd
and eax, edi
add eax, eax
sub ebx, eax
add bl, 0x65
add ecx, edx
jmp 0x42532c
mov ebx, dword [esi + 0x10]
lea eax, [ebx - 0x19ed100d]
mov edi, dword [esi + 0x2c]
add ebx, edi
add ebx, 0xe612eff3
and eax, edi
add eax, eax
sub ebx, eax
add bl, 0x5b
movzx eax, bl
not eax
mov edi, dword [esi + 0x10]
add edi, eax
jmp 0x42539c
lea eax, [edi - 0x35e99e9b]
mov dword [esi + 0x14], eax
mov ebx, dword [esi + 0x2c]
lea eax, [edi + ebx]
add eax, 0xca166165
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x14]
and eax, ebx
add eax, eax
sub dword [esi + 0x24], eax
mov eax, dword [esi + 0x24]
add al, 0x3d
add ebx, edx
add edi, ebx
mov ebx, eax
jmp 0x42539c
lea eax, [edx + 2]
cmp eax, ecx
jne 0x42541b
lea eax, [edi - 0x632ee287]
mov ebx, edi
mov edi, dword [esi + 0x2c]
and eax, edi
add edi, ebx
add edi, 0x9cd11d79
mov dword [esi + 0x24], edi
mov edi, ebx
mov ebx, dword [esi + 0x24]
add eax, eax
sub ebx, eax
add bl, 0xb1
mov dword [esi + 0x1c], edx
dec edi
mov edx, dword [esi + 0x1c]
inc edi
mov dword [esi + 0x14], ebx
cmp edi, 0x19
jb 0x424efb
jmp 0x4255f5
lea ecx, [edx + 2]
cmp ecx, dword [esi + 0xc]
mov ecx, dword [esi + 0xc]
jne 0x425441
mov dword [esi + 0x1c], ebx
mov ebx, dword [esi + 0x10]
lea eax, [ebx + 0x7ec5106a]
mov edi, dword [esi + 0x2c]
lea ecx, [ebx + edi]
add ecx, 0x7ec5106a
and eax, edi
add eax, eax
sub ecx, eax
mov dword [esi + 0x24], ecx
lea eax, [ebx + 0x3792bc71]
and eax, edi
add eax, eax
lea ecx, [ebx + edi]
add ecx, 0x3792bc71
sub ecx, eax
add cl, 0xe9
mov byte [esi + ebx + 0xc0], cl
movzx eax, cl
mov edi, ebx
mov ebx, dword [esi + 0x2c]
sub edi, eax
not edx
add edi, edx
mov eax, dword [esi + 0x24]
add al, 0x1a
mov dword [esi + 0x24], eax
mov edx, dword [esi + 0x1c]
jmp 0x4251a5
cmp dword [esi + 0x14], ecx
jne 0x425498
lea eax, [edi - 0x2081ec3b]
mov ebx, edi
mov edi, dword [esi + 0x2c]
add ebx, edi
add ebx, 0xdf7e13c5
and eax, edi
add eax, eax
sub ebx, eax
add bl, 0x9d
jmp 0x42530b
cmp dword [esi + 0x14], ecx
mov edi, ecx
jne 0x4254c0
mov ebx, dword [esi + 0x10]
lea eax, [ebx + 0x62c881dc]
mov dword [esi + 0xc], edi
mov edi, dword [esi + 0x2c]
lea ecx, [ebx + edi]
add ecx, 0x62c881dc
and eax, edi
add eax, eax
sub ecx, eax
mov dword [esi + 0x24], ecx
lea ecx, [ebx - 0x69c3beb5]
and ecx, edi
lea eax, [ebx + edi]
add eax, 0x963c414b
add ecx, ecx
sub eax, ecx
mov ecx, ebx
mov ebx, dword [esi + 0x24]
add bl, 0xfc
add al, bl
add al, 0xf3
mov byte [esi + ecx + 0xc0], al
mov ecx, dword [esi + 0xc]
jmp 0x42530b
lea eax, [edx + 3]
cmp eax, ecx
jne 0x4254fd
lea eax, [edi - 0x7f2b7115]
mov ebx, edi
mov edi, dword [esi + 0x2c]
add ebx, edi
add ebx, 0x80d48eeb
and eax, edi
add eax, eax
sub ebx, eax
add bl, 0x93
jmp 0x42532c
lea ecx, [edx + 4]
mov al, byte [esi + 0x18]
mov dword [esi + 0x24], eax
cmp ecx, edi
mov ecx, edi
jne 0x4250ae
mov ebx, dword [esi + 0x10]
lea eax, [ebx + 0x41efd02]
mov edi, dword [esi + 0x2c]
and eax, edi
add edi, ebx
add edi, 0x41efd02
mov dword [esi + 0x24], edi
mov edi, ebx
mov ebx, dword [esi + 0x24]
add eax, eax
sub ebx, eax
add bl, 0xf2
jmp 0x425395
lea eax, [edx + 8]
cmp eax, ecx
jne 0x42552f
lea eax, [edi + 0x64d8005d]
mov dword [esi + 0xc], eax
mov ebx, dword [esi + 0x2c]
lea eax, [edi + ebx]
add eax, 0x64d8005d
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0xc]
and eax, ebx
add eax, eax
sub dword [esi + 0x24], eax
mov eax, dword [esi + 0x24]
add al, 0x75
jmp 0x42535e
lea eax, [edx + 7]
cmp eax, ecx
jne 0x42555f
lea eax, [edi + 0x40371720]
mov ebx, edi
mov edi, dword [esi + 0x2c]
and eax, edi
add edi, ebx
add edi, 0x40371720
mov dword [esi + 0x24], edi
mov edi, ebx
mov ebx, dword [esi + 0x24]
add eax, eax
sub ebx, eax
add bl, 0x20
jmp 0x425395
test edx, edx
je 0x425588
mov dword [esi + 0x1c], ebx
lea eax, [edi + 0x243a8892]
mov edx, dword [esi + 0x2c]
lea ebx, [edi + edx]
add ebx, 0x243a8892
and eax, edx
add eax, eax
sub ebx, eax
add bl, bl
add bl, 4
jmp 0x425221
mov ebx, dword [esi + 0x24]
mov byte [esi + edi + 0xc0], bl
xor edx, edx
jmp 0x42539c
mov eax, dword [esi + 0x2c]
lea ecx, [edi + eax]
add ecx, 0x68f6fd5f
add edi, 0x68f6fd5f
and edi, eax
add edi, edi
sub ecx, edi
add cl, 0x67
mov dword [esi + 0x14], ecx
mov ecx, edx
add edx, 0x13
add ecx, 9
jmp 0x424ef9
mov eax, dword [esi + 0x2c]
lea ecx, [edi + eax]
add ecx, 0xc7a08239
add edi, 0xc7a08239
and edi, eax
add edi, edi
sub ecx, edi
add cl, 0x71
mov dword [esi + 0x14], ecx
jmp 0x424ee9
mov eax, 0x14d5ec4
jmp 0x4255f7
mov eax, 0x1789c57
jmp 0x4255f7
xor eax, eax
add eax, esi
add eax, 0xc0
mov dword [esi + 0x20], eax
mov dword [esi + 0x1d0], 0xe10e0b05
mov word [esi + 0x1d4], 0xe5c4
lea eax, [esi + 0x1d6]
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 7], ecx
call fcn.0046d640
mov ebx, dword [eax]
call fcn.0046d646
mov ecx, dword [eax]
xor eax, eax
cmp ebx, eax
ja 0x425948
mov dl, byte [esi + eax + 0x1d0]
mov byte [esi + 0x14], dl
movzx edi, dl
lea edx, [ecx + 1]
cmp ebx, edx
jae 0x4256bc
cmp ecx, eax
ja 0x425953
mov dword [esi + 0x10], edx
mov dword [esi + 0xc], edi
lea edi, [ebx + ecx]
cmp edi, eax
mov edx, ebx
jbe 0x425703
lea ebx, [ecx + 2]
cmp edx, ebx
mov ebx, edx
je 0x4258e1
lea edx, [ecx + 6]
mov dword [esi + 0x18], edx
mov edx, ebx
mov ebx, 0x522886b0
cmp edx, dword [esi + 0x18]
je 0x4257c1
lea ebx, [ecx + 0x10]
cmp edx, ebx
mov ebx, edx
jne 0x425855
mov edi, ebx
lea ebx, [eax + 0x539327e8]
mov edx, dword [esi + 0xc]
and ebx, edx
add edx, eax
add edx, 0x539327e8
add ebx, ebx
sub edx, ebx
add dl, 0xa8
jmp 0x425847
je 0x425766
mov dword [esi + 0x10], edx
mov dword [esi + 0xc], edi
mov edx, ebx
lea ebx, [ecx + 2]
cmp edx, ebx
je 0x42586d
lea ebx, [ecx + 3]
cmp edx, ebx
jne 0x425808
lea ebx, [eax + 0x7ca76b4]
mov edi, dword [esi + 0xc]
and ebx, edi
add edi, eax
add edi, 0x7ca76b4
add ebx, ebx
sub edi, ebx
mov ebx, edi
add bl, 0x14
add edx, ecx
jmp 0x425843
lea ebx, [ecx + 6]
cmp edx, ebx
mov ebx, edx
jae 0x425761
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], ebx
lea ebx, [eax + 0xb5509c]
mov edi, dword [esi + 0xc]
lea edx, [eax + edi]
add edx, 0xb5509c
and ebx, edi
add ebx, ebx
sub edx, ebx
add dl, 0xbc
mov edi, edx
mov ebx, dword [esi + 0x1c]
cmp ebx, dword [esi + 0x10]
jne 0x42576e
lea edx, [eax + 0x48f36ec4]
mov edi, dword [esi + 0xc]
lea ecx, [eax + edi]
add ecx, 0x48f36ec4
and edx, edi
add edx, edx
sub ecx, edx
add cl, 0xa4
mov byte [esi + eax + 0x1d0], cl
mov ecx, dword [esi + 0x10]
jmp 0x4258e1
cmp ebx, dword [esi + 0x10]
jne 0x4257a0
mov dl, byte [esi + 0x14]
jmp 0x4258cf
lea ebx, [ecx + 4]
cmp dword [esi + 0x1c], ebx
mov edx, dword [esi + 0x1c]
jne 0x425820
lea edi, [eax + 0x32495b44]
mov ebx, dword [esi + 0xc]
lea edx, [eax + ebx]
add edx, 0x32495b44
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0x24
mov edi, dword [esi + 0x18]
jmp 0x425847
mov edx, ebx
lea ebx, [ecx + 3]
cmp edx, ebx
je 0x42586d
lea ebx, [ecx + 4]
mov dword [esi + 0x18], ebx
mov ebx, 0x24d45fb0
cmp edx, dword [esi + 0x18]
jne 0x4258d8
add ebx, eax
mov edx, dword [esi + 0xc]
mov dword [esi + 0x14], ecx
lea ecx, [ebx + edx]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0x14]
and ebx, edx
add ebx, ebx
sub dword [esi + 0x10], ebx
mov dword [esi + 0x18], edi
lea edi, [eax + 0x4a5e0ffc]
and edi, edx
lea ebx, [eax + edx]
add ebx, 0x4a5e0ffc
add edi, edi
sub ebx, edi
mov edi, dword [esi + 0x18]
mov edx, dword [esi + 0x10]
add dl, 0x30
add bl, dl
add bl, 0x1c
mov byte [esi + eax + 0x1d0], bl
jmp 0x425847
lea ebx, [ecx + 5]
cmp edx, ebx
mov edi, dword [esi + 0xc]
mov ebx, edx
mov edx, dword [esi + 0x10]
jne 0x425650
jmp 0x4258e1
lea ebx, [ecx + 5]
cmp edx, ebx
jne 0x425862
lea ebx, [eax + 0x33b3fc7c]
mov edi, dword [esi + 0xc]
and ebx, edi
add edi, eax
add edi, 0x33b3fc7c
add ebx, ebx
sub edi, ebx
mov ebx, edi
add bl, 0x9c
mov edi, edx
mov edx, ebx
movzx edx, dl
not edx
add eax, edx
mov ebx, edi
jmp 0x4258e2
cmp ebx, dword [esi + 0x10]
mov dl, byte [esi + 0x14]
je 0x4258cf
jmp 0x425624
lea ebx, [ecx + 7]
cmp edx, ebx
jne 0x4258ee
mov dword [esi + 0x1c], edx
lea ebx, [eax + 0x4bc8b134]
mov edi, dword [esi + 0xc]
and ebx, edi
add ebx, ebx
lea edx, [edi + eax]
add edx, 0x4bc8b134
sub edx, ebx
add dl, 0x94
mov byte [esi + eax + 0x1d0], dl
not ecx
add ecx, eax
movzx eax, dl
sub ecx, eax
mov eax, ecx
mov ecx, dword [esi + 0x10]
lea edx, [eax + 0x4c7e01d0]
and edx, edi
lea ebx, [eax + edi]
add ebx, 0x4c7e01d0
add edx, edx
sub ebx, edx
add bl, 0x50
mov byte [esi + eax + 0x1d0], bl
mov ebx, dword [esi + 0x1c]
sub eax, ebx
inc ebx
mov dl, byte [esi + eax + 0x1ce]
add eax, 0xfffffffe
movzx edx, dl
add edx, ecx
add eax, edx
jmp 0x4258e2
lea ebx, [ecx + 2]
cmp edx, ebx
mov ebx, edx
jne 0x425907
dec eax
inc eax
cmp eax, 0x11
jb 0x425634
jmp 0x42594f
lea ebx, [ecx + 9]
cmp edx, ebx
mov ebx, edx
je 0x425766
lea edx, [ecx + 2]
cmp ebx, edx
jne 0x42592d
mov edi, dword [esi + 0xc]
jmp 0x4258a0
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], ebx
lea ebx, [eax + 0xedf9ccc]
mov edi, dword [esi + 0xc]
lea edx, [eax + edi]
add edx, 0xedf9ccc
and ebx, edi
add ebx, ebx
sub edx, ebx
add dl, 0x6c
jmp 0x42572d
lea edx, [ecx + 3]
cmp ebx, edx
je 0x4258e1
cmp ecx, 2
ja 0x425737
mov edx, edi
mov byte [esi + eax + 0x1d0], dl
jmp 0x4258e2
mov eax, 0x47796c
jmp 0x425958
xor eax, eax
jmp 0x425958
mov eax, 0x15228d0
add eax, esi
add eax, 0x1d0
mov dword [esi + 0x1c], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov edi, eax
mov ecx, dword [esi + 0x50]
mov eax, closesocket
sub eax, ecx
cmp eax, edi
jb 0x42752c
mov edx, dword [esi + 0x40]
mov eax, dword [esi + 0x54]
mov dword [esi + 0xa8], 0
mov dword [esi + 0x18], ecx
add ecx, edi
mov dword [esi + 0x10], 0xf
lea ebx, [esi + 0xa8]
cmp ecx, 0x10
mov dword [esi + 0x14], ecx
jb 0x425a00
mov dword [esi + 0x28], eax
mov eax, ecx
or eax, 0xf
mov dword [esi + 0xc], edx
js 0x4259da
cmp eax, 0x17
mov ebx, 0x16
mov dword [esi + 0x10], eax
cmovae ebx, eax
lea eax, [ebx + 1]
cmp ebx, 0xfff
jae 0x4259e6
mov dword [esi + 0x10], ebx
push eax
call fcn.004716fe
jmp 0x4259ec
mov dword [esi + 0x10], closesocket
mov eax, closesocket
push eax
call fcn.0040130b
add esp, 4
mov ebx, eax
mov dword [esi + 0xa8], eax
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x28]
cmp eax, 0x10
lea eax, [esi + 0x40]
cmovb edx, eax
mov dword [esi + 0xc], edx
mov dword [esi + 0xb8], ecx
mov eax, dword [esi + 0x10]
mov dword [esi + 0xbc], eax
push edi
push dword [esi + 0x1c]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, ebx
push dword [esi + 0x18]
push dword [esi + 0xc]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x14]
mov byte [ebx + eax], 0
push dword [esi + 0x20]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ecx, eax
mov ebx, dword [esi + 0xb8]
mov edi, dword [esi + 0xbc]
mov eax, edi
sub eax, ebx
cmp eax, ecx
jae 0x425b3f
mov eax, closesocket
sub eax, ebx
cmp eax, ecx
jb 0x42752c
mov dword [esi + 0x14], ecx
add ecx, ebx
mov dword [esi + 0xc], ecx
or ecx, 0xf
mov dword [esi + 0x10], closesocket
mov eax, closesocket
js 0x425abe
mov edx, edi
shr edx, 1
mov eax, edi
mov edi, edx
xor edi, 0x7fffffff
cmp edi, eax
mov edi, eax
mov eax, closesocket
jb 0x425abe
add edx, edi
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x426824
mov dword [esi + 0x10], edx
push eax
call fcn.0040130b
add esp, 4
mov ecx, eax
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
mov dword [esi + 0xb8], eax
mov dword [esi + 0xbc], edx
cmp edi, 0x10
jb 0x425b73
mov eax, dword [esi + 0xa8]
push ebx
mov dword [esi + 0x1c], eax
push eax
push ecx
mov dword [esi + 0x10], ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, dword [esi + 0x10]
push dword [esi + 0x14]
push dword [esi + 0x20]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [esi + 0x10]
mov ebx, ecx
mov eax, dword [esi + 0xc]
mov byte [ecx + eax], 0
lea ecx, [edi + 1]
cmp ecx, 0x1000
jb 0x425ba0
mov ecx, dword [esi + 0x1c]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x427531
add edi, 0x24
mov ecx, edi
jmp 0x425ba3
mov edx, edi
mov edi, ecx
add edi, ebx
mov dword [esi + 0xb8], edi
lea eax, [esi + 0xa8]
cmp edx, 0x10
jb 0x425b5c
mov eax, dword [esi + 0xa8]
add ebx, eax
push ecx
push dword [esi + 0x20]
push ebx
mov ebx, eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebx + edi], 0
jmp 0x425bb5
push ebx
lea eax, [esi + 0xa8]
push eax
push ecx
mov edi, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, edi
push dword [esi + 0x14]
push dword [esi + 0x20]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0xc]
mov byte [edi + eax], 0
jmp 0x425baf
mov eax, dword [esi + 0x1c]
push ecx
push eax
call fcn.00471733
add esp, 8
mov edi, ebx
mov dword [esi + 0xa8], edi
movsd xmm0, qword [esi + 0xb8]
movsd qword [esi + 0x110], xmm0
movups xmm0, xmmword [esi + 0xa8]
movaps xmmword [esi + 0x100], xmm0
mov dword [esi + 0xb8], 0
mov dword [esi + 0xbc], 0xf
mov byte [esi + 0xa8], 0
mov ecx, dword [esi + 0x70]
cmp dword [esi + 0x74], 0x10
lea edx, [esi + 0x60]
jb 0x425bfd
mov edx, dword [esi + 0x60]
mov edi, dword [esi + 0x110]
mov eax, dword [esi + 0x114]
mov dword [esi + 0xc], eax
sub eax, edi
cmp eax, ecx
jae 0x425cf3
mov eax, closesocket
sub eax, edi
cmp eax, ecx
jb 0x42752c
mov dword [esi + 0x18], edx
mov dword [esi + 0x1c], ecx
add ecx, edi
mov dword [esi + 0x10], ecx
or ecx, 0xf
mov dword [esi + 0x14], closesocket
mov eax, closesocket
js 0x425c72
mov eax, dword [esi + 0xc]
mov edx, eax
shr edx, 1
mov ebx, edx
xor ebx, 0x7fffffff
cmp ebx, eax
mov eax, closesocket
jb 0x425c72
add edx, dword [esi + 0xc]
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x426842
mov dword [esi + 0x14], edx
push eax
call fcn.0040130b
add esp, 4
mov ecx, eax
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov dword [esi + 0x110], eax
mov dword [esi + 0x114], edx
cmp dword [esi + 0xc], 0x10
jb 0x425d29
mov eax, dword [esi + 0x100]
push edi
mov dword [esi + 0x14], eax
push eax
push ecx
mov ebx, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, ebx
push dword [esi + 0x1c]
push dword [esi + 0x18]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edi, ebx
mov eax, dword [esi + 0x10]
mov byte [ebx + eax], 0
mov eax, dword [esi + 0xc]
lea ecx, [eax + 1]
cmp ecx, 0x1000
jb 0x425d56
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x427531
mov ecx, dword [esi + 0xc]
add ecx, 0x24
jmp 0x425d59
lea ebx, [edi + ecx]
mov eax, ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x110], ebx
lea ebx, [esi + 0x100]
cmp dword [esi + 0xc], 0x10
jb 0x425d13
mov ebx, dword [esi + 0x100]
add edi, ebx
push ecx
push edx
push edi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov eax, dword [esi + 0x10]
mov byte [ebx + eax], 0
jmp 0x425d6b
push edi
lea eax, [esi + 0x100]
push eax
push ecx
mov ebx, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, ebx
push dword [esi + 0x1c]
push dword [esi + 0x18]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x10]
mov byte [ebx + eax], 0
jmp 0x425d65
mov eax, dword [esi + 0x14]
push ecx
push eax
call fcn.00471733
add esp, 8
mov ebx, edi
mov dword [esi + 0x100], ebx
movsd xmm0, qword [esi + 0x110]
movsd qword [esi + 0x130], xmm0
movaps xmm0, xmmword [esi + 0x100]
movaps xmmword [esi + 0x120], xmm0
mov dword [esi + 0x110], 0
mov dword [esi + 0x114], 0xf
mov byte [esi + 0x100], 0
push dword [esi + 0x38]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ecx, eax
mov ebx, dword [esi + 0x130]
mov edi, dword [esi + 0x134]
mov eax, edi
sub eax, ebx
cmp eax, ecx
jae 0x425ea3
mov eax, closesocket
sub eax, ebx
cmp eax, ecx
jb 0x42752c
mov dword [esi + 0x14], ecx
add ecx, ebx
mov dword [esi + 0xc], ecx
or ecx, 0xf
mov dword [esi + 0x10], closesocket
mov eax, closesocket
js 0x425e22
mov edx, edi
shr edx, 1
mov eax, edi
mov edi, edx
xor edi, 0x7fffffff
cmp edi, eax
mov edi, eax
mov eax, closesocket
jb 0x425e22
add edx, edi
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x426860
mov dword [esi + 0x10], edx
push eax
call fcn.0040130b
add esp, 4
mov ecx, eax
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
mov dword [esi + 0x130], eax
mov dword [esi + 0x134], edx
cmp edi, 0x10
jb 0x425ed7
mov eax, dword [esi + 0x120]
push ebx
mov dword [esi + 0x1c], eax
push eax
push ecx
mov dword [esi + 0x10], ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, dword [esi + 0x10]
push dword [esi + 0x14]
push dword [esi + 0x38]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [esi + 0x10]
mov ebx, ecx
mov eax, dword [esi + 0xc]
mov byte [ecx + eax], 0
lea ecx, [edi + 1]
cmp ecx, 0x1000
jb 0x425f04
mov ecx, dword [esi + 0x1c]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x427531
add edi, 0x24
mov ecx, edi
jmp 0x425f07
mov edx, edi
mov edi, ecx
add edi, ebx
mov dword [esi + 0x130], edi
lea eax, [esi + 0x120]
cmp edx, 0x10
jb 0x425ec0
mov eax, dword [esi + 0x120]
add ebx, eax
push ecx
push dword [esi + 0x38]
push ebx
mov ebx, eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebx + edi], 0
jmp 0x425f19
push ebx
lea eax, [esi + 0x120]
push eax
push ecx
mov edi, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, edi
push dword [esi + 0x14]
push dword [esi + 0x38]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0xc]
mov byte [edi + eax], 0
jmp 0x425f13
mov eax, dword [esi + 0x1c]
push ecx
push eax
call fcn.00471733
add esp, 8
mov edi, ebx
mov dword [esi + 0x120], edi
movsd xmm0, qword [esi + 0x130]
movsd qword [esi + 0x150], xmm0
movaps xmm0, xmmword [esi + 0x120]
movaps xmmword [esi + 0x140], xmm0
mov dword [esi + 0x130], 0
mov dword [esi + 0x134], 0xf
mov byte [esi + 0x120], 0
mov ecx, dword [esi + 0x208]
cmp dword [esi + 0x20c], 0x10
lea edx, [esi + 0x1f8]
jb 0x425f6d
mov edx, dword [esi + 0x1f8]
mov edi, dword [esi + 0x150]
mov eax, dword [esi + 0x154]
mov dword [esi + 0xc], eax
sub eax, edi
cmp eax, ecx
jae 0x426063
mov eax, closesocket
sub eax, edi
cmp eax, ecx
jb 0x42752c
mov dword [esi + 0x18], edx
mov dword [esi + 0x1c], ecx
add ecx, edi
mov dword [esi + 0x10], ecx
or ecx, 0xf
mov dword [esi + 0x14], closesocket
mov eax, closesocket
js 0x425fe2
mov eax, dword [esi + 0xc]
mov edx, eax
shr edx, 1
mov ebx, edx
xor ebx, 0x7fffffff
cmp ebx, eax
mov eax, closesocket
jb 0x425fe2
add edx, dword [esi + 0xc]
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x42687e
mov dword [esi + 0x14], edx
push eax
call fcn.0040130b
add esp, 4
mov ecx, eax
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov dword [esi + 0x150], eax
mov dword [esi + 0x154], edx
cmp dword [esi + 0xc], 0x10
jb 0x426099
mov eax, dword [esi + 0x140]
push edi
mov dword [esi + 0x14], eax
push eax
push ecx
mov ebx, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, ebx
push dword [esi + 0x1c]
push dword [esi + 0x18]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edi, ebx
mov eax, dword [esi + 0x10]
mov byte [ebx + eax], 0
mov eax, dword [esi + 0xc]
lea ecx, [eax + 1]
cmp ecx, 0x1000
jb 0x4260c6
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x427531
mov ecx, dword [esi + 0xc]
add ecx, 0x24
jmp 0x4260c9
lea ebx, [edi + ecx]
mov eax, ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x150], ebx
lea ebx, [esi + 0x140]
cmp dword [esi + 0xc], 0x10
jb 0x426083
mov ebx, dword [esi + 0x140]
add edi, ebx
push ecx
push edx
push edi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov eax, dword [esi + 0x10]
mov byte [ebx + eax], 0
jmp 0x4260db
push edi
lea eax, [esi + 0x140]
push eax
push ecx
mov ebx, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, ebx
push dword [esi + 0x1c]
push dword [esi + 0x18]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x10]
mov byte [ebx + eax], 0
jmp 0x4260d5
mov eax, dword [esi + 0x14]
push ecx
push eax
call fcn.00471733
add esp, 8
mov ebx, edi
mov dword [esi + 0x140], ebx
movsd xmm0, qword [esi + 0x150]
movsd qword [esi + 0x170], xmm0
movaps xmm0, xmmword [esi + 0x140]
movaps xmmword [esi + 0x160], xmm0
mov dword [esi + 0x150], 0
mov dword [esi + 0x154], 0xf
mov byte [esi + 0x140], 0
push dword [esi + 0x34]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ecx, eax
mov ebx, dword [esi + 0x170]
mov edx, dword [esi + 0x174]
mov eax, edx
sub eax, ebx
cmp eax, ecx
jae 0x426222
mov eax, closesocket
sub eax, ebx
cmp eax, ecx
jb 0x42752c
mov dword [esi + 0x1c], ecx
mov edi, ecx
add edi, ebx
mov ecx, edi
or ecx, 0xf
mov dword [esi + 0x14], closesocket
mov eax, closesocket
mov dword [esi + 0xc], edx
mov dword [esi + 0x10], edi
js 0x426199
mov eax, edx
shr edx, 1
mov edi, edx
xor edi, 0x7fffffff
cmp edi, eax
mov eax, closesocket
mov edi, dword [esi + 0x10]
jb 0x426199
add edx, dword [esi + 0xc]
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x426898
mov dword [esi + 0x14], edx
push eax
call fcn.0040130b
add esp, 4
mov ecx, eax
mov edx, dword [esi + 0x14]
mov dword [esi + 0x170], edi
mov dword [esi + 0x174], edx
mov edi, dword [esi + 0xc]
cmp edi, 0x10
jb 0x42625a
mov eax, dword [esi + 0x160]
push ebx
mov dword [esi + 0x14], eax
push eax
push ecx
mov edi, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, edi
push dword [esi + 0x1c]
push dword [esi + 0x34]
push ebx
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esi + 0xc]
add esp, 0xc
mov ebx, edi
mov eax, dword [esi + 0x10]
mov byte [edi + eax], 0
lea ecx, [edx + 1]
cmp ecx, 0x1000
jb 0x42628f
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
lea edi, [esi + 0x90]
jae 0x427531
add edx, 0x24
mov ecx, edx
jmp 0x426298
mov edi, ecx
add edi, ebx
mov dword [esi + 0x170], edi
lea eax, [esi + 0x160]
cmp edx, 0x10
jb 0x42623d
mov eax, dword [esi + 0x160]
add ebx, eax
push ecx
push dword [esi + 0x34]
push ebx
mov ebx, eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebx + edi], 0
lea edi, [esi + 0x90]
jmp 0x4262a8
push ebx
lea eax, [esi + 0x160]
push eax
push ecx
mov edi, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, edi
push dword [esi + 0x1c]
push dword [esi + 0x34]
push ebx
call sub.VCRUNTIME140.dll_memcpy
mov ebx, edi
add esp, 0xc
mov eax, dword [esi + 0x10]
mov byte [edi + eax], 0
lea edi, [esi + 0x90]
jmp 0x4262a2
lea edi, [esi + 0x90]
mov eax, dword [esi + 0x14]
push ecx
push eax
call fcn.00471733
add esp, 8
mov dword [esi + 0x160], ebx
movsd xmm0, qword [esi + 0x170]
movsd qword [esi + 0x270], xmm0
movaps xmm0, xmmword [esi + 0x160]
movaps xmmword [esi + 0x260], xmm0
mov dword [esi + 0x170], 0
mov dword [esi + 0x174], 0xf
mov byte [esi + 0x160], 0
sub esp, 0xc
mov al, byte [esi + 0x210]
mov byte [esp], al
lea eax, [esi + 0x248]
mov dword [esp + 8], eax
lea eax, [esi + 0x260]
mov dword [esp + 4], eax
mov ecx, edi
call fcn.00451d58
push dword [esi + 0x58]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ebx, dword [esi + 0xa0]
mov edx, dword [esi + 0xa4]
mov ecx, edx
sub ecx, ebx
cmp ecx, eax
jae 0x426407
mov ecx, closesocket
sub ecx, ebx
cmp ecx, eax
jb 0x42752c
mov dword [esi + 0x14], eax
mov ecx, eax
add ecx, ebx
mov dword [esi + 0xc], ecx
or ecx, 0xf
mov edi, closesocket
mov eax, closesocket
mov dword [esi + 0x10], edx
js 0x426388
mov eax, edx
shr edx, 1
mov edi, edx
xor edi, 0x7fffffff
cmp edi, eax
mov eax, closesocket
mov edi, closesocket
jb 0x426388
add edx, dword [esi + 0x10]
cmp ecx, edx
mov edi, edx
cmovae edi, ecx
lea eax, [edi + 1]
cmp eax, 0x1000
jb 0x4268b2
push eax
call fcn.0040130b
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0xa0], eax
mov dword [esi + 0xa4], edi
mov eax, dword [esi + 0x10]
cmp eax, 0x10
jb 0x426435
mov edx, dword [esi + 0x90]
push ebx
mov dword [esi + 0x1c], edx
push edx
push ecx
mov edi, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, edi
push dword [esi + 0x14]
push dword [esi + 0x58]
push ebx
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esi + 0x10]
add esp, 0xc
mov ebx, edi
mov eax, dword [esi + 0xc]
mov byte [edi + eax], 0
lea ecx, [edx + 1]
cmp ecx, 0x1000
jb 0x426467
mov ecx, dword [esi + 0x1c]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x427531
add edx, 0x24
mov ecx, edx
jmp 0x42646a
mov ecx, edi
mov edi, eax
add edi, ebx
mov dword [esi + 0xa0], edi
cmp edx, 0x10
jb 0x42641e
mov ecx, dword [esi + 0x90]
add ebx, ecx
push eax
push dword [esi + 0x58]
push ebx
mov ebx, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebx + edi], 0
jmp 0x42647a
push ebx
lea eax, [esi + 0x90]
push eax
push ecx
mov dword [esi + 0x10], ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, dword [esi + 0x10]
push dword [esi + 0x14]
push dword [esi + 0x58]
push ebx
call sub.VCRUNTIME140.dll_memcpy
mov ebx, dword [esi + 0x10]
add esp, 0xc
mov eax, dword [esi + 0xc]
mov byte [ebx + eax], 0
jmp 0x426474
mov eax, dword [esi + 0x1c]
push ecx
push eax
call fcn.00471733
add esp, 8
mov dword [esi + 0x90], ebx
movsd xmm0, qword [esi + 0xa0]
movsd qword [esi + 0x220], xmm0
movdqu xmm0, xmmword [esi + 0x90]
movdqa xmmword [esi + 0x210], xmm0
mov dword [esi + 0xa0], 0
mov dword [esi + 0xa4], 0xf
mov byte [esi + 0x90], 0
mov eax, dword [esi + 0x224]
mov dword [esi + 0x10], eax
cmp eax, 0x10
mov edi, dword [esi + 0x210]
lea eax, [esi + 0x210]
cmovae eax, edi
mov dword [esi + 0x14], eax
mov ebx, dword [esi + 0x88]
mov ecx, dword [esi + 0x8c]
mov eax, ecx
sub eax, ebx
mov edx, dword [esi + 0x220]
cmp eax, edx
mov dword [esi + 0xc], edi
jae 0x4265d3
mov dword [esi + 0x1c], ecx
mov eax, closesocket
sub eax, ebx
cmp eax, edx
jb 0x42752c
mov dword [esi + 0x20], edx
lea ecx, [ebx + edx]
mov dword [esi + 0x18], ecx
or ecx, 0xf
mov dword [esi + 0x28], closesocket
mov eax, closesocket
js 0x426552
mov dword [esi + 0x24], ebx
mov ebx, dword [esi + 0x1c]
mov edx, ebx
shr edx, 1
mov edi, edx
xor edi, 0x7fffffff
cmp edi, ebx
mov ebx, dword [esi + 0x24]
jb 0x426552
add edx, dword [esi + 0x1c]
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x4268c1
mov dword [esi + 0x28], edx
push eax
call fcn.0040130b
add esp, 4
mov ecx, eax
mov edx, dword [esi + 0x28]
mov edi, dword [esi + 0x18]
mov dword [esi + 0x88], edi
mov dword [esi + 0x8c], edx
cmp dword [esi + 0x1c], 0x10
jb 0x426600
mov eax, dword [esi + 0x78]
push ebx
mov dword [esi + 0x28], eax
push eax
push ecx
mov edi, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, edi
push dword [esi + 0x20]
push dword [esi + 0x14]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ebx, edi
mov eax, dword [esi + 0x18]
mov byte [edi + eax], 0
mov eax, dword [esi + 0x1c]
lea ecx, [eax + 1]
cmp ecx, 0x1000
jb 0x42662f
mov ecx, dword [esi + 0x28]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
mov edi, dword [esi + 0xc]
jae 0x427531
mov ecx, dword [esi + 0x1c]
add ecx, 0x24
jmp 0x426635
mov eax, ebx
add ebx, edx
mov dword [esi + 0x88], ebx
lea edi, [esi + 0x78]
cmp ecx, 0x10
jb 0x4265e8
mov edi, dword [esi + 0x78]
add eax, edi
push edx
push dword [esi + 0x14]
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [edi + ebx], 0
mov edi, dword [esi + 0xc]
jmp 0x426642
push ebx
lea eax, [esi + 0x78]
push eax
push ecx
mov dword [esi + 0x1c], ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, dword [esi + 0x1c]
push dword [esi + 0x20]
push dword [esi + 0x14]
push ebx
call sub.VCRUNTIME140.dll_memcpy
mov ebx, dword [esi + 0x1c]
add esp, 0xc
mov byte [ebx + edi], 0
mov edi, dword [esi + 0xc]
jmp 0x42663f
mov edi, dword [esi + 0xc]
mov eax, dword [esi + 0x28]
push ecx
push eax
call fcn.00471733
add esp, 8
mov dword [esi + 0x78], ebx
mov edx, dword [esi + 0x10]
cmp edx, 0x10
jb 0x426677
lea ecx, [edx + 1]
cmp ecx, 0x1000
jb 0x42666d
mov eax, dword [edi - 4]
add edi, 0xfffffffc
sub edi, eax
cmp edi, 0x20
jae 0x427531
add edx, 0x24
mov ecx, edx
mov edi, eax
push ecx
push edi
call fcn.00471733
add esp, 8
mov dword [esi + 0x220], 0
mov dword [esi + 0x224], 0xf
mov byte [esi + 0x210], 0
mov eax, dword [esi + 0xa4]
cmp eax, 0x10
jb 0x4266d0
mov ecx, dword [esi + 0x90]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x4266c6
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x427531
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
mov dword [esi + 0xa0], 0
mov dword [esi + 0xa4], 0xf
mov byte [esi + 0x90], 0
mov eax, dword [esi + 0x274]
cmp eax, 0x10
jb 0x426729
mov ecx, dword [esi + 0x260]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x42671f
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x427531
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
mov eax, dword [esi + 0x25c]
cmp eax, 0x10
jb 0x426767
mov ecx, dword [esi + 0x248]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x42675d
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x427531
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
inc dword [0x478508]
mov eax, dword [esi + 0x20c]
cmp eax, 0x10
jb 0x4267ab
mov ecx, dword [esi + 0x1f8]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x4267a1
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x427531
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
mov eax, dword [esi + 0x74]
cmp eax, 0x10
jb 0x4267e3
mov ecx, dword [esi + 0x60]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x4267d9
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x427531
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
mov eax, dword [esi + 0x54]
cmp eax, 0x10
jb 0x42691f
mov ecx, dword [esi + 0x40]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x426815
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x427531
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
jmp 0x42691f
test eax, eax
je 0x4268d9
push eax
mov dword [esi + 0x10], edx
call fcn.004716fe
mov edx, dword [esi + 0x10]
add esp, 4
mov ecx, eax
jmp 0x425acc
test eax, eax
je 0x4268e3
push eax
mov dword [esi + 0x14], edx
call fcn.004716fe
mov edx, dword [esi + 0x14]
add esp, 4
mov ecx, eax
jmp 0x425c80
test eax, eax
je 0x4268ed
push eax
mov dword [esi + 0x10], edx
call fcn.004716fe
mov edx, dword [esi + 0x10]
add esp, 4
mov ecx, eax
jmp 0x425e30
test eax, eax
je 0x4268f7
push eax
mov dword [esi + 0x14], edx
call fcn.004716fe
mov edx, dword [esi + 0x14]
add esp, 4
mov ecx, eax
jmp 0x425ff0
test eax, eax
je 0x426901
push eax
mov dword [esi + 0x14], edx
call fcn.004716fe
mov edx, dword [esi + 0x14]
add esp, 4
mov ecx, eax
jmp 0x4261a7
test eax, eax
je 0x42690b
push eax
call fcn.004716fe
jmp 0x42638e
test eax, eax
je 0x426915
push eax
mov edi, edx
call fcn.004716fe
mov edx, edi
add esp, 4
mov ecx, eax
jmp 0x426560
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x425acc
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x425c80
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x425e30
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x425ff0
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x4261a7
xor ecx, ecx
xor edi, edi
dec edi
jmp 0x426393
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x426560
mov edi, dword [0x478608]
test edi, edi
jne 0x426a97
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xe7ca7fab
xor ebx, ebx
mov dword [esi + 0x28], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x18], eax
je 0x42699b
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x28a5146b
cmp cx, 2
jb 0x42698a
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x28a5146b
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x426977
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x18]
jne 0x426a7e
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x426a53
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x24], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x1c], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x426a50
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0x20]
add eax, edi
mov edx, dword [eax + ebx*4]
mov cl, byte [edi + edx]
test cl, cl
je 0x4269fd
add edx, dword [esi + 0x1c]
mov eax, 0x28a5146b
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x4269e9
jmp 0x426a02
mov eax, 0x28a5146b
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x4269c6
mov eax, dword [edi + edx + 0x24]
add eax, edi
movzx eax, word [eax + ebx*2]
mov ecx, dword [edi + edx + 0x1c]
add ecx, edi
mov eax, dword [ecx + eax*4]
add edi, eax
cmp edx, eax
jge 0x426a91
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x24]
cmp eax, edi
jbe 0x426a91
mov al, byte [edi]
mov ecx, 0x28a5146b
mov ebx, 0x28a5146b
cmp al, 0x2e
je 0x426a58
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x426a3b
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
jmp 0x426a7e
mov al, byte [edi + 1]
test al, al
je 0x426a79
add edi, 2
mov ecx, 0x28a5146b
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x426a67
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x28]
je 0x426a91
cmp dword [eax + 0x18], 0
jne 0x426945
mov dword [0x478608], edi
push dword [esi + 0x3c]
call edi
cmp eax, 0x64
je 0x4237b9
cmp dword [esi + 0x8c], 0x10
jb 0x426ab3
mov eax, dword [esi + 0x78]
jmp 0x426ab6
lea eax, [esi + 0x78]
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x88]
mov dword [esi + 0x30], eax
movdqa xmm0, xmmword [0x4734d0]
movdqu xmmword [esi + 0x60], xmm0
call fcn.0046d640
mov eax, dword [eax]
mov dword [esi + 0xc], eax
call fcn.0046d646
mov ecx, dword [eax]
xor eax, eax
cmp dword [esi + 0xc], eax
ja 0x426ec9
mov dl, byte [esi + eax + 0x60]
mov edi, edx
movzx edx, dl
mov ebx, ecx
inc ecx
mov dword [esi + 0x10], ecx
cmp dword [esi + 0xc], ecx
jae 0x426b4b
cmp ebx, eax
ja 0x426ede
mov ecx, ebx
mov dword [esi + 0x18], edi
mov edi, dword [esi + 0xc]
add ebx, edi
mov dword [esi + 0x1c], ebx
cmp ebx, eax
jbe 0x426b5a
mov dword [esi + 0x14], edx
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 0x10]
jne 0x426c3c
lea edx, [eax - 0x3ffb5548]
mov edi, dword [esi + 0x14]
lea ecx, [eax + edi]
add ecx, 0xc004aab8
and edx, edi
add edx, edx
sub ecx, edx
add cl, 0xf8
mov byte [esi + eax + 0x60], cl
jmp 0x426da9
jne 0x426c16
mov ecx, ebx
mov ebx, edi
jmp 0x426cd0
mov dword [esi + 0x20], ecx
lea edi, [ecx + 3]
cmp dword [esi + 0xc], edi
jae 0x426c5b
mov dword [esi + 0x28], edi
mov edi, edx
lea edx, [eax + 0x15bf6c88]
lea ecx, [eax + edi]
add ecx, 0x15bf6c88
mov dword [esi + 0x14], edi
and edx, edi
add edx, edx
sub ecx, edx
add cl, 0x48
mov edi, ecx
mov ebx, dword [esi + 0x18]
cmp dword [esi + 0x1c], 0x10
mov ecx, dword [esi + 0x20]
je 0x426c77
lea edx, [ecx + 6]
cmp dword [esi + 0xc], edx
jbe 0x426d0a
lea edx, [eax + 0x2e9cdc68]
mov edi, dword [esi + 0x14]
add edi, eax
add edi, 0x2e9cdc68
mov dword [esi + 0x18], edi
and edx, dword [esi + 0x14]
add edx, edx
mov edi, dword [esi + 0x18]
sub edi, edx
mov edx, edi
add dl, 0x28
mov edi, edx
cmp dword [esi + 0xc], 4
ja 0x426d79
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 0x10]
jbe 0x426dbc
lea edx, [eax - 0x8af3c70]
mov edi, dword [esi + 0x14]
lea ebx, [eax + edi]
add ebx, 0xf750c390
and edx, edi
add edx, edx
sub ebx, edx
add bl, 0x10
mov edi, ebx
cmp ecx, 3
ja 0x426b27
mov ecx, edi
mov byte [esi + eax + 0x60], cl
mov ecx, dword [esi + 0x20]
jmp 0x426dad
mov dword [esi + 0x14], edx
mov ecx, ebx
lea edx, [ebx + 3]
cmp dword [esi + 0xc], edx
je 0x426c77
lea edx, [ecx + 7]
cmp dword [esi + 0xc], edx
mov edx, dword [esi + 0x14]
mov ebx, ecx
jne 0x426aff
mov dword [esi + 0x10], ebx
jmp 0x426da9
lea edx, [ecx + 2]
cmp dword [esi + 0xc], edx
jne 0x426c6b
lea edx, [eax - 0x2542d260]
mov edi, dword [esi + 0x14]
lea ebx, [eax + edi]
add ebx, 0xdabd2da0
jmp 0x426d41
mov ecx, dword [esi + 0xc]
cmp ecx, dword [esi + 0x10]
mov ebx, dword [esi + 0x18]
jne 0x426cdc
mov ecx, dword [esi + 0x20]
jmp 0x426cd0
lea edx, [ecx + 8]
cmp dword [esi + 0xc], edx
jne 0x426acf
lea edx, [eax + 0x17025cd8]
mov edi, dword [esi + 0x14]
and edx, edi
add edx, edx
lea ebx, [edi + eax]
add ebx, 0x17025cd8
sub ebx, edx
add bl, 0x18
mov byte [esi + eax + 0x60], bl
not ecx
add ecx, eax
movzx eax, bl
sub ecx, eax
mov eax, ecx
mov ecx, dword [esi + 0x10]
lea edx, [eax + 0x2cc1c960]
and edx, edi
lea ebx, [eax + edi]
add ebx, 0x2cc1c960
add edx, edx
sub ebx, edx
add bl, 0x60
mov byte [esi + eax + 0x60], bl
mov edx, dword [esi + 0xc]
sub eax, edx
inc edx
mov dword [esi + 0xc], edx
mov bl, byte [esi + eax + 0x5e]
add eax, 0xfffffffe
movzx edx, bl
add edx, ecx
add eax, edx
jmp 0x426dad
mov dword [esi + 0x14], edx
cmp dword [esi + 0xc], edi
mov ecx, dword [esi + 0x20]
jne 0x426d27
lea edx, [eax + 0x13e45980]
mov edi, dword [esi + 0x14]
and edx, edi
lea ebx, [eax + edi]
add ebx, 0x13e45980
add edx, edx
sub ebx, edx
xor bl, 0x80
mov edx, dword [esi + 0xc]
mov dword [esi + 0x1c], edx
jmp 0x426d6a
mov ecx, dword [esi + 0xc]
cmp ecx, dword [esi + 0x10]
je 0x426b27
mov ecx, dword [esi + 0x28]
cmp dword [esi + 0xc], ecx
jne 0x426dee
mov ecx, dword [esi + 0x20]
jmp 0x426da6
lea edx, [ecx + 5]
cmp dword [esi + 0xc], edx
jne 0x426d9e
lea edx, [eax + 0x6ae20ba0]
mov edi, dword [esi + 0x14]
lea ebx, [eax + edi]
add ebx, 0x6ae20ba0
and edx, edi
add edx, edx
sub ebx, edx
add bl, 0xa0
lea edi, [eax - 0x147c7c38]
mov edx, dword [esi + 0x14]
and edi, edx
add edx, eax
add edx, 0xeb8383c8
add edi, edi
sub edx, edi
add dl, bl
add dl, 0x88
mov byte [esi + eax + 0x60], dl
movzx edx, bl
not edx
add eax, edx
mov edx, dword [esi + 0x1c]
mov dword [esi + 0xc], edx
jmp 0x426dad
lea edi, [eax - 0x2a3be8c0]
mov edx, dword [esi + 0x14]
add edx, eax
add edx, 0xd5c41740
mov dword [esi + 0xc], edx
and edi, dword [esi + 0x14]
add edi, edi
mov edx, dword [esi + 0xc]
sub edx, edi
add bl, dl
add bl, 0x40
jmp 0x426d4a
lea edx, [ecx + 6]
cmp dword [esi + 0xc], edx
jne 0x426e19
mov dword [esi + 0x10], ecx
dec eax
mov ecx, dword [esi + 0x10]
inc eax
cmp eax, 0x10
jb 0x426ae2
jmp 0x426eda
je 0x426cd0
lea edx, [ecx + 2]
cmp dword [esi + 0xc], edx
jne 0x426e72
lea edx, [eax - 0x5ab3d830]
mov edi, dword [esi + 0x14]
and edx, edi
lea ebx, [eax + edi]
add ebx, 0xa54c27d0
add edx, edx
sub ebx, edx
add bl, 0x50
jmp 0x426d02
mov ecx, dword [esi + 0x20]
lea edx, [ecx + 4]
cmp dword [esi + 0xc], edx
jne 0x426e4a
lea edx, [eax + 0x81719b8]
mov edi, dword [esi + 0x14]
lea ebx, [eax + edi]
add ebx, 0x81719b8
and edx, edi
add edx, edx
sub ebx, edx
add bl, 0xf8
jmp 0x426d6a
mov dword [esi + 0x28], edi
lea edx, [ecx + 4]
cmp dword [esi + 0xc], edx
je 0x426b27
lea edx, [eax - 0x374c18d8]
mov edi, dword [esi + 0x14]
lea ecx, [eax + edi]
add ecx, 0xc8b3e728
and edx, edi
add edx, edx
sub ecx, edx
add cl, 0xe8
mov edi, ecx
jmp 0x426b8e
lea edx, [ecx + 5]
cmp dword [esi + 0xc], edx
jne 0x426e9d
lea edx, [eax + 0x3395f2c8]
mov edi, dword [esi + 0x14]
and edx, edi
lea ebx, [eax + edi]
add ebx, 0x3395f2c8
add edx, edx
sub ebx, edx
add bl, 0x88
jmp 0x426d02
mov edx, dword [esi + 0x28]
cmp dword [esi + 0xc], edx
jne 0x426eb1
lea edx, [eax - 0x3b62610]
mov edi, dword [esi + 0x14]
lea ebx, [eax + edi]
add ebx, 0xfc49d9f0
mov dword [esi + 0x14], edi
and edx, edi
add edx, edx
sub ebx, edx
add bl, 0x70
jmp 0x426d4a
lea edx, [ecx + 2]
cmp dword [esi + 0xc], edx
jne 0x426bcc
mov edi, dword [esi + 0x14]
jmp 0x426ca4
lea edx, [ecx + 4]
cmp dword [esi + 0xc], edx
jne 0x426bff
mov dword [esi + 0xc], 4
jmp 0x426da6
mov eax, 0x11c57e8
jmp 0x426ee3
mov ecx, 0xda6d2d
jmp 0x422be7
xor eax, eax
jmp 0x426ee3
mov eax, 0x15ceb60
lea ebx, [esi + eax]
add ebx, 0x60
xor eax, eax
lea edi, [esi + 0x40]
mov dword [edi], eax
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ecx, edi
push eax
push ebx
call fcn.00450e50
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0x10
jb 0x426f1d
mov ecx, dword [ecx]
mov dword [esi + 0xc], ecx
mov ebx, dword [esi + 0x50]
mov ecx, dword [esi + 0x54]
mov eax, ecx
sub eax, ebx
cmp eax, edx
mov dword [esi + 0x14], edx
mov dword [esi + 0x10], ebx
jae 0x426f92
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x18], closesocket
mov eax, closesocket
sub eax, ebx
cmp eax, edx
jb 0x42752c
lea ecx, [ebx + edx]
mov dword [esi + 0x20], ecx
or ecx, 0xf
mov eax, closesocket
js 0x427007
mov edi, dword [esi + 0x1c]
mov edx, edi
shr edx, 1
mov ebx, edx
xor ebx, 0x7fffffff
cmp ebx, edi
jb 0x42700a
add edx, edi
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x42750a
mov dword [esi + 0x18], edx
jmp 0x42700a
lea eax, [ebx + edx]
mov dword [esi + 0x50], eax
cmp ecx, 0x10
jb 0x426fa0
mov edi, dword [esi + 0x40]
mov ecx, dword [esi + 0xc]
lea eax, [ecx + edx]
mov ebx, edx
mov dword [esi + 0x1c], eax
cmp eax, edi
jbe 0x426fc4
mov eax, dword [esi + 0x10]
add eax, edi
mov ebx, edx
cmp eax, ecx
jb 0x426fc4
xor ebx, ebx
mov eax, edi
sub eax, ecx
jbe 0x426fc4
mov ebx, eax
mov eax, dword [esi + 0x10]
inc eax
mov dword [esi + 0xc], ecx
lea ecx, [edi + edx]
mov dword [esi + 0x10], ecx
push eax
push edi
push dword [esi + 0x10]
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
push ebx
push dword [esi + 0xc]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [esi + 0x14]
sub ecx, ebx
mov eax, dword [esi + 0x1c]
add eax, ebx
add edi, ebx
push ecx
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
jmp 0x4270aa
mov edi, dword [esi + 0x1c]
push eax
call fcn.0040130b
add esp, 4
mov ebx, eax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x20]
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], ecx
cmp edi, 0x10
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x14]
jb 0x427086
mov edi, dword [esi + 0x40]
push ecx
push eax
push ebx
mov dword [esi + 0xc], ebx
mov ebx, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x10]
inc eax
add ebx, dword [esi + 0xc]
push eax
push edi
push ebx
mov ebx, dword [esi + 0x1c]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea ecx, [ebx + 1]
cmp ecx, 0x1000
jb 0x427077
mov eax, dword [edi - 4]
add edi, 0xfffffffc
sub edi, eax
cmp edi, 0x20
jae 0x427531
add ebx, 0x24
mov ecx, ebx
mov edi, eax
push ecx
push edi
call fcn.00471733
add esp, 8
mov ebx, dword [esi + 0xc]
jmp 0x4270a7
push ecx
push eax
push ebx
mov edi, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [esi + 0x10]
inc ecx
add edi, ebx
lea eax, [esi + 0x40]
push ecx
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [esi + 0x40], ebx
mov eax, dword [ebp + 0x18]
lea ecx, [esi + 0xc0]
mov edx, dword [esi + 0x24]
mov edi, dword [esi + 0x30]
movsd xmm0, qword [esi + 0x50]
movsd qword [esi + 0xd0], xmm0
movdqu xmm0, xmmword [esi + 0x40]
movdqa xmmword [esi + 0xc0], xmm0
cmp dword [esi + 0xd4], 0x10
jb 0x4270e2
mov ecx, dword [esi + 0xc0]
push edi
push edx
push ecx
push eax
call fcn.00471674
add esp, 0x10
cmp dword [esi + 0x8c], 0x10
jb 0x4270fc
mov eax, dword [esi + 0x78]
jmp 0x4270ff
lea eax, [esi + 0x78]
mov dword [esi + 0x88], 0
mov byte [eax], 0
mov edi, dword [0x478618]
test edi, edi
jne 0x427284
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xd9430d9a
xor ebx, ebx
mov dword [esi + 0x28], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x18], eax
je 0x427188
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0xab881ffe
cmp cx, 2
jb 0x427177
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0xab881ffe
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x427164
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x18]
jne 0x42726b
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x427240
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x24], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x1c], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x42723d
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0x20]
add eax, edi
mov edx, dword [eax + ebx*4]
mov cl, byte [edi + edx]
test cl, cl
je 0x4271ea
add edx, dword [esi + 0x1c]
mov eax, 0xab881ffe
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x4271d6
jmp 0x4271ef
mov eax, 0xab881ffe
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x4271b3
mov eax, dword [edi + edx + 0x24]
add eax, edi
movzx eax, word [eax + ebx*2]
mov ecx, dword [edi + edx + 0x1c]
add ecx, edi
mov eax, dword [ecx + eax*4]
add edi, eax
cmp edx, eax
jge 0x42727e
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x24]
cmp eax, edi
jbe 0x42727e
mov al, byte [edi]
mov ecx, 0xab881ffe
mov ebx, 0xab881ffe
cmp al, 0x2e
je 0x427245
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x427228
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
jmp 0x42726b
mov al, byte [edi + 1]
test al, al
je 0x427266
add edi, 2
mov ecx, 0xab881ffe
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x427254
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x28]
je 0x42727e
cmp dword [eax + 0x18], 0
jne 0x427132
mov dword [0x478618], edi
push dword [esi + 0x3c]
call edi
mov edi, dword [0x47861c]
test edi, edi
jne 0x427401
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0x72c7df66
xor ebx, ebx
mov dword [esi + 0x28], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x18], eax
je 0x427305
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x98ea0894
cmp cx, 2
jb 0x4272f4
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x98ea0894
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x4272e1
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x18]
jne 0x4273e8
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x4273bd
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x24], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x1c], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x4273ba
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0x20]
add eax, edi
mov edx, dword [eax + ebx*4]
mov cl, byte [edi + edx]
test cl, cl
je 0x427367
add edx, dword [esi + 0x1c]
mov eax, 0x98ea0894
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x427353
jmp 0x42736c
mov eax, 0x98ea0894
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x427330
mov eax, dword [edi + edx + 0x24]
add eax, edi
movzx eax, word [eax + ebx*2]
mov ecx, dword [edi + edx + 0x1c]
add ecx, edi
mov eax, dword [ecx + eax*4]
add edi, eax
cmp edx, eax
jge 0x4273fb
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x24]
cmp eax, edi
jbe 0x4273fb
mov al, byte [edi]
mov ecx, 0x98ea0894
mov ebx, 0x98ea0894
cmp al, 0x2e
je 0x4273c2
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x4273a5
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
jmp 0x4273e8
mov al, byte [edi + 1]
test al, al
je 0x4273e3
add edi, 2
mov ecx, 0x98ea0894
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x4273d1
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x28]
je 0x4273fb
cmp dword [eax + 0x18], 0
jne 0x4272af
mov dword [0x47861c], edi
push dword [esi + 0x5c]
call edi
mov eax, dword [esi + 0xd4]
cmp eax, 0x10
jb 0x427444
mov ecx, dword [esi + 0xc0]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x42743a
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x427531
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
mov eax, dword [esi + 0x1b4]
cmp eax, 0x10
jb 0x427482
mov ecx, dword [esi + 0x1a0]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x427478
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x427531
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
mov eax, dword [esi + 0x8c]
cmp eax, 0x10
jb 0x4274bd
mov ecx, dword [esi + 0x78]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x4274b3
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x427531
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
mov eax, dword [esi + 0x194]
cmp eax, 0x10
jb 0x4274f7
mov ecx, dword [esi + 0x180]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x4274ed
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x427531
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
lea ecx, [esi + 0x284]
call fcn.0040d3aa
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
test eax, eax
je 0x427522
push eax
mov ebx, edx
call fcn.004716fe
mov ecx, ebx
add esp, 4
mov ebx, eax
jmp 0x427018
xor ebx, ebx
xor ecx, ecx
dec ecx
jmp 0x427018
call fcn.00401301
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
lea eax, [esi + 0x1a0]
lea ecx, [esi + 0x60]
push eax
push ecx
push str.exists
call fcn.0044f0d3