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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x2f0
mov esi, esp
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov dword [esi + 0x2cc], ecx
mov dword [esi + 0x2d0], eax
xor ebx, ebx
mov dword [esi + 0xf8], ebx
mov dword [esi + 0x108], ebx
mov edi, 0xf
mov dword [esi + 0x10c], edi
mov byte [esi + 0xf8], bl
mov ecx, dword [ebp + 8]
sub esp, 0xc
mov al, byte [esi + 0x198]
mov byte [esp + 8], al
mov dword [esp + 4], ecx
lea eax, [esi + 0x2d4]
mov dword [esp], eax
call fcn.00452893
add esp, 0xc
mov dword [esi + 0x20], esp
mov dword [esi + 0x2b0], ebx
mov dword [esi + 0x2c0], ebx
mov dword [esi + 0x2c4], edi
mov byte [esi + 0x2b0], bl
sub esp, 0x20
mov eax, esp
mov dword [esi + 0x24], eax
add eax, 8
mov dword [esi + 0x28], eax
mov dword [esi + 0xbc], 0xcad5ceec
mov dword [esi + 0xc0], 0xd6f215ca
mov word [esi + 0xc4], 0x283c
mov byte [esi + 0xc6], 0xca
mov dword [esi + 0xcb], ebx
mov dword [esi + 0xc7], ebx
mov dword [esi + 0xce], ebx
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov ecx, dword [eax]
xor eax, eax
cmp edi, eax
ja 0x411022
mov dl, byte [esi + eax + 0xbc]
mov byte [esi + 0x14], dl
movzx ebx, dl
mov edx, ecx
inc ecx
mov dword [esi + 0xc], ecx
cmp edi, ecx
jae 0x410cc9
cmp edx, eax
ja 0x41102d
mov ecx, edx
add edx, 0x10
cmp edi, edx
jae 0x410d4c
mov dword [esi + 0x18], ebx
mov ebx, edi
add edi, ecx
cmp edi, eax
jbe 0x410d96
mov edi, edx
lea edx, [ecx + 2]
cmp ebx, edx
mov edx, edi
mov edi, ebx
mov ebx, dword [esi + 0x18]
je 0x410e37
cmp edi, edx
jne 0x410e8d
mov dword [esi + 0x10], edi
lea edi, [eax + 0x2913de60]
lea edx, [eax + ebx]
add edx, 0x2913de60
and edi, ebx
mov byte [esi + 0xc], 0x60
jmp 0x410f6d
mov ecx, edx
jne 0x410cd2
mov dl, byte [esi + 0x14]
jmp 0x410d42
mov dword [esi + 0x18], ebx
lea ebx, [ecx + 3]
cmp edi, ebx
jne 0x410dfb
mov dword [esi + 0x10], edi
lea edi, [eax - 0x514827d8]
mov ebx, dword [esi + 0x18]
lea edx, [ebx + eax]
add edx, 0xaeb7d828
and edi, ebx
add edi, edi
sub edx, edi
mov edi, dword [esi + 0x10]
add dl, 0xe8
mov byte [esi + eax + 0xbc], dl
not ecx
add ecx, eax
movzx eax, dl
sub ecx, eax
mov eax, ecx
lea ecx, [eax - 0x43afb560]
and ecx, ebx
lea edx, [eax + ebx]
add edx, 0xbc504aa0
add ecx, ecx
sub edx, ecx
add dl, 0xa0
mov byte [esi + eax + 0xbc], dl
sub eax, edi
inc edi
mov dl, byte [esi + eax + 0xba]
add eax, 0xfffffffe
mov ecx, dword [esi + 0xc]
movzx edx, dl
add edx, ecx
jmp 0x410f9e
cmp edi, dword [esi + 0xc]
je 0x410e37
mov dword [esi + 0x10], edi
lea edi, [ecx + 2]
cmp dword [esi + 0x10], edi
mov edi, dword [esi + 0x10]
je 0x410e56
mov dword [esi + 0x1c], ecx
lea edi, [ecx + 3]
cmp dword [esi + 0x10], edi
jne 0x410f1e
lea edi, [eax - 0x5a8a2378]
lea edx, [eax + ebx]
add edx, 0xa575dc88
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0x48
mov ecx, dword [esi + 0x1c]
jmp 0x410f94
mov dword [esi + 0x1c], ecx
lea edx, [ecx + 3]
cmp ebx, edx
mov edi, ebx
jbe 0x410e28
mov dword [esi + 0x10], edi
lea edi, [eax + 0x3d534698]
mov ebx, dword [esi + 0x18]
lea ecx, [eax + ebx]
add ecx, 0x3d534698
and edi, ebx
add edi, edi
sub ecx, edi
add cl, 0xd8
mov dword [esi + 0x2c], ecx
mov ecx, dword [esi + 0x1c]
mov edi, dword [esi + 0x10]
cmp edi, dword [esi + 0xc]
je 0x410ccd
cmp edi, edx
jne 0x410f51
lea edi, [eax - 0x1d36dce0]
lea edx, [eax + ebx]
add edx, 0xe2c92320
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0x20
jmp 0x410f94
lea ebx, [ecx + 2]
cmp edi, ebx
jne 0x410e5f
mov dword [esi + 0x10], edi
lea edi, [eax + 0x7a5c0638]
mov ebx, dword [esi + 0x18]
lea edx, [eax + ebx]
add edx, 0x7a5c0638
and edi, ebx
add edi, edi
sub edx, edi
mov edi, dword [esi + 0x10]
add dl, 0x78
jmp 0x410f99
cmp edi, dword [esi + 0xc]
mov ecx, dword [esi + 0x1c]
mov ebx, dword [esi + 0x18]
jne 0x410eb8
lea edx, [eax + 0x78560e48]
lea ecx, [eax + ebx]
add ecx, 0x78560e48
and edx, ebx
add edx, edx
sub ecx, edx
add cl, 8
mov byte [esi + eax + 0xbc], cl
dec eax
mov ecx, dword [esi + 0xc]
jmp 0x410fa0
lea ebx, [ecx + 4]
cmp edi, ebx
jne 0x410eec
mov dword [esi + 0x10], edi
lea edi, [eax - 0x6a7314d8]
mov ebx, dword [esi + 0x18]
lea edx, [eax + ebx]
add edx, 0x958ceb28
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0xe8
jmp 0x410f94
lea edx, [ecx + 3]
cmp edi, edx
jne 0x410fac
mov dword [esi + 0x10], edi
lea edi, [eax + 0x4444c350]
lea edx, [eax + ebx]
add edx, 0x4444c350
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0xd0
jmp 0x410f94
cmp edi, edx
je 0x410fc6
mov dword [esi + 0x10], edi
lea edi, [ecx + 5]
cmp dword [esi + 0x10], edi
mov edi, dword [esi + 0x10]
je 0x410ce0
lea edi, [ecx + 2]
cmp dword [esi + 0x10], edi
mov edi, dword [esi + 0x10]
jne 0x410fe3
mov dword [esi + 0xc], ecx
mov ebx, dword [esi + 0x18]
jmp 0x410d13
lea ebx, [ecx + 5]
cmp edi, ebx
mov ebx, dword [esi + 0x18]
mov edx, ecx
jne 0x410c6c
mov dword [esi + 0x10], edi
lea edi, [eax - 0x4f422fe8]
lea ecx, [eax + ebx]
add ecx, 0xb0bdd018
mov dword [esi + 0x14], ecx
and edi, ebx
mov byte [esi + 0xc], 0x58
mov ecx, edx
mov edx, dword [esi + 0x14]
jmp 0x410f6d
mov ecx, dword [esi + 0x1c]
lea edi, [ecx + 5]
mov ecx, dword [esi + 0x10]
cmp ecx, edi
mov edi, ecx
mov ecx, dword [esi + 0x1c]
jne 0x410c81
lea edi, [eax - 0x3f593e88]
lea edx, [eax + ebx]
add edx, 0xc0a6c178
and edi, ebx
add edi, edi
sub edx, edi
mov edi, dword [esi + 0x10]
add dl, 0xb8
jmp 0x410f99
lea edx, [ecx + 5]
cmp edi, edx
jne 0x410fbf
lea edi, [eax - 0x205f7f0]
lea edx, [eax + ebx]
add edx, 0xfdfa0810
and edi, ebx
mov byte [esi + 0xc], 0x90
add edi, edi
sub edx, edi
lea edi, [eax - 0x6c790cc8]
and edi, ebx
add ebx, eax
add ebx, 0x9386f338
add edi, edi
sub ebx, edi
add dl, byte [esi + 0xc]
add bl, dl
add bl, 0x78
mov byte [esi + eax + 0xbc], bl
mov edi, dword [esi + 0x10]
add edi, ecx
movzx edx, dl
not edx
add eax, edx
inc eax
cmp eax, 0x16
jb 0x410c4d
jmp 0x411029
lea edx, [ecx + 8]
mov dword [esi + 0xc], ecx
cmp edi, edx
je 0x410d13
jmp 0x410c3d
lea edx, [ecx + 2]
cmp edi, edx
jne 0x410fce
mov dword [esi + 0xc], ecx
jmp 0x410e56
cmp ecx, 4
ja 0x410e37
mov edx, dword [esi + 0x2c]
mov byte [esi + eax + 0xbc], dl
jmp 0x410fa0
lea edi, [ecx + 8]
cmp dword [esi + 0x10], edi
mov edi, dword [esi + 0x10]
mov ebx, dword [esi + 0x18]
je 0x410ccd
lea edi, [eax + 0xd987278]
mov dword [esi + 0x34], edx
lea edx, [eax + ebx]
add edx, 0xd987278
mov dword [esi + 0x2c], edx
and edi, ebx
add edi, edi
sub dword [esi + 0x2c], edi
mov edx, dword [esi + 0x2c]
add dl, 0xb8
mov dword [esi + 0x2c], edx
mov edx, dword [esi + 0x34]
jmp 0x410dca
mov eax, 0xc55b18
jmp 0x411032
xor eax, eax
jmp 0x411032
mov eax, 0x16ce8a0
lea edi, [esi + eax]
add edi, 0xbc
xor eax, eax
mov ebx, dword [esi + 0x24]
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 + 0x28]
push eax
push edi
call fcn.00450e50
lea ecx, [esi + 0x9c]
mov dword [ebx], ecx
lea eax, [esi + 0x2d4]
mov dword [ebx + 4], eax
mov ebx, ecx
call fcn.0040cd09
add esp, 0x20
mov esp, dword [esi + 0x20]
cmp dword [ebx + 0x14], 0x10
jb 0x41108e
mov ebx, dword [esi + 0x9c]
mov edi, dword [ebp + 8]
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 0x421d35
mov ecx, edi
mov edi, dword [ebp + 8]
mov edx, dword [edi]
mov edi, dword [edi + 0x14]
mov dword [esi + 0x14], edi
mov dword [esi + 0x198], 0
mov edi, eax
add edi, ecx
cmp edi, 0x10
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], eax
jb 0x411105
mov dword [esi + 0x1c], edx
mov edx, edi
or edx, 0xf
mov dword [esi + 0x18], ecx
js 0x411112
cmp edx, 0x17
mov ebx, edx
mov edx, 0x16
mov dword [esi + 0x20], ebx
cmovae edx, ebx
lea ebx, [edx + 1]
mov dword [esi + 0x24], ebx
mov dword [esi + 0x28], edx
cmp edx, 0xfff
jb 0x41112e
mov eax, dword [esi + 0x24]
jmp 0x41111e
lea ebx, [esi + 0x198]
mov eax, 0xf
jmp 0x41114a
mov dword [esi + 0x20], closesocket
mov eax, closesocket
push eax
call fcn.0040130b
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x20]
jmp 0x41113e
push dword [esi + 0x24]
call fcn.004716fe
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x28]
mov dword [esi + 0x198], ebx
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
cmp dword [esi + 0x14], 0x10
cmovb edx, dword [ebp + 8]
mov dword [esi + 0x1a8], edi
mov dword [esi + 0x1ac], eax
push ecx
push edx
push ebx
mov dword [esi + 0x14], edi
mov edi, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, ebx
push dword [esi + 0x10]
push dword [esi + 0xc]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x14]
mov byte [ebx + eax], 0
mov eax, dword [esi + 0x2c4]
cmp eax, 0x10
jb 0x4111c4
mov ecx, dword [esi + 0x2b0]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x4111ba
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x421d3a
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
movsd xmm0, qword [esi + 0x1a8]
movsd qword [esi + 0x2c0], xmm0
movups xmm0, xmmword [esi + 0x198]
movaps xmmword [esi + 0x2b0], xmm0
mov eax, dword [esi + 0xb0]
cmp eax, 0x10
jb 0x411220
mov ecx, dword [esi + 0x9c]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x411216
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x421d3a
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
cmp dword [esi + 0x2c4], 0x10
jb 0x411231
mov eax, dword [esi + 0x2b0]
jmp 0x411237
lea eax, [esi + 0x2b0]
lea ecx, [esi + 0x298]
mov dword [ecx], eax
sub esp, 0xc
mov al, byte [esi + 0x198]
mov byte [esp + 8], al
mov dword [esp + 4], ecx
lea edi, [esi + 0x9c]
mov dword [esp], edi
call fcn.004529f5
add esp, 0xc
xor ebx, ebx
mov dword [esi + 0x204], ebx
call fcn.0044d769
mov dword [esi + 0x208], eax
mov dword [esi + 0xbc], ebx
mov dword [esi + 0xc0], 0xffff
cmp dword [edi + 0x14], 8
jb 0x411290
mov edi, dword [esi + 0x9c]
lea ebx, [esi + 0x198]
push 0xffffffffffffffff
push 3
push ebx
push edi
call fcn.00471de2
lea edi, [esi + 0xbc]
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 + 0x204], ebx
mov dword [esi + 0x208], eax
mov edi, dword [edi]
test edi, edi
je 0x41162d
mov dword [esi + 0x204], 0
call fcn.0044d769
lea ecx, [esi + 0x9c]
call fcn.0040d3aa
cmp edi, 1
je 0x411640
movaps xmm0, xmmword [0x473310]
movups xmmword [esi + 0x9c], xmm0
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov ecx, dword [eax]
xor eax, eax
cmp edi, eax
ja 0x411dfe
mov bl, byte [esi + eax + 0x9c]
movzx edx, bl
mov dword [esi + 0xc], edx
lea edx, [ecx + 1]
mov dword [esi + 0x10], edx
cmp edi, edx
jae 0x411380
cmp ecx, eax
ja 0x41226d
lea edx, [edi + ecx]
cmp edx, eax
mov dword [esi + 0x1c], edx
jbe 0x4113b0
mov ebx, edi
mov dword [esi + 0x14], ecx
lea edi, [ecx + 2]
cmp ebx, edi
mov edi, ebx
mov edx, dword [esi + 0xc]
je 0x411583
cmp edi, dword [esi + 0x10]
jne 0x41149d
lea edi, [eax + 0x82]
and edi, edx
add edi, edi
add edx, eax
sub edx, edi
add edx, 0xe7923ef4
mov edi, dword [esi + 0x1c]
mov ecx, dword [esi + 0x14]
jmp 0x411509
je 0x41141a
mov edx, ecx
mov ecx, edi
lea edi, [edx + 2]
cmp ecx, edi
jne 0x411424
lea edi, [eax + 0x4b]
mov ebx, edx
mov edx, dword [esi + 0xc]
and edi, edx
add edi, edi
add edx, eax
sub edx, edi
add edx, 0xaddd993e
jmp 0x411505
mov dword [esi + 0x18], edi
cmp edx, 3
mov edx, dword [esi + 0xc]
jne 0x41144f
lea edi, [eax + 0x1311a0d1]
lea ebx, [eax + edx]
add ebx, 0x1311a0d1
and edi, edx
add edi, edi
sub ebx, edi
add bl, 0x49
mov byte [esi + eax + 0x9c], bl
not ecx
add ecx, eax
movzx eax, bl
sub ecx, eax
mov eax, ecx
mov edi, dword [esi + 0x18]
lea ecx, [eax + 0x26632384]
and ecx, edx
add edx, eax
add edx, 0x26632384
add ecx, ecx
sub edx, ecx
add dl, 0x64
mov byte [esi + eax + 0x9c], dl
sub eax, edi
inc edi
mov bl, byte [esi + eax + 0x9a]
add eax, 0xfffffffe
mov ecx, dword [esi + 0x10]
movzx edx, bl
add edx, ecx
jmp 0x411511
mov dword [esi + 0x14], edx
lea edi, [edx + 4]
cmp ecx, edi
mov edx, dword [esi + 0xc]
jne 0x411485
lea edi, [eax + 0xb1]
and edi, edx
add edi, edi
add edx, eax
sub edx, edi
add edx, 0xd4809dda
mov ebx, dword [esi + 0x14]
add ecx, ebx
jmp 0x411505
mov dword [esi + 0x14], ecx
lea edi, [ecx + 8]
mov ecx, dword [esi + 0x18]
cmp ecx, edi
jbe 0x4114c3
lea edi, [eax - 0x6593db59]
lea ecx, [eax + edx]
add ecx, 0x9a6c24a7
and edi, edx
add edi, edi
sub ecx, edi
add cl, 0x6f
mov edi, dword [esi + 0x18]
cmp edi, dword [esi + 0x10]
jne 0x411515
mov ecx, dword [esi + 0x14]
jmp 0x41141a
mov edx, dword [esi + 0x14]
lea edi, [edx + 5]
cmp ecx, edi
mov edi, ecx
jne 0x41154c
mov dword [esi + 0x10], edx
jmp 0x411583
mov ecx, edi
mov ebx, dword [esi + 0x14]
lea edi, [ebx + 0xa]
cmp ecx, edi
jne 0x411596
lea edi, [eax + 0xe8]
and edi, edx
add edi, edi
add edx, eax
sub edx, edi
add edx, 0xe354490
jmp 0x411505
mov edi, ecx
cmp ecx, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
je 0x41155d
lea edi, [ecx + 2]
cmp dword [esi + 0x18], edi
mov edi, dword [esi + 0x18]
je 0x411583
mov edx, ecx
mov ecx, edi
lea edi, [edx + 5]
cmp ecx, edi
jne 0x4115d2
lea edi, [eax + 0xb]
mov ebx, edx
mov edx, dword [esi + 0xc]
and edi, edx
add edi, edi
add edx, eax
sub edx, edi
add edx, 0x823e45be
mov edi, ecx
mov ecx, ebx
not edx
or edx, 0xffffff00
add eax, edx
jmp 0x411587
mov dword [esi + 0x20], ecx
mov ecx, edi
mov ebx, dword [esi + 0x14]
lea edi, [ebx + 3]
cmp ecx, edi
mov ecx, ebx
je 0x4113bf
lea edi, [ecx + 2]
cmp dword [esi + 0x18], edi
jne 0x4115c2
lea edi, [eax + 0x54]
and edi, edx
add edi, edi
add edx, eax
sub edx, edi
add edx, 0xf14af908
mov edi, dword [esi + 0x1c]
jmp 0x411509
mov ecx, edi
lea edi, [edx + 3]
cmp ecx, edi
mov edi, ecx
mov ecx, edx
jne 0x411331
mov ebx, edi
lea edi, [eax - 0x3a3469fb]
mov edx, dword [esi + 0xc]
lea ecx, [edx + eax]
add ecx, 0xc5cb9605
and edi, edx
add edi, edi
sub ecx, edi
mov edi, ebx
add cl, 0xdd
mov byte [esi + eax + 0x9c], cl
dec eax
mov ecx, dword [esi + 0x10]
inc eax
cmp eax, 0x10
jb 0x411312
jmp 0x411e08
lea edi, [ebx + 4]
cmp ecx, edi
jne 0x4115a7
mov edi, ecx
mov dword [esi + 0x10], ebx
jmp 0x4113ec
lea edi, [ebx + 0x5a]
lea ecx, [ebx + 0x5d]
add ebx, 0x65
mov eax, 0
cmp edi, ebx
jae 0x411312
jmp 0x411302
lea edi, [ecx + 4]
cmp dword [esi + 0x18], edi
mov edi, dword [esi + 0x18]
jne 0x4115e9
mov dword [esi + 0x10], ecx
jmp 0x411583
lea edi, [edx + 3]
cmp ecx, edi
mov edx, dword [esi + 0xc]
jne 0x411610
mov edi, ecx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x10], ecx
jmp 0x4113ec
cmp ecx, 8
ja 0x41155d
lea edi, [ecx + 7]
cmp dword [esi + 0x18], edi
mov edi, dword [esi + 0x18]
je 0x41155d
mov edx, dword [esi + 0x20]
mov byte [esi + eax + 0x9c], dl
jmp 0x411587
lea edi, [eax + 0x135182b3]
lea ecx, [eax + edx]
add ecx, 0x135182b3
and edi, edx
add edi, edi
sub ecx, edi
add cl, 0x1b
jmp 0x411474
test ebx, ebx
jne 0x421d40
lea ecx, [esi + 0x9c]
call fcn.0040d3aa
mov dword [esi + 0x24], esp
sub esp, 0x20
mov eax, esp
mov dword [esi + 0x28], eax
add eax, 8
mov dword [esi + 0x2c], eax
movaps xmm0, xmmword [0x4733d0]
movups xmmword [esi + 0x198], xmm0
mov dword [esi + 0x1a8], 0x9ca1acab
mov word [esi + 0x1ac], 0xe1a4
mov byte [esi + 0x1ae], 0x6c
xor eax, eax
mov dword [esi + 0x1b3], eax
mov dword [esi + 0x1af], eax
mov dword [esi + 0x1b8], eax
mov dword [esi + 0x1b4], eax
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov ecx, dword [eax]
xor eax, eax
cmp edi, eax
ja 0x411ced
mov dword [esi + 0x1c], ebx
movzx edx, byte [esi + eax + 0x198]
lea ebx, [ecx + 1]
mov dword [esi + 0x18], ebx
mov dword [esi + 0xc], edi
cmp edi, ebx
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], edx
jae 0x41175d
lea ecx, [eax + 0xdaab]
lea ebx, [eax + edx]
add ebx, 0xdaab
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x53
mov dword [esi + 0x1c], ebx
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
cmp edx, eax
ja 0x411cf8
lea ebx, [edx + 6]
cmp edi, ebx
jae 0x4117b1
mov dword [esi + 0x20], ebx
lea ecx, [eax + 0x11f007]
mov edx, dword [esi + 0x14]
lea ebx, [eax + edx]
add ebx, 0x11f007
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0xcf
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
lea ecx, [edi + edx]
mov dword [esi + 0x1c], ecx
cmp ecx, eax
jbe 0x4117ff
lea ecx, [edx + 3]
cmp edi, ecx
jne 0x4118a7
lea ecx, [eax + 0x616026]
mov ebx, dword [esi + 0x14]
and ecx, ebx
add ebx, eax
add ebx, 0x616026
add ecx, ecx
sub ebx, ecx
add bl, 0xf6
jmp 0x41189f
jne 0x411782
lea ecx, [eax + 0x29001]
lea ebx, [eax + edx]
add ebx, 0x29001
and ecx, edx
add ecx, ecx
sub ebx, ecx
mov ecx, dword [esi + 0x10]
add bl, 0xf9
mov edi, dword [esi + 0xc]
jmp 0x411b9e
mov edx, ecx
add ecx, 2
mov edi, dword [esi + 0xc]
cmp edi, ecx
jne 0x41184e
lea ecx, [eax + 0x7b003]
mov ebx, dword [esi + 0x14]
and ecx, ebx
add ebx, eax
add ebx, 0x7b003
add ecx, ecx
sub ebx, ecx
add bl, 0xeb
jmp 0x411ad6
cmp edi, dword [esi + 0x18]
jne 0x41187a
lea ecx, [eax + 0x13a55d]
mov edx, dword [esi + 0x14]
lea ebx, [eax + edx]
add ebx, 0x13a55d
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x75
lea edi, [eax + 0x57facd]
lea ecx, [edx + eax]
add ecx, 0x57facd
and edi, edx
add edi, edi
sub ecx, edi
add cl, 0x65
mov byte [esi + eax + 0x198], cl
mov edi, dword [esi + 0xc]
mov ecx, dword [esi + 0x18]
jmp 0x4118a1
lea ecx, [edx + 0x20]
cmp edi, ecx
jae 0x4118fa
lea ecx, [eax + 0xdaab]
mov edx, dword [esi + 0x14]
lea ebx, [eax + edx]
add ebx, 0xdaab
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x53
cmp dword [esi + 0x1c], 0x28
jne 0x41197d
lea ecx, [eax + 0x5a8ace]
lea ebx, [eax + edx]
add ebx, 0x5a8ace
and ecx, edx
add ecx, ecx
sub ebx, ecx
sub bl, dl
add bl, 0x5e
jmp 0x411b3f
lea ecx, [edx + 4]
cmp edi, ecx
jne 0x411926
lea ecx, [eax + 0x96559]
mov ebx, dword [esi + 0x14]
and ecx, ebx
add ebx, eax
add ebx, 0x96559
add ecx, ecx
sub ebx, ecx
add bl, 0x91
add edi, edx
jmp 0x411ad6
lea ecx, [edx + 3]
cmp edi, ecx
jne 0x411953
lea ecx, [eax + 0x171009]
mov ebx, dword [esi + 0x14]
and ecx, ebx
add ebx, eax
add ebx, 0x171009
add ecx, ecx
sub ebx, ecx
add bl, 0xc1
mov ecx, edx
dec eax
jmp 0x411ba2
lea ecx, [edx + 0x20]
cmp edi, ecx
jne 0x4119a6
lea edi, [eax + 0x63157c]
mov edx, dword [esi + 0x14]
lea ebx, [eax + edx]
add ebx, 0x63157c
and edi, edx
mov byte [esi + 0xc], 0x9c
add edi, edi
sub ebx, edi
lea edi, [eax + 0x59b023]
and edi, edx
lea ecx, [edx + eax]
add ecx, 0x59b023
add edi, edi
sub ecx, edi
add bl, byte [esi + 0xc]
add cl, bl
add cl, 0xb
mov byte [esi + eax + 0x198], cl
mov edi, dword [esi + 0x1c]
jmp 0x411ad6
cmp edi, dword [esi + 0x18]
jne 0x4119d1
lea ecx, [eax + 0x23e00e]
mov edx, dword [esi + 0x14]
lea ebx, [eax + edx]
add ebx, 0x23e00e
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x9e
mov ecx, dword [esi + 0x10]
jmp 0x411b9e
lea ecx, [edx + 5]
cmp edi, ecx
jne 0x411a05
lea ecx, [eax + 0xe855b]
mov ebx, dword [esi + 0x14]
lea edx, [eax + ebx]
add edx, 0xe855b
and ecx, ebx
mov ebx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x83
jmp 0x4117f7
lea ecx, [edx + 5]
cmp edi, ecx
jne 0x411a30
lea ecx, [eax + 0x1c300b]
mov ebx, dword [esi + 0x14]
and ecx, ebx
add ebx, eax
add ebx, 0x1c300b
add ecx, ecx
sub ebx, ecx
add bl, 0xb3
jmp 0x411ad6
mov edi, dword [esi + 0xc]
cmp edi, dword [esi + 0x18]
jne 0x411a58
lea ecx, [eax + 0x35d015]
lea ebx, [eax + edx]
add ebx, 0x35d015
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x6d
jmp 0x4117d5
lea ecx, [edx + 2]
cmp edi, ecx
jne 0x411a85
lea ecx, [eax + 0x668028]
mov edx, dword [esi + 0x14]
and ecx, edx
lea ebx, [eax + edx]
add ebx, 0x668028
add ecx, ecx
sub ebx, ecx
add bl, 0xe8
jmp 0x411ad6
mov edx, dword [esi + 0x10]
lea ecx, [edx + 2]
cmp edi, ecx
jne 0x411ab0
lea ecx, [eax + 0x259564]
mov edx, dword [esi + 0x14]
lea ebx, [eax + edx]
add ebx, 0x259564
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x44
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x18], ecx
jmp 0x411b6f
lea ecx, [edx + 3]
cmp edi, ecx
jne 0x4116eb
lea ecx, [eax + 0x103ab1]
mov edx, dword [esi + 0x14]
lea ebx, [eax + edx]
add ebx, 0x103ab1
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x29
jmp 0x4117d5
cmp edi, ebx
mov edx, dword [esi + 0x14]
jne 0x411ae5
lea ecx, [eax + 0x1de561]
lea ebx, [eax + edx]
add ebx, 0x1de561
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x59
jmp 0x411b3f
mov edx, dword [esi + 0x10]
lea ecx, [edx + 2]
cmp edi, ecx
jne 0x411b19
lea ecx, [eax + 0x393ac1]
mov ebx, dword [esi + 0x14]
and ecx, ebx
add ebx, eax
add ebx, 0x393ac1
add ecx, ecx
sub ebx, ecx
add bl, 0xb9
jmp 0x41189f
lea ecx, [edx + 0x10]
cmp edi, ecx
jne 0x411bb1
lea ecx, [eax + 0x68357e]
mov edx, dword [esi + 0x14]
lea ebx, [eax + edx]
add ebx, 0x68357e
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x8e
jmp 0x411b3f
lea ecx, [edx + 3]
cmp edi, ecx
jne 0x411bda
lea ecx, [eax + 0x290010]
mov edx, dword [esi + 0x14]
and ecx, edx
lea ebx, [eax + edx]
add ebx, 0x290010
add ecx, ecx
sub ebx, ecx
add bl, 0x90
movzx ecx, bl
not ecx
add eax, ecx
mov ecx, dword [esi + 0x10]
jmp 0x411ba2
mov dword [esi + 0x20], ebx
mov ecx, dword [esi + 0x10]
add ecx, 4
cmp edi, ecx
mov ebx, dword [esi + 0x1c]
jne 0x41171f
lea ecx, [eax + 0x21500d]
lea ebx, [eax + edx]
add ebx, 0x21500d
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0xa5
mov edi, dword [esi + 0xc]
jmp 0x41191e
lea ecx, [edx + 4]
cmp edi, ecx
jne 0x411bfc
lea ecx, [eax + 0x401019]
mov edx, dword [esi + 0x14]
lea ebx, [eax + edx]
add ebx, 0x401019
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x51
lea edi, [eax + 0x5b6579]
lea ecx, [edx + eax]
add ecx, 0x5b6579
and edi, edx
add edi, edi
sub ecx, edi
add cl, 0xb1
mov byte [esi + eax + 0x198], cl
mov edi, dword [esi + 0x10]
not edi
add edi, eax
movzx eax, cl
sub edi, eax
mov eax, edi
mov edi, dword [esi + 0xc]
lea ecx, [eax + 0x5c4024]
and ecx, edx
add edx, eax
add edx, 0x5c4024
add ecx, ecx
sub edx, ecx
add dl, 4
mov byte [esi + eax + 0x198], dl
sub eax, edi
inc edi
movzx edx, byte [esi + eax + 0x196]
add eax, 0xfffffffe
mov ecx, dword [esi + 0x18]
add edx, ecx
add eax, edx
inc eax
cmp eax, 0x24
jb 0x4116a3
jmp 0x411cf4
cmp edi, dword [esi + 0x18]
mov edx, dword [esi + 0x14]
jne 0x411cd1
lea ecx, [eax + 0x6ba02a]
lea ebx, [eax + edx]
add ebx, 0x6ba02a
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0xda
jmp 0x41191e
cmp edi, dword [esi + 0x20]
mov edx, dword [esi + 0x14]
jne 0x411c21
lea edi, [eax + 0x2c6abc]
lea ebx, [eax + edx]
add ebx, 0x2c6abc
and edi, edx
mov byte [esi + 0xc], 0xdc
jmp 0x4118ca
cmp edi, dword [esi + 0x20]
jne 0x411c4c
lea ecx, [eax + 0x41c56f]
mov edx, dword [esi + 0x14]
lea ebx, [eax + edx]
add ebx, 0x41c56f
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0xf7
jmp 0x4119fa
mov ecx, dword [esi + 0x10]
add ecx, 5
cmp edi, ecx
jne 0x411825
lea ecx, [eax + 0x318abe]
lea ebx, [eax + edx]
add ebx, 0x318abe
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0xce
jmp 0x4117d5
mov edx, dword [esi + 0x10]
lea ecx, [edx + 7]
cmp edi, ecx
jne 0x411c75
lea ecx, [eax + 0x520020]
mov ebx, dword [esi + 0x14]
and ecx, ebx
add ebx, eax
add ebx, 0x520020
add ecx, ecx
sub ebx, ecx
add bl, 0x20
jmp 0x41189f
lea ecx, [edx + 3]
cmp edi, ecx
jne 0x411c9c
lea ecx, [eax + 0x53b576]
mov edx, dword [esi + 0x14]
lea ebx, [eax + edx]
add ebx, 0x53b576
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0xc6
jmp 0x4117f7
cmp edx, 4
ja 0x411caf
mov ecx, edx
mov byte [esi + eax + 0x198], bl
jmp 0x411ba2
lea ecx, [eax + 0x572022]
mov edx, dword [esi + 0x14]
lea ebx, [eax + edx]
add ebx, 0x572022
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, bl
add bl, 0x24
jmp 0x4117d5
lea ebx, [eax + edx]
add ebx, 0x6fe581
add eax, 0x6fe581
and eax, edx
add eax, eax
sub ebx, eax
add bl, 0x79
jmp 0x411693
mov eax, 0xd3c58f
jmp 0x411cfd
xor eax, eax
jmp 0x411cfd
mov eax, 0x152eae4
lea edi, [esi + eax]
add edi, 0x198
xor eax, eax
mov ebx, dword [esi + 0x28]
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 + 0x2c]
push eax
push edi
call fcn.00450e50
lea ecx, [esi + 0xbc]
mov dword [ebx], ecx
lea eax, [esi + 0x2d4]
mov dword [ebx + 4], eax
mov ebx, ecx
call fcn.0040cd09
add esp, 0x20
mov esp, dword [esi + 0x24]
cmp dword [ebx + 0x14], 0x10
jb 0x411d59
mov ebx, dword [esi + 0xbc]
mov edi, dword [ebp + 8]
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 0x421d35
mov ecx, edi
mov edi, dword [ebp + 8]
mov edx, dword [edi]
mov edi, dword [edi + 0x14]
mov dword [esi + 0x18], edi
mov dword [esi + 0x9c], 0
mov edi, eax
add edi, ecx
cmp edi, 0x10
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], eax
jb 0x411dd0
mov dword [esi + 0x20], edx
mov edx, edi
or edx, 0xf
mov dword [esi + 0x1c], ecx
js 0x411ddf
cmp edx, 0x17
mov ebx, edx
mov edx, 0x16
mov dword [esi + 0x24], ebx
cmovae edx, ebx
lea ebx, [edx + 1]
mov dword [esi + 0x28], ebx
mov dword [esi + 0xc], edx
cmp edx, 0xfff
jb 0x411e0f
mov eax, dword [esi + 0x28]
jmp 0x411deb
lea ebx, [esi + 0x9c]
mov dword [esi + 0xc], 0xf
jmp 0x411e28
mov dword [esi + 0x24], closesocket
mov eax, closesocket
push eax
call fcn.0040130b
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x24]
mov dword [esi + 0xc], eax
jmp 0x411e1c
mov eax, 0x9552f7
jmp 0x412272
xor eax, eax
jmp 0x412272
push dword [esi + 0x28]
call fcn.004716fe
add esp, 4
mov ebx, eax
mov dword [esi + 0x9c], ebx
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
cmp eax, 0x10
cmovb edx, dword [ebp + 8]
mov dword [esi + 0xac], edi
mov eax, dword [esi + 0xc]
mov dword [esi + 0xb0], eax
push ecx
push edx
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 + 0x2c4]
cmp eax, 0x10
jb 0x411ea7
mov ecx, dword [esi + 0x2b0]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x411e9d
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x421d3a
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
movsd xmm0, qword [esi + 0xac]
movsd qword [esi + 0x2c0], xmm0
movups xmm0, xmmword [esi + 0x9c]
movaps xmmword [esi + 0x2b0], xmm0
mov eax, dword [esi + 0xd0]
cmp eax, 0x10
jb 0x411f03
mov ecx, dword [esi + 0xbc]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x411ef9
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x421d3a
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
cmp dword [esi + 0x2c4], 0x10
jb 0x411f14
mov eax, dword [esi + 0x2b0]
jmp 0x411f1a
lea eax, [esi + 0x2b0]
lea ecx, [esi + 0x298]
mov dword [ecx], eax
sub esp, 0xc
mov al, byte [esi + 0x198]
mov byte [esp + 8], al
mov dword [esp + 4], ecx
lea edi, [esi + 0x9c]
mov dword [esp], edi
call fcn.004529f5
add esp, 0xc
xor ebx, ebx
mov dword [esi + 0x204], ebx
call fcn.0044d769
mov dword [esi + 0x208], eax
mov dword [esi + 0xbc], ebx
mov dword [esi + 0xc0], 0xffff
cmp dword [edi + 0x14], 8
jb 0x411f73
mov edi, dword [esi + 0x9c]
push 0xffffffffffffffff
push 3
lea ebx, [esi + 0x198]
push ebx
push edi
call fcn.00471de2
lea edi, [esi + 0xbc]
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 + 0x204], ebx
mov dword [esi + 0x208], eax
mov edi, dword [edi]
test edi, edi
je 0x412244
mov dword [esi + 0x204], 0
call fcn.0044d769
lea ecx, [esi + 0x9c]
call fcn.0040d3aa
cmp edi, 1
je 0x41adbb
movaps xmm0, xmmword [0x4733e0]
movups xmmword [esi + 0x198], xmm0
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov ecx, dword [eax]
xor eax, eax
cmp edi, eax
ja 0x41225c
mov dl, byte [esi + eax + 0x198]
movzx ebx, dl
mov dword [esi + 0x10], ebx
lea ebx, [ecx + 1]
mov dword [esi + 0xc], ebx
cmp edi, ebx
jae 0x41205f
cmp ecx, eax
ja 0x412575
mov ebx, ecx
mov ecx, edi
add edi, ebx
cmp edi, eax
jbe 0x4120bd
lea edx, [ebx + 4]
cmp ecx, edx
jne 0x4120ef
lea edi, [eax + 0x7b85be20]
mov edx, dword [esi + 0x10]
add edx, eax
add edx, 0x7b85be20
mov dword [esi + 0xc], edx
and edi, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
add edi, edi
sub edx, edi
add dl, 0x20
mov edi, ecx
mov ecx, ebx
jmp 0x4121c1
je 0x412131
mov ebx, ecx
mov ecx, edi
lea edi, [ebx + 2]
cmp ecx, edi
mov edi, ecx
je 0x4120fc
mov ecx, edi
lea edi, [ebx + 3]
mov dword [esi + 0x14], ecx
cmp ecx, edi
mov ecx, ebx
jne 0x41214e
lea edi, [eax - 0x95369ac]
mov edx, dword [esi + 0x10]
lea ebx, [edx + eax]
add ebx, 0xf6ac9654
and edi, edx
add edi, edi
sub ebx, edi
add bl, 0xb4
mov byte [esi + eax + 0x198], bl
not ecx
add ecx, eax
movzx eax, bl
sub ecx, eax
mov eax, ecx
mov edi, dword [esi + 0x14]
mov ebx, dword [esi + 0xc]
jmp 0x4120fc
cmp ecx, dword [esi + 0xc]
mov edi, ecx
jne 0x41213b
mov ebx, edi
lea edi, [eax - 0x1e82899c]
mov edx, dword [esi + 0x10]
lea ecx, [edx + eax]
add ecx, 0xe17d7664
and edi, edx
add edi, edi
sub ecx, edi
mov edi, ebx
add cl, 0x44
mov byte [esi + eax + 0x198], cl
mov ecx, dword [esi + 0xc]
jmp 0x41214b
lea edi, [ebx + 9]
cmp ecx, edi
mov edi, ecx
jne 0x411fe5
mov dword [esi + 0xc], ebx
lea ecx, [eax + 0x3bf85e50]
mov edx, dword [esi + 0x10]
and ecx, edx
lea ebx, [eax + edx]
add ebx, 0x3bf85e50
add ecx, ecx
sub ebx, ecx
add bl, 0xd0
mov byte [esi + eax + 0x198], bl
sub eax, edi
inc edi
mov dl, byte [esi + eax + 0x196]
add eax, 0xfffffffe
mov ecx, dword [esi + 0xc]
movzx edx, dl
add edx, ecx
jmp 0x4121c6
mov ecx, ebx
mov dword [esi + 0x14], edi
lea edi, [ebx + 2]
cmp dword [esi + 0x14], edi
mov edi, dword [esi + 0x14]
jne 0x41219a
dec eax
jmp 0x4121c8
lea edi, [ecx + 5]
mov ebx, dword [esi + 0x14]
cmp ebx, edi
jne 0x4121d7
lea edi, [eax - 0x7b26d834]
mov ebx, dword [esi + 0x10]
lea edx, [eax + ebx]
add edx, 0x84d927cc
and edi, ebx
add edi, edi
sub edx, edi
lea edi, [eax + 0x6c15065c]
and edi, ebx
add ebx, eax
add ebx, 0x6c15065c
add edi, edi
sub ebx, edi
add dl, 0x6c
add bl, dl
add bl, 0x7c
mov byte [esi + eax + 0x198], bl
mov edi, dword [esi + 0x14]
add edi, ecx
jmp 0x4121c1
mov ebx, edi
lea edi, [ecx + 3]
cmp ebx, edi
jne 0x4121e9
lea edi, [eax - 0x3d63f924]
mov ebx, dword [esi + 0x10]
lea edx, [eax + ebx]
add edx, 0xc29c06dc
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0xfc
mov edi, dword [esi + 0x14]
movzx edx, dl
not edx
add eax, edx
inc eax
cmp eax, 0x10
jb 0x411ff5
jmp 0x412266
lea edi, [ecx + 9]
cmp ebx, edi
mov edi, ebx
jne 0x412014
jmp 0x4120c4
lea edi, [ecx + 7]
cmp ebx, edi
je 0x412088
lea edi, [ecx + 8]
mov ebx, dword [esi + 0x14]
cmp ebx, edi
jne 0x412205
mov edi, ebx
jmp 0x412131
lea edi, [ecx + 6]
cmp dword [esi + 0x14], edi
mov edi, dword [esi + 0x14]
je 0x4120ea
cmp ecx, 9
ja 0x4120c4
lea edi, [eax + 0x454bc7fc]
mov ebx, dword [esi + 0x10]
lea edx, [eax + ebx]
add edx, 0x454bc7fc
and edi, ebx
add edi, edi
sub edx, edi
mov edi, dword [esi + 0x14]
add dl, 0x1c
mov byte [esi + eax + 0x198], dl
jmp 0x4121c8
test ebx, ebx
jne 0x421d40
lea ecx, [esi + 0x9c]
call fcn.0040d3aa
jmp 0x41adbb
mov eax, 0x136254c
jmp 0x41257a
xor eax, eax
jmp 0x41257a
mov eax, 0x143d044
lea edi, [esi + eax]
add edi, 0x9c
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x10]
cmp dword [edx + 0x14], 0x10
jb 0x412295
mov edx, dword [ebp + 8]
mov edx, dword [edx]
push eax
push edi
push 0
push ecx
push edx
call fcn.00452a54
add esp, 0x14
cmp eax, 0xffffffff
jne 0x412849
mov dword [esi + 0x198], 0xfd09f215
mov dword [esi + 0x19c], 0x5f1fcf3
mov dword [esi + 0x1a0], 0x72709f2
mov word [esi + 0x1a4], 0x203
mov byte [esi + 0x1a6], 0x68
xor eax, eax
mov dword [esi + 0x1ab], eax
mov dword [esi + 0x1a7], eax
mov byte [esi + 0x1af], 0
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov ecx, dword [eax]
xor eax, eax
cmp edi, eax
ja 0x412564
mov dl, byte [esi + eax + 0x198]
mov dword [esi + 0x10], edx
movzx edx, dl
mov dword [esi + 0xc], edx
lea ebx, [ecx + 1]
cmp edi, ebx
jae 0x412366
cmp ecx, eax
ja 0x41280a
lea edx, [edi + ecx]
cmp edx, eax
jbe 0x412372
mov dword [esi + 0x18], edx
lea edx, [ecx + 5]
cmp edi, edx
je 0x4124b5
lea edx, [ecx + 6]
cmp edi, edx
jne 0x412453
lea edi, [eax + 0x2f075f34]
mov ebx, dword [esi + 0xc]
lea edx, [eax + ebx]
add edx, 0x2f075f34
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0x94
jmp 0x412504
jne 0x4123c0
mov ebx, ecx
mov edx, dword [esi + 0x10]
jmp 0x412447
cmp edx, 9
je 0x4123e0
cmp edi, ebx
je 0x41248d
mov dword [esi + 0x18], edx
mov dword [esi + 0x14], edi
lea edi, [ecx + 2]
cmp dword [esi + 0x14], edi
mov edi, dword [esi + 0x14]
je 0x4124b5
lea edi, [ecx + 3]
cmp dword [esi + 0x14], edi
jne 0x4124ce
lea edi, [eax + 0x720b0175]
mov ebx, dword [esi + 0xc]
lea edx, [eax + ebx]
add edx, 0x720b0175
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0xcd
jmp 0x412504
mov edx, edi
lea edi, [ecx + 2]
cmp edx, edi
jne 0x4123d3
mov edi, edx
mov dword [esi + 0x10], ecx
mov ebx, dword [esi + 0xc]
jmp 0x412416
lea edi, [ecx + 3]
cmp edx, edi
mov edi, edx
jne 0x412480
mov dword [esi + 0x14], edi
lea edi, [eax + 0x366a1c3b]
mov dword [esi + 0x10], ebx
mov ebx, dword [esi + 0xc]
lea edx, [ebx + eax]
add edx, 0x366a1c3b
and edi, ebx
add edi, edi
sub edx, edi
mov edi, dword [esi + 0x14]
add dl, 0x63
mov byte [esi + eax + 0x198], dl
not ecx
add ecx, eax
movzx eax, dl
sub ecx, eax
mov eax, ecx
lea ecx, [eax - 0x58a0dc54]
and ecx, ebx
lea edx, [eax + ebx]
add edx, 0xa75f23ac
add ecx, ecx
sub edx, ecx
add dl, 0x4c
mov byte [esi + eax + 0x198], dl
sub eax, edi
inc edi
mov dl, byte [esi + eax + 0x196]
add eax, 0xfffffffe
mov ebx, dword [esi + 0x10]
mov ecx, ebx
movzx edx, dl
add edx, ecx
add eax, edx
jmp 0x412530
lea edx, [ecx + 8]
cmp edi, edx
jne 0x4124b8
mov dword [esi + 0x14], edi
lea edi, [eax - 0xd248308]
mov ebx, dword [esi + 0xc]
lea edx, [eax + ebx]
add edx, 0xf2db7cf8
and edi, ebx
add edi, edi
sub edx, edi
mov edi, dword [esi + 0x14]
add dl, 0x38
jmp 0x412527
lea edi, [ecx + 8]
cmp edx, edi
mov edi, edx
jne 0x41231e
lea edx, [eax + 0x7295fe77]
mov dword [esi + 0x10], ebx
mov ebx, dword [esi + 0xc]
lea ecx, [ebx + eax]
add ecx, 0x7295fe77
and edx, ebx
mov ebx, dword [esi + 0x10]
add edx, edx
sub ecx, edx
add cl, 0xbf
mov byte [esi + eax + 0x198], cl
dec eax
jmp 0x412530
lea edx, [ecx + 9]
mov dword [esi + 0x10], ecx
cmp edi, edx
mov ebx, dword [esi + 0xc]
je 0x412416
jmp 0x4122ef
lea edi, [ecx + 6]
cmp dword [esi + 0x14], edi
mov edi, dword [esi + 0x14]
je 0x4123e0
test edi, edi
je 0x41253e
lea edi, [eax - 0x1c74fa18]
mov edx, dword [esi + 0xc]
lea ebx, [eax + edx]
add ebx, 0xe38b05e8
and edi, edx
add edi, edi
sub ebx, edi
mov edx, dword [esi + 0x10]
add dl, bl
mov ebx, dword [esi + 0xc]
add dl, 0xa8
lea edi, [eax + 0x54800d59]
and edi, ebx
add ebx, eax
add ebx, 0x54800d59
add edi, edi
sub ebx, edi
add bl, dl
add bl, 0x91
mov byte [esi + eax + 0x198], bl
mov edi, dword [esi + 0x18]
movzx edx, dl
not edx
add eax, edx
mov ebx, ecx
inc eax
mov ecx, ebx
cmp eax, 0x18
jb 0x4122ff
jmp 0x41256e
lea edx, [eax + 0x70f50771]
mov edi, dword [esi + 0xc]
and edx, edi
lea ebx, [eax + edi]
add ebx, 0x70f50771
add edx, edx
sub ebx, edx
add bl, 0xe9
mov byte [esi + eax + 0x198], bl
xor edi, edi
jmp 0x41252e
mov eax, 0xd6075d
jmp 0x41280f
xor eax, eax
jmp 0x41280f
mov eax, 0x16a5d50
lea edi, [esi + eax]
add edi, 0x198
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x10]
cmp dword [edx + 0x14], 0x10
jb 0x41259d
mov edx, dword [ebp + 8]
mov edx, dword [edx]
push eax
push edi
push 0
push ecx
push edx
call fcn.00452a54
add esp, 0x14
cmp eax, 0xffffffff
jne 0x416d41
movaps xmm0, xmmword [0x4733f0]
movups xmmword [esi + 0x9c], xmm0
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov edx, edi
mov ecx, dword [eax]
xor eax, eax
cmp edx, eax
ja 0x4127f9
mov bl, byte [esi + eax + 0x9c]
movzx edi, bl
mov dword [esi + 0xc], edi
lea edi, [ecx + 1]
mov dword [esi + 0x14], edi
cmp edx, edi
jae 0x412651
cmp ecx, eax
ja 0x416d05
lea edi, [edx + ecx]
cmp edi, eax
ja 0x4125c2
cmp edi, 2
je 0x41265e
cmp edx, dword [esi + 0x14]
je 0x412737
mov dword [esi + 0x10], edx
lea edx, [ecx + 2]
cmp dword [esi + 0x10], edx
mov edx, dword [esi + 0x10]
je 0x412760
lea edx, [ecx + 3]
cmp dword [esi + 0x10], edx
mov edx, dword [esi + 0x10]
jne 0x412770
lea ebx, [eax + 0x302ecfe9]
mov edx, dword [esi + 0xc]
add edx, eax
add edx, 0x302ecfe9
and ebx, dword [esi + 0xc]
add ebx, ebx
sub edx, ebx
add dl, 0xa1
jmp 0x412721
jne 0x412657
mov edi, ecx
jmp 0x4126c9
lea edi, [ecx + 3]
cmp edx, edi
jne 0x4126d7
mov dword [esi + 0x10], edx
lea edx, [eax + 0x12877305]
mov edi, eax
mov eax, ecx
mov ecx, dword [esi + 0xc]
and edx, ecx
add edx, edx
lea ebx, [ecx + edi]
add ebx, 0x12877305
sub ebx, edx
add bl, 0xdd
mov byte [esi + edi + 0x9c], bl
movzx edx, bl
not eax
add eax, edi
mov ecx, eax
sub ecx, edx
lea edi, [ecx - 0x58f616ac]
mov ebx, dword [esi + 0xc]
and edi, ebx
add ebx, ecx
add ebx, 0xa709e954
add edi, edi
sub ebx, edi
add bl, 0xb4
mov byte [esi + ecx + 0x9c], bl
add edx, dword [esi + 0x10]
sub eax, edx
mov edx, dword [esi + 0x10]
inc edx
mov bl, byte [esi + eax + 0x9a]
add eax, 0xfffffffe
mov edi, dword [esi + 0x14]
movzx ecx, bl
add ecx, edi
add eax, ecx
mov ecx, edi
jmp 0x412761
lea edi, [ecx + 5]
cmp edx, edi
jne 0x41272c
lea edi, [eax - 0x755ffdfd]
mov dword [esi + 0x10], edx
mov ebx, dword [esi + 0xc]
lea edx, [eax + ebx]
add edx, 0x8aa00203
and edi, ebx
add edi, edi
sub edx, edi
lea edi, [eax - 0x167d7999]
and edi, ebx
add ebx, eax
add ebx, 0xe9828667
add edi, edi
sub ebx, edi
add dl, 0xeb
add bl, dl
add bl, 0x2f
mov byte [esi + eax + 0x9c], bl
mov edi, dword [esi + 0x10]
add edi, ecx
movzx edx, dl
not edx
add eax, edx
mov edx, edi
jmp 0x412761
lea edi, [ecx + 8]
cmp edx, edi
jne 0x4125f3
mov edi, edx
lea edx, [eax - 0x3f826637]
mov ebx, dword [esi + 0xc]
lea ecx, [ebx + eax]
add ecx, 0xc07d99c9
and edx, ebx
add edx, edx
sub ecx, edx
mov edx, edi
add cl, 0x81
mov byte [esi + eax + 0x9c], cl
mov ecx, dword [esi + 0x14]
dec eax
inc eax
cmp eax, 0x10
jb 0x4125d4
jmp 0x412803
mov edi, edx
lea edx, [ecx + 5]
cmp edi, edx
jne 0x412799
mov ebx, edi
lea edi, [eax + 0x5933bc87]
mov edx, dword [esi + 0xc]
and edi, edx
add edx, eax
add edx, 0x5933bc87
add edi, edi
sub edx, edi
add dl, 0x4f
mov edi, ebx
jmp 0x412721
lea edx, [ecx + 4]
cmp edi, edx
mov edx, edi
je 0x41265e
lea edx, [ecx + 6]
cmp dword [esi + 0x10], edx
mov edx, dword [esi + 0x10]
je 0x412653
lea edx, [ecx + 7]
cmp dword [esi + 0x10], edx
mov edx, dword [esi + 0x10]
je 0x412760
lea edx, [ecx + 8]
cmp dword [esi + 0x10], edx
mov edx, dword [esi + 0x10]
je 0x412737
lea edi, [eax - 0x6b7d89b1]
mov ebx, dword [esi + 0xc]
lea edx, [eax + ebx]
add edx, 0x9482764f
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0xd7
mov byte [esi + eax + 0x9c], dl
mov edx, dword [esi + 0x10]
jmp 0x412761
mov eax, 0x129f363
jmp 0x416d0a
xor eax, eax
jmp 0x416d0a
mov eax, 0x160ffec
lea edi, [esi + eax]
add edi, 0x198
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x10]
cmp dword [edx + 0x14], 0x10
jb 0x412832
mov edx, dword [ebp + 8]
mov edx, dword [edx]
push eax
push edi
push 0
push ecx
push edx
call fcn.00452a54
add esp, 0x14
cmp eax, 0xffffffff
je 0x41654d
xor eax, eax
mov dword [esi + 0x38], eax
movaps xmm0, xmmword [str.___67_]
movups xmmword [esi + 0x198], xmm0
movaps xmm0, xmmword [0x473330]
movups xmmword [esi + 0x1a8], xmm0
movaps xmm0, xmmword [0x473340]
movups xmmword [esi + 0x1b8], xmm0
movaps xmm0, xmmword [0x473350]
movups xmmword [esi + 0x1c8], xmm0
movaps xmm0, xmmword [0x473360]
movups xmmword [esi + 0x1d8], xmm0
mov dword [esi + 0x1e8], 0x83e9d6dc
xorps xmm0, xmm0
movups xmmword [esi + 0x1ec], xmm0
mov dword [esi + 0x200], eax
mov dword [esi + 0x1fc], eax
mov dword [esi + 0x34], eax
call fcn.0046d640
mov eax, dword [eax]
mov dword [esi + 0xc], eax
call fcn.0046d646
mov edi, dword [eax]
xor ecx, ecx
mov eax, 0x130dab6
cmp dword [esi + 0xc], ecx
ja 0x41325c
mov edx, ecx
mov dword [esi + 0x14], ecx
mov dword [esi + 0x10], edi
movzx edi, byte [esi + ecx + 0x198]
lea eax, [ecx - 0x36c601b2]
add ecx, edi
add ecx, 0xc939fe4e
and eax, edi
add eax, eax
sub ecx, eax
mov dword [esi + 0x20], ecx
lea eax, [edx - 0x7e3e239a]
lea ecx, [edx + edi]
add ecx, 0x81c1dc66
and eax, edi
add eax, eax
sub ecx, eax
mov dword [esi + 0x1c], ecx
lea eax, [edx - 0x4ff6e842]
and eax, edi
add eax, eax
lea ebx, [edx + edi]
add ebx, 0xb00917be
sub ebx, eax
lea ecx, [edx + 0x1d951b22]
and ecx, edi
add ecx, ecx
mov dword [esi + 0x2c], edi
lea eax, [edx + edi]
add eax, 0x1d951b22
mov edi, dword [esi + 0x10]
sub eax, ecx
mov edx, dword [esi + 0x20]
add dl, 0xde
mov ecx, dword [esi + 0x1c]
add cl, 0x36
mov dword [esi + 0x1c], ecx
add bl, 0xce
mov dword [esi + 0x28], ebx
mov ebx, edi
mov edi, dword [esi + 0x14]
mov ecx, dword [esi + 0xc]
add al, 0x12
mov dword [esi + 0x3c], eax
mov eax, edx
mov dword [esi + 0x20], edx
mov edx, ecx
mov ecx, ebx
inc ebx
mov dword [esi + 0x24], ebx
mov ebx, eax
mov byte [esi + 0x18], al
mov ebx, ecx
mov dword [esi + 0xc], edx
cmp edx, dword [esi + 0x24]
jb 0x4129c9
mov ecx, edi
mov dword [esi + 0x10], ebx
je 0x412dc8
mov ebx, dword [esi + 0x10]
lea eax, [ebx + 2]
mov edi, dword [esi + 0xc]
cmp edi, eax
je 0x412df0
lea eax, [ebx + 5]
cmp edi, eax
je 0x412e18
lea eax, [ebx + 3]
cmp edi, eax
je 0x412e38
lea edx, [ebx + 9]
mov eax, dword [esi + 0x34]
mov byte [esi + 0x18], al
cmp edi, edx
mov edi, ecx
je 0x412e94
cmp ebx, edi
mov ah, byte [esi + 0x18]
ja 0x413253
mov edx, edi
mov edi, ebx
add ebx, 0x20
mov ecx, dword [esi + 0x1c]
mov al, cl
mov dword [esi + 0x18], ebx
cmp dword [esi + 0xc], ebx
jb 0x412a16
mov ebx, edx
mov edx, dword [esi + 0xc]
lea ecx, [edi + 1]
mov dword [esi + 0x24], ecx
cmp ecx, edx
je 0x412cf0
lea ecx, [edi + 2]
cmp ecx, edx
je 0x412d16
lea ecx, [edi + 3]
mov al, ah
cmp ecx, edx
mov ecx, dword [esi + 0x14]
je 0x412d76
mov ecx, dword [esi + 0xc]
add ecx, edi
cmp ecx, dword [esi + 0x14]
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x10], edi
jbe 0x412af5
lea eax, [edi + 0x61]
mov edx, dword [esi + 0xc]
cmp eax, edx
je 0x412b9a
lea ebx, [edi + 1]
lea eax, [edi + 0x400]
cmp eax, edx
je 0x412bbd
lea eax, [edi + 0x40]
cmp eax, edx
je 0x412be6
cmp dword [esi + 0x18], edx
je 0x412c0b
mov edi, dword [esi + 0x10]
lea eax, [edi + 5]
cmp eax, edx
je 0x412c30
lea eax, [edi + 3]
cmp eax, edx
je 0x412c53
cmp ebx, edx
je 0x412c79
mov ebx, dword [esi + 0x10]
lea eax, [ebx + 0x1000]
cmp eax, dword [esi + 0xc]
je 0x412ca1
lea eax, [ebx + 0x3e8]
cmp eax, dword [esi + 0xc]
mov edi, ecx
je 0x412cc8
lea eax, [ebx + 0x3a]
mov edx, dword [esi + 0x18]
cmp edx, eax
jb 0x413230
lea eax, [ebx + 0x33]
cmp edx, eax
jb 0x413202
lea eax, [ebx + 0x31]
cmp edx, eax
jb 0x412ad9
add ebx, 0x30
mov dword [esi + 0xc], edx
mov eax, dword [esi + 0x28]
mov ah, al
cmp ebx, edi
jbe 0x4129d4
jmp 0x413253
lea ecx, [ebx + 0x20]
add ebx, 0x30
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x34], eax
cmp ecx, edi
mov eax, dword [esi + 0x20]
jbe 0x41296d
jmp 0x421603
lea ecx, [edi + 0x2a]
mov edx, dword [esi + 0xc]
cmp edx, ecx
mov ebx, edi
jae 0x412d41
lea eax, [ebx + edx]
add eax, 0xffffff9c
test eax, eax
mov ecx, dword [esi + 0x14]
mov edi, ebx
je 0x412eba
lea eax, [edi + 0x42]
cmp dword [esi + 0xc], eax
jbe 0x412f50
lea eax, [ecx - 0xd2e676a]
mov ebx, ecx
mov ecx, dword [esi + 0x2c]
mov edi, ebx
add ebx, ecx
add ebx, 0xf2d19896
and eax, ecx
add eax, eax
sub ebx, eax
add bl, 0xe6
cmp dword [esi + 0xc], 0x59
ja 0x412fec
mov edx, dword [esi + 0x10]
lea eax, [edx + 0x41]
cmp dword [esi + 0xc], eax
mov ecx, edi
jbe 0x41306f
lea eax, [ecx + 0x749374fc]
mov edi, ecx
mov ecx, dword [esi + 0x2c]
lea ebx, [edi + ecx]
add ebx, 0x749374fc
and eax, ecx
add eax, eax
sub ebx, eax
add bl, 0x1c
mov dword [esi + 0x20], ebx
mov edi, edx
cmp edi, 0x27
ja 0x413112
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x20]
mov byte [esi + ecx + 0x198], al
jmp 0x412fa4
lea eax, [ecx + 0x76eb4584]
mov edx, dword [esi + 0x2c]
add ecx, edx
add ecx, 0x76eb4584
and eax, edx
add eax, eax
sub ecx, eax
add cl, 0x64
mov dword [esi + 0x20], ecx
inc edi
jmp 0x412f7e
lea eax, [ecx + 0x95f4220]
mov edi, ecx
mov ecx, dword [esi + 0x2c]
lea edx, [edi + ecx]
add edx, 0x95f4220
and eax, ecx
mov ecx, edi
add eax, eax
sub edx, eax
add dl, 0x20
mov dword [esi + 0x20], edx
mov edi, ebx
jmp 0x412fa3
lea eax, [ecx - 0x642cc144]
mov edx, dword [esi + 0x2c]
and eax, edx
add edx, ecx
add edx, 0x9bd33ebc
add eax, eax
sub edx, eax
add dl, 0xdc
mov dword [esi + 0x20], edx
mov edi, dword [esi + 0x10]
jmp 0x412fa3
lea eax, [ecx + 0x2e473b58]
mov edi, dword [esi + 0x2c]
add ecx, edi
add ecx, 0x2e473b58
and eax, edi
add eax, eax
sub ecx, eax
add cl, 0x98
mov dword [esi + 0x20], ecx
mov edi, dword [esi + 0x10]
jmp 0x412e57
lea eax, [ecx - 0x3f44c80c]
mov edx, dword [esi + 0x2c]
lea ebx, [ecx + edx]
add ebx, 0xc0bb37f4
and eax, edx
add eax, eax
sub ebx, eax
add bl, 0x54
mov dword [esi + 0x20], ebx
jmp 0x412e82
lea eax, [ecx + 0x532f3490]
mov edi, dword [esi + 0x2c]
lea ebx, [ecx + edi]
add ebx, 0x532f3490
and eax, edi
add eax, eax
sub ebx, eax
add bl, 0x10
mov dword [esi + 0x20], ebx
mov edi, dword [esi + 0x10]
jmp 0x412e89
lea eax, [ecx - 0x1a5cced4]
mov edi, dword [esi + 0x2c]
lea ebx, [ecx + edi]
add ebx, 0xe5a3312c
mov ecx, edi
and eax, edi
add eax, eax
sub ebx, eax
add bl, 0xcc
mov dword [esi + 0x20], ebx
mov edi, dword [esi + 0xc]
jmp 0x412edd
mov edi, ebx
mov edx, ecx
lea eax, [ecx + 0x78172dc8]
mov ecx, dword [esi + 0x2c]
lea ebx, [edx + ecx]
add ebx, 0x78172dc8
and eax, ecx
add eax, eax
sub ebx, eax
add bl, 0x88
mov dword [esi + 0x20], ebx
jmp 0x412f12
lea eax, [edi + 0xa8b2a64]
mov edi, dword [esi + 0x2c]
lea edx, [ecx + edi]
add edx, 0xa8b2a64
and eax, edi
add eax, eax
sub edx, eax
mov eax, edi
mov ebx, dword [esi + 0x10]
add dl, 0x44
mov dword [esi + 0x20], edx
jmp 0x412f48
lea eax, [ebx + 0x1435d902]
mov ecx, dword [esi + 0x2c]
add ebx, ecx
add ebx, 0x1435d902
and eax, ecx
add eax, eax
sub ebx, eax
add bl, 0xf2
mov dword [esi + 0x20], ebx
mov edi, edx
mov edx, ecx
jmp 0x412f7e
mov edi, dword [esi + 0x14]
lea eax, [edi - 0x59562a62]
mov ecx, dword [esi + 0x2c]
lea edx, [edi + ecx]
add edx, 0xa6a9d59e
and eax, ecx
mov ecx, edi
add eax, eax
sub edx, eax
add dl, 0xae
mov dword [esi + 0x20], edx
mov edi, dword [esi + 0x24]
jmp 0x412fa3
lea edi, [ebx + 1]
cmp edi, edx
jne 0x412d98
mov edi, dword [esi + 0x14]
lea eax, [edi + 0x383b8cc]
mov ecx, dword [esi + 0x2c]
mov edx, ebx
lea ebx, [edi + ecx]
add ebx, 0x383b8cc
and eax, ecx
add eax, eax
sub ebx, eax
mov eax, ecx
mov ecx, edi
add bl, 0x6c
mov dword [esi + 0x20], ebx
mov ebx, edx
jmp 0x412f48
lea eax, [ecx - 0x346e312a]
mov edx, dword [esi + 0x2c]
add ecx, edx
add ecx, 0xcb91ced6
and eax, edx
add eax, eax
sub ecx, eax
add cl, 0x26
mov dword [esi + 0x20], ecx
jmp 0x412e57
lea ecx, [ebx + 3]
cmp ecx, edx
jne 0x412fb9
mov edx, dword [esi + 0x14]
lea eax, [edx + 0x286bb204]
mov ecx, dword [esi + 0x2c]
add edx, ecx
add edx, 0x286bb204
and eax, ecx
add eax, eax
sub edx, eax
add dl, 0xe4
mov dword [esi + 0x20], edx
jmp 0x412edd
lea eax, [ecx + 0x5badfaea]
mov edx, dword [esi + 0x2c]
lea ebx, [ecx + edx]
add ebx, 0x5badfaea
and eax, edx
add eax, eax
sub ebx, eax
mov eax, edx
add bl, 0x9a
mov dword [esi + 0x20], ebx
mov ebx, dword [esi + 0x10]
jmp 0x412f48
lea eax, [ecx - 0x7f6a0bde]
mov edx, dword [esi + 0x2c]
lea ebx, [ecx + edx]
add ebx, 0x8095f422
mov ecx, edx
and eax, edx
add eax, eax
sub ebx, eax
add bl, 0x12
mov dword [esi + 0x20], ebx
mov edi, dword [esi + 0x24]
jmp 0x412edd
lea eax, [ecx - 0x5a8212a6]
mov edx, dword [esi + 0x2c]
add edx, ecx
add edx, 0xa57ded5a
and eax, dword [esi + 0x2c]
add eax, eax
sub edx, eax
add dl, 0x8a
mov dword [esi + 0x20], edx
jmp 0x412e84
lea eax, [ecx + 0x37f1e9f6]
mov edx, dword [esi + 0x2c]
add ecx, edx
add ecx, 0x37f1e9f6
and eax, edx
add eax, eax
sub ecx, eax
add cl, 0x46
mov dword [esi + 0x20], ecx
mov edi, ebx
mov eax, dword [esi + 0x14]
lea ecx, [eax - 0x7736b202]
mov ebx, dword [esi + 0x2c]
and ecx, ebx
mov eax, dword [esi + 0x14]
add eax, ebx
add eax, 0x88c94dfe
add ecx, ecx
sub eax, ecx
mov ecx, dword [esi + 0x14]
add al, byte [esi + 0x20]
add al, 0xe
mov byte [esi + ecx + 0x198], al
mov ebx, edi
mov edi, ebx
add dword [esi + 0xc], ebx
movzx eax, byte [esi + 0x20]
not eax
jmp 0x412f4c
lea eax, [edi - 0x10b22036]
mov edx, dword [esi + 0x2c]
lea ecx, [edi + edx]
add ecx, 0xef4ddfca
and eax, edx
add eax, eax
sub ecx, eax
add cl, 0x7a
mov dword [esi + 0x20], ecx
mov edi, dword [esi + 0x24]
jmp 0x412f7e
lea eax, [ecx + 0x52034c4c]
mov edx, dword [esi + 0x2c]
lea ebx, [ecx + edx]
add ebx, 0x52034c4c
mov ecx, edx
and eax, edx
add eax, eax
sub ebx, eax
sub bl, cl
add bl, 0xec
mov dword [esi + 0x20], ebx
inc edi
mov eax, dword [esi + 0x14]
lea edx, [eax + 0x1b3d4a9a]
mov eax, dword [esi + 0x14]
add eax, ecx
add eax, 0x1b3d4a9a
and edx, ecx
add edx, edx
sub eax, edx
mov edx, dword [esi + 0x14]
add al, 0xca
mov byte [esi + edx + 0x198], al
movzx eax, al
sub edx, eax
mov eax, ecx
mov ecx, dword [esi + 0x10]
not ecx
add edx, ecx
mov ecx, eax
lea eax, [edx - 0x1b88b718]
and eax, ecx
add ecx, edx
add ecx, 0xe47748e8
add eax, eax
sub ecx, eax
add cl, 0xa8
mov byte [esi + edx + 0x198], cl
mov ecx, edx
mov eax, dword [esi + 0xc]
sub ecx, eax
inc eax
mov dword [esi + 0xc], eax
movzx eax, byte [esi + ecx + 0x196]
add ecx, 0xfffffffe
mov ebx, edi
mov edi, ebx
add eax, ebx
add ecx, eax
jmp 0x412fa4
lea eax, [edi + 1]
cmp eax, dword [esi + 0xc]
jne 0x413011
lea eax, [ecx - 0x7aba6ace]
mov ebx, dword [esi + 0x2c]
add ecx, ebx
add ecx, 0x85459532
and eax, ebx
add eax, eax
sub ecx, eax
add cl, 0xa2
mov dword [esi + 0x20], ecx
mov edi, dword [esi + 0xc]
mov edx, ebx
mov eax, dword [esi + 0x14]
lea ecx, [eax - 0x9aaae9e]
mov eax, dword [esi + 0x14]
add eax, edx
add eax, 0xf6555162
and ecx, edx
add ecx, ecx
sub eax, ecx
mov ecx, dword [esi + 0x14]
add al, 0x52
mov byte [esi + ecx + 0x198], al
dec ecx
inc ecx
mov ebx, dword [esi + 0x20]
mov dword [esi + 0x34], ebx
cmp ecx, 0x6c
jb 0x4128ca
jmp 0x41325a
lea ecx, [ebx + 5]
cmp ecx, edx
jne 0x41303c
mov edi, dword [esi + 0x14]
lea eax, [edi + 0x4d53ab3c]
mov ecx, dword [esi + 0x2c]
mov edx, ebx
lea ebx, [edi + ecx]
add ebx, 0x4d53ab3c
and eax, ecx
mov ecx, edi
add eax, eax
sub ebx, eax
add bl, 0x5c
mov dword [esi + 0x20], ebx
mov ebx, edx
jmp 0x412e84
lea eax, [edi - 0x4070b050]
mov ecx, dword [esi + 0x2c]
lea ebx, [edi + ecx]
add ebx, 0xbf8f4fb0
and eax, ecx
add eax, eax
sub ebx, eax
add bl, cl
add bl, 0x30
mov dword [esi + 0x20], ebx
jmp 0x412c28
lea eax, [edi + 2]
cmp eax, dword [esi + 0xc]
jne 0x4130ac
lea eax, [ecx + 0x3ca18b06]
mov edx, dword [esi + 0x2c]
add ecx, edx
add ecx, 0x3ca18b06
and eax, edx
add eax, eax
sub ecx, eax
add cl, 0xd6
jmp 0x412d90
lea ecx, [ebx + 2]
cmp ecx, edx
jne 0x4130df
mov edx, dword [esi + 0x14]
lea eax, [edx + 0x4afa110]
mov ecx, dword [esi + 0x2c]
lea ebx, [edx + ecx]
add ebx, 0x4afa110
and eax, ecx
mov ecx, edx
add eax, eax
sub ebx, eax
add bl, 0x90
mov dword [esi + 0x20], ebx
jmp 0x412fa3
mov edi, edx
mov edx, dword [esi + 0xc]
lea eax, [edi + 1]
mov dword [esi + 0x24], eax
cmp eax, edx
jne 0x413136
lea eax, [ecx + 0x7077198]
mov ecx, dword [esi + 0x2c]
mov ebx, dword [esi + 0x14]
add ebx, ecx
add ebx, 0x7077198
and eax, ecx
add eax, eax
sub ebx, eax
mov eax, ecx
mov ecx, dword [esi + 0x14]
add bl, 0xd8
mov dword [esi + 0x20], ebx
jmp 0x412f46
lea eax, [edi + 3]
cmp eax, dword [esi + 0xc]
jne 0x413167
lea eax, [ecx - 0x30ea785e]
mov edi, ecx
mov ecx, dword [esi + 0x2c]
lea edx, [edi + ecx]
add edx, 0xcf1587a2
and eax, ecx
mov ecx, edi
mov ebx, dword [esi + 0x10]
add eax, eax
sub edx, eax
add dl, 0x92
jmp 0x412e33
lea ecx, [ebx + 9]
mov dword [esi + 0x20], eax
cmp ecx, edx
jne 0x412b05
mov ecx, dword [esi + 0x14]
lea eax, [ecx - 0x68dc6254]
mov edx, dword [esi + 0x2c]
add ecx, edx
add ecx, 0x97239dac
and eax, edx
add eax, eax
sub ecx, eax
add cl, 0x4c
mov dword [esi + 0x20], ecx
jmp 0x412f7e
mov ecx, dword [esi + 0x14]
lea eax, [ecx + 0x2d1b5314]
mov edx, dword [esi + 0x2c]
add ecx, edx
add ecx, 0x2d1b5314
and eax, edx
add eax, eax
sub ecx, eax
add cl, cl
add cl, 0xe8
jmp 0x412bb4
lea eax, [edi + 2]
cmp eax, edx
jne 0x41319a
mov ecx, dword [esi + 0x14]
lea eax, [ecx + 0x2bef6ad0]
mov edx, dword [esi + 0x2c]
add ecx, edx
add ecx, 0x2bef6ad0
and eax, edx
add eax, eax
sub ecx, eax
add cl, 0x50
mov dword [esi + 0x20], ecx
mov edi, dword [esi + 0x24]
mov ecx, edx
jmp 0x412edd
lea eax, [edi + 5]
cmp eax, dword [esi + 0xc]
mov edx, edi
jne 0x4131cd
lea eax, [ecx + 0x6189843e]
mov edi, ecx
mov ecx, dword [esi + 0x2c]
lea ebx, [edi + ecx]
add ebx, 0x6189843e
and eax, ecx
mov ecx, edi
add eax, eax
sub ebx, eax
add bl, 0x4e
mov dword [esi + 0x20], ebx
mov edi, edx
jmp 0x412e89
lea eax, [edi + 4]
cmp eax, edx
mov dword [esi + 0x20], ebx
jne 0x412b7f
mov ebx, dword [esi + 0x14]
lea eax, [ebx - 0x1cb49f5c]
mov ecx, dword [esi + 0x2c]
add ebx, ecx
add ebx, 0xe34b60a4
and eax, ecx
add eax, eax
sub ebx, eax
add bl, 0x84
mov dword [esi + 0x20], ebx
jmp 0x412e57
mov edi, ecx
lea eax, [edx + 6]
cmp eax, dword [esi + 0xc]
mov ebx, dword [esi + 0x20]
jne 0x412b42
lea eax, [edi + 0x18e57a12]
mov ecx, dword [esi + 0x2c]
lea ebx, [edi + ecx]
add ebx, 0x18e57a12
and eax, ecx
add eax, eax
sub ebx, eax
mov eax, ecx
mov ecx, edi
add bl, 0x82
jmp 0x412de5
mov eax, dword [esi + 0x2c]
lea ecx, [edi + eax]
add ecx, 0x8b211e86
add edi, 0x8b211e86
and edi, eax
add edi, edi
sub ecx, edi
add cl, 0x56
mov dword [esi + 0x34], ecx
mov eax, ebx
lea edi, [ebx + 0x30]
add eax, 0x20
mov dword [esi + 0xc], eax
jmp 0x4128c8
mov eax, dword [esi + 0x2c]
lea ecx, [edi + eax]
add ecx, 0xf8ad21ea
add edi, 0xf8ad21ea
and edi, eax
add edi, edi
sub ecx, edi
add cl, 0x9a
mov dword [esi + 0x34], ecx
jmp 0x4128b7
mov eax, 0x176dc68
jmp 0x41325c
xor eax, eax
lea edi, [esi + eax]
add edi, 0x198
xor eax, eax
lea ebx, [esi + 0x9c]
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 + 0x2c], ebx
mov ecx, ebx
push eax
push edi
call fcn.00450e50
xor eax, eax
mov dword [esi + 0x30], eax
mov edx, dword [0x47854c]
test edx, edx
jne 0x413418
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax]
xor eax, eax
mov edi, 0x2308d683
mov dword [esi + 0x24], ecx
mov dword [esi + 0x1c], ecx
test eax, eax
mov dword [esi + 0x20], eax
mov dword [esi + 0xc], edi
je 0x413312
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0xa0ac078d
cmp cx, 2
jb 0x413304
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0xa0ac078d
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x4132f1
mov eax, dword [esi + 0x20]
cmp edx, eax
mov edi, dword [esi + 0xc]
jne 0x4133cf
mov eax, dword [esi + 0x1c]
mov edx, dword [eax + 0x18]
mov eax, dword [edx + 0x3c]
mov ebx, dword [edx + eax + 0x78]
test ebx, ebx
je 0x4133cc
mov eax, dword [edx + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edx + ebx]
mov dword [esi + 0x10], eax
mov eax, dword [eax + 0x18]
lea ecx, [edx + 1]
mov dword [esi + 0x18], ecx
mov dword [esi + 0x14], ebx
sub eax, 1
jb 0x4133cc
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 0x413377
add ebx, dword [esi + 0x18]
mov edi, 0xa0ac078d
movsx ecx, cl
xor ecx, edi
imul edi, ecx, 0x1000193
mov cl, byte [ebx]
inc ebx
test cl, cl
jne 0x413363
jmp 0x41337c
mov edi, 0xa0ac078d
mov ecx, dword [esi + 0xc]
cmp edi, ecx
mov edi, ecx
mov ebx, dword [esi + 0x14]
jne 0x413340
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 0x413412
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edx
jbe 0x413412
mov al, byte [edx]
mov edi, 0xa0ac078d
mov ecx, 0xa0ac078d
cmp al, 0x2e
je 0x4133d4
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edx + 1]
inc edx
jmp 0x4133b7
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x1c]
jmp 0x4133fc
mov al, byte [edx + 1]
test al, al
je 0x4133f5
add edx, 2
mov edi, 0xa0ac078d
movsx eax, al
xor eax, edi
imul edi, eax, 0x1000193
mov al, byte [edx]
inc edx
test al, al
jne 0x4133e3
mov eax, dword [esi + 0x24]
mov edx, dword [eax]
mov eax, ecx
mov ecx, dword [edx]
xor edx, edx
cmp ecx, dword [esi + 0x24]
je 0x413412
mov dword [esi + 0x1c], ecx
cmp dword [ecx + 0x18], 0
jne 0x4132bf
mov dword [0x47854c], edx
cmp dword [esi + 0x2c4], 0x10
jb 0x413429
mov eax, dword [esi + 0x2b0]
jmp 0x41342f
lea eax, [esi + 0x2b0]
lea ecx, [esi + 0x38]
push ecx
push eax
call edx
test eax, eax
jne 0x41375d
mov ebx, dword [0x478550]
test ebx, ebx
jne 0x4135b6
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0x539ca3a8
xor edi, edi
mov dword [esi + 0x24], eax
test edi, edi
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], edi
mov dword [esi + 0x1c], eax
je 0x4134ba
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x5770a9ca
cmp cx, 2
jb 0x4134a9
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x5770a9ca
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x413496
mov edi, dword [esi + 0x20]
cmp edx, edi
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x41359d
mov ebx, dword [eax + 0x18]
mov eax, dword [ebx + 0x3c]
mov edx, dword [ebx + eax + 0x78]
test edx, edx
je 0x413572
mov eax, dword [ebx + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [ebx + edx]
mov dword [esi + 0x10], eax
mov edi, dword [eax + 0x18]
lea eax, [ebx + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub edi, 1
jb 0x41356f
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 0x41351c
add edx, dword [esi + 0x18]
mov eax, 0x5770a9ca
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x413508
jmp 0x413521
mov eax, 0x5770a9ca
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x4134e5
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 0x4135b0
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, ebx
jbe 0x4135b0
mov al, byte [ebx]
mov ecx, 0x5770a9ca
mov edi, 0x5770a9ca
cmp al, 0x2e
je 0x413577
movsx eax, al
xor eax, edi
imul edi, eax, 0x1000193
mov al, byte [ebx + 1]
inc ebx
jmp 0x41355a
mov edi, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x41359d
mov al, byte [ebx + 1]
test al, al
je 0x413598
add ebx, 2
mov ecx, 0x5770a9ca
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [ebx]
inc ebx
test al, al
jne 0x413586
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor ebx, ebx
cmp eax, dword [esi + 0x24]
je 0x4135b0
cmp dword [eax + 0x18], 0
jne 0x413464
mov dword [0x478550], ebx
cmp dword [esi + 0xb0], 0x10
jb 0x4135c8
mov eax, dword [esi + 0x9c]
mov dword [esi + 0x2c], eax
lea eax, [esi + 0x30]
push 0
push eax
push 0xffffffffffffffff
push dword [esi + 0x2c]
push dword [esi + 0x38]
call ebx
test eax, eax
je 0x41608f
mov edi, dword [0x478554]
test edi, edi
jne 0x413758
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0x7c779636
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x41365c
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x48789404
cmp cx, 2
jb 0x41364b
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x48789404
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x413638
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x41373f
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x413714
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x413711
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 0x4136be
add edx, dword [esi + 0x18]
mov eax, 0x48789404
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x4136aa
jmp 0x4136c3
mov eax, 0x48789404
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x413687
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 0x413752
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x413752
mov al, byte [edi]
mov ecx, 0x48789404
mov ebx, 0x48789404
cmp al, 0x2e
je 0x413719
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x4136fc
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x41373f
mov al, byte [edi + 1]
test al, al
je 0x41373a
add edi, 2
mov ecx, 0x48789404
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x413728
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x413752
cmp dword [eax + 0x18], 0
jne 0x413606
mov dword [0x478554], edi
push dword [esi + 0x38]
call edi
mov eax, dword [esi + 0xb0]
cmp eax, 0x10
jb 0x41adbb
mov ecx, dword [esi + 0x9c]
jmp 0x41ad8e
mov edi, dword [0x47855c]
test edi, edi
jne 0x4138ef
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0x32fc29f1
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x4137f3
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x144ec09
cmp cx, 2
jb 0x4137e2
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x144ec09
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x4137cf
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x4138d6
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x4138ab
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x4138a8
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 0x413855
add edx, dword [esi + 0x18]
mov eax, 0x144ec09
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x413841
jmp 0x41385a
mov eax, 0x144ec09
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x41381e
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 0x4138e9
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x4138e9
mov al, byte [edi]
mov ecx, 0x144ec09
mov ebx, 0x144ec09
cmp al, 0x2e
je 0x4138b0
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x413893
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x4138d6
mov al, byte [edi + 1]
test al, al
je 0x4138d1
add edi, 2
mov ecx, 0x144ec09
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x4138bf
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x4138e9
cmp dword [eax + 0x18], 0
jne 0x41379d
mov dword [0x47855c], edi
push 0
push dword [esi + 0x30]
call edi
mov dword [esi + 0x34], eax
mov edi, dword [0x478560]
test edi, edi
jne 0x413a71
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xb2b2f4d7
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x413975
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0xeef22c97
cmp cx, 2
jb 0x413964
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0xeef22c97
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x413951
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x413a58
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x413a2d
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x413a2a
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 0x4139d7
add edx, dword [esi + 0x18]
mov eax, 0xeef22c97
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x4139c3
jmp 0x4139dc
mov eax, 0xeef22c97
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x4139a0
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 0x413a6b
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x413a6b
mov al, byte [edi]
mov ecx, 0xeef22c97
mov ebx, 0xeef22c97
cmp al, 0x2e
je 0x413a32
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x413a15
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x413a58
mov al, byte [edi + 1]
test al, al
je 0x413a53
add edi, 2
mov ecx, 0xeef22c97
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x413a41
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x413a6b
cmp dword [eax + 0x18], 0
jne 0x41391f
mov dword [0x478560], edi
push 1
push dword [esi + 0x30]
call edi
mov dword [esi + 0x3c], eax
mov edi, dword [0x478564]
test edi, edi
jne 0x413bf3
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0x57fe3219
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x413af7
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x958bf3d1
cmp cx, 2
jb 0x413ae6
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x958bf3d1
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x413ad3
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x413bda
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x413baf
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x413bac
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 0x413b59
add edx, dword [esi + 0x18]
mov eax, 0x958bf3d1
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x413b45
jmp 0x413b5e
mov eax, 0x958bf3d1
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x413b22
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 0x413bed
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x413bed
mov al, byte [edi]
mov ecx, 0x958bf3d1
mov ebx, 0x958bf3d1
cmp al, 0x2e
je 0x413bb4
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x413b97
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x413bda
mov al, byte [edi + 1]
test al, al
je 0x413bd5
add edi, 2
mov ecx, 0x958bf3d1
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x413bc3
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x413bed
cmp dword [eax + 0x18], 0
jne 0x413aa1
mov dword [0x478564], edi
push 2
push dword [esi + 0x30]
call edi
mov dword [esi + 0xdc], eax
mov edi, dword [0x478568]
test edi, edi
jne 0x413d78
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0x510ca71a
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x413c7c
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0xc0999a6e
cmp cx, 2
jb 0x413c6b
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0xc0999a6e
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x413c58
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x413d5f
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x413d34
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x413d31
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 0x413cde
add edx, dword [esi + 0x18]
mov eax, 0xc0999a6e
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x413cca
jmp 0x413ce3
mov eax, 0xc0999a6e
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x413ca7
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 0x413d72
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x413d72
mov al, byte [edi]
mov ecx, 0xc0999a6e
mov ebx, 0xc0999a6e
cmp al, 0x2e
je 0x413d39
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x413d1c
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x413d5f
mov al, byte [edi + 1]
test al, al
je 0x413d5a
add edi, 2
mov ecx, 0xc0999a6e
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x413d48
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x413d72
cmp dword [eax + 0x18], 0
jne 0x413c26
mov dword [0x478568], edi
push 1
push dword [esi + 0x30]
call edi
mov dword [esi + 0x2c], eax
mov ebx, dword [0x47856c]
test ebx, ebx
jne 0x413f02
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0x6d95e348
mov dword [esi + 0x24], eax
mov dword [esi + 0x1c], eax
xor eax, eax
test eax, eax
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], eax
je 0x413dfe
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0xa768d968
cmp cx, 2
jb 0x413df0
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0xa768d968
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x413ddd
mov eax, dword [esi + 0x20]
cmp edx, eax
mov ecx, dword [esi + 0xc]
jne 0x413eb9
mov eax, dword [esi + 0x1c]
mov ebx, dword [eax + 0x18]
mov eax, dword [ebx + 0x3c]
mov edx, dword [ebx + eax + 0x78]
test edx, edx
je 0x413eb6
mov eax, dword [ebx + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [ebx + edx]
mov dword [esi + 0x10], eax
mov eax, dword [eax + 0x18]
lea edi, [ebx + 1]
mov dword [esi + 0x18], edi
mov dword [esi + 0x14], edx
sub eax, 1
jb 0x413eb6
mov ecx, dword [esi + 0x10]
mov ecx, dword [ecx + 0x20]
add ecx, ebx
mov edx, dword [ecx + eax*4]
mov cl, byte [ebx + edx]
test cl, cl
je 0x413e63
add edx, dword [esi + 0x18]
mov edi, 0xa768d968
movsx ecx, cl
xor ecx, edi
imul edi, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x413e4f
jmp 0x413e68
mov edi, 0xa768d968
mov ecx, dword [esi + 0xc]
cmp edi, ecx
mov edx, dword [esi + 0x14]
jne 0x413e2c
mov ecx, dword [ebx + edx + 0x24]
add ecx, ebx
movzx eax, word [ecx + eax*2]
mov ecx, dword [ebx + edx + 0x1c]
add ecx, ebx
mov eax, dword [ecx + eax*4]
add ebx, eax
cmp edx, eax
jge 0x413efc
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, ebx
jbe 0x413efc
mov al, byte [ebx]
mov ecx, 0xa768d968
mov edx, 0xa768d968
cmp al, 0x2e
je 0x413ebe
movsx eax, al
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ebx + 1]
inc ebx
jmp 0x413ea1
mov eax, dword [esi + 0x20]
mov edi, dword [esi + 0x1c]
jmp 0x413ee6
mov al, byte [ebx + 1]
test al, al
je 0x413edf
add ebx, 2
mov ecx, 0xa768d968
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [ebx]
inc ebx
test al, al
jne 0x413ecd
mov eax, dword [esi + 0x24]
mov edi, dword [eax]
mov eax, edx
mov edi, dword [edi]
xor ebx, ebx
cmp edi, dword [esi + 0x24]
je 0x413efc
mov dword [esi + 0x1c], edi
cmp dword [edi + 0x18], 0
jne 0x413dab
mov dword [0x47856c], ebx
push 2
push dword [esi + 0x30]
call ebx
cmp eax, 0x1f
jne 0x413f18
cmp dword [esi + 0x2c], 0
je 0x41608f
push eax
push dword [esi + 0xdc]
lea eax, [esi + 0x2cc]
push eax
lea eax, [esi + 0xbc]
push eax
call 0x410352
add esp, 0x10
xor ebx, ebx
mov dword [esi + 0x204], ebx
mov dword [esi + 0x214], ebx
mov eax, 0xf
mov dword [esi + 0x218], eax
mov byte [esi + 0x204], bl
mov edi, dword [esi + 0x34]
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ecx, [esi + 0x204]
push eax
push edi
call fcn.00450e50
mov dword [esi + 0x298], ebx
mov dword [esi + 0x2a8], ebx
mov eax, 0xf
mov dword [esi + 0x2ac], eax
mov byte [esi + 0x298], bl
mov edi, dword [esi + 0x3c]
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ecx, [esi + 0x298]
push eax
push edi
call fcn.00450e50
mov word [esi + 0x160], 0xadb2
lea eax, [esi + 0x162]
mov dword [eax + 0xa], ebx
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 6], ebx
call fcn.0046d640
mov eax, dword [eax]
mov dword [esi + 0xc], eax
call fcn.0046d646
mov ebx, dword [eax]
xor eax, eax
cmp dword [esi + 0xc], eax
ja 0x4142cb
mov dl, byte [esi + eax + 0x160]
movzx ecx, dl
mov dword [esi + 0x10], ecx
lea ecx, [ebx + 1]
cmp dword [esi + 0xc], ecx
jae 0x41402f
cmp ebx, eax
ja 0x4142d6
mov edi, ecx
mov ecx, dword [esi + 0xc]
add ecx, ebx
mov dword [esi + 0x14], ecx
cmp ecx, eax
jbe 0x414049
cmp dword [esi + 0xc], edi
jne 0x41410f
lea edx, [eax + 0x57b77fd0]
mov ecx, dword [esi + 0x10]
and edx, ecx
add ecx, eax
add ecx, 0x57b77fd0
add edx, edx
sub ecx, edx
add cl, 0x50
mov edi, dword [esi + 0xc]
jmp 0x41421b
je 0x4141b2
mov edi, ebx
add ebx, 2
cmp dword [esi + 0xc], ebx
jne 0x4140aa
mov ebx, edi
mov edx, dword [esi + 0x10]
jmp 0x414181
mov dword [esi + 0x18], ebx
add ebx, 9
cmp dword [esi + 0xc], ebx
mov ecx, edi
jae 0x414120
lea ebx, [eax + 0x36107666]
mov edi, dword [esi + 0x10]
lea edx, [eax + edi]
add edx, 0x36107666
and ebx, edi
add ebx, ebx
sub edx, ebx
add dl, 0x36
cmp dword [esi + 0xc], ecx
mov edi, dword [esi + 0x18]
jne 0x41412d
lea ecx, [eax - 0x3f605cf6]
mov edx, dword [esi + 0x10]
and ecx, edx
add edx, eax
add edx, 0xc09fa30a
add ecx, ecx
sub edx, ecx
add dl, 0xba
mov byte [esi + eax + 0x160], dl
mov ebx, dword [esi + 0xc]
jmp 0x4141f0
lea ebx, [edi + 3]
cmp dword [esi + 0xc], ebx
je 0x41414f
lea ebx, [edi + 5]
cmp dword [esi + 0xc], ebx
jne 0x4141e2
lea edx, [eax - 0x4129fcd2]
mov ebx, dword [esi + 0x10]
lea ecx, [eax + ebx]
add ecx, 0xbed6032e
and edx, ebx
add edx, edx
sub ecx, edx
add cl, 0xbe
mov edx, dword [esi + 0xc]
add edx, edi
mov dword [esi + 0x14], edx
mov ebx, edi
lea edi, [eax + 0x2cc08fd6]
mov edx, dword [esi + 0x10]
and edi, edx
add edx, eax
add edx, 0x2cc08fd6
add edi, edi
sub edx, edi
add dl, cl
add dl, 0x26
mov byte [esi + eax + 0x160], dl
jmp 0x414218
lea ecx, [ebx + 5]
cmp dword [esi + 0xc], ecx
je 0x4141b2
jmp 0x413fbd
cmp dword [esi + 0xc], ecx
jne 0x414140
mov ebx, dword [esi + 0x18]
jmp 0x4141b2
lea ebx, [edi + 2]
cmp dword [esi + 0xc], ebx
jne 0x4141bb
mov ebx, ecx
jmp 0x4141f0
mov edi, dword [esi + 0x18]
lea edx, [edi + 2]
cmp dword [esi + 0xc], edx
jne 0x4141f3
lea ebx, [eax - 0x671e835e]
and ebx, dword [esi + 0x10]
add ebx, ebx
mov edx, dword [esi + 0x10]
add edx, eax
add edx, 0x98e17ca2
sub edx, ebx
add dl, 0x92
mov byte [esi + eax + 0x160], dl
not edi
add edi, eax
movzx eax, dl
mov edx, dword [esi + 0x10]
sub edi, eax
mov eax, edi
mov ebx, ecx
lea ecx, [eax - 0x310e0cf8]
and ecx, edx
add edx, eax
add edx, 0xcef1f308
add ecx, ecx
sub edx, ecx
add dl, 0xc8
mov byte [esi + eax + 0x160], dl
mov ecx, dword [esi + 0xc]
sub eax, ecx
inc ecx
mov dword [esi + 0xc], ecx
mov dl, byte [esi + eax + 0x15e]
add eax, 0xfffffffe
movzx ecx, dl
add ecx, ebx
add eax, ecx
jmp 0x414225
lea ebx, [edi + 4]
cmp dword [esi + 0xc], ebx
jne 0x414234
lea edx, [eax - 0x16f29b6]
mov ebx, edi
mov edi, dword [esi + 0x10]
lea ecx, [eax + edi]
add ecx, 0xfe90d64a
and edx, edi
add edx, edx
sub ecx, edx
add cl, 0xfa
jmp 0x414218
lea ebx, [edi + 4]
cmp dword [esi + 0xc], ebx
mov ebx, edi
jne 0x413fee
dec eax
jmp 0x414225
lea edx, [edi + 4]
cmp dword [esi + 0xc], edx
mov ebx, edi
jne 0x41425d
lea edx, [eax - 0x70c8e014]
mov edi, dword [esi + 0x10]
lea ecx, [eax + edi]
add ecx, 0x8f371fec
and edx, edi
add edx, edx
sub ecx, edx
add cl, 0x8c
mov edi, dword [esi + 0x14]
movzx ecx, cl
not ecx
add eax, ecx
mov dword [esi + 0xc], edi
inc eax
cmp eax, 0x10
jb 0x413fd0
jmp 0x4142d2
lea ebx, [edi + 3]
cmp dword [esi + 0xc], ebx
jne 0x414285
lea edx, [eax + 0x6ab1c316]
mov ecx, dword [esi + 0x10]
and edx, ecx
add ecx, eax
add ecx, 0x6ab1c316
add edx, edx
sub ecx, edx
add cl, 0x66
mov ebx, edi
jmp 0x414027
lea edx, [ebx + 3]
cmp dword [esi + 0xc], edx
jne 0x4142ab
lea edx, [eax - 0x4a7f348]
mov edi, dword [esi + 0x10]
lea ecx, [eax + edi]
add ecx, 0xfb580cb8
and edx, edi
add edx, edx
sub ecx, edx
add cl, 0xf8
jmp 0x4140e7
lea ebx, [edi + 5]
cmp dword [esi + 0xc], ebx
je 0x41414f
lea ecx, [edi + 7]
cmp dword [esi + 0xc], ecx
mov ebx, edi
je 0x4141f0
mov byte [esi + eax + 0x160], dl
jmp 0x414225
lea ebx, [eax + 0x6f59b65e]
mov edi, dword [esi + 0x10]
lea edx, [eax + edi]
add edx, 0x6f59b65e
and ebx, edi
add ebx, ebx
sub edx, ebx
add dl, 0x6e
jmp 0x414075
mov eax, 0x12002ee
jmp 0x4142db
xor eax, eax
jmp 0x4142db
mov eax, 0x14f8c88
add eax, esi
add eax, 0x160
mov dword [esi + 0x28], eax
xor ebx, ebx
mov dword [esi + 0x240], ebx
mov dword [esi + 0x250], ebx
mov dword [esi + 0x254], 0xf
mov byte [esi + 0x240], bl
push 0x40
call fcn.004716fe
add esp, 4
mov dword [esi + 0x250], 0x32
mov dword [esi + 0x254], 0x3f
movaps xmm0, xmmword [str.________________]
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm0
movups xmmword [eax + 0x20], xmm0
mov word [eax + 0x30], 0x5f5f
mov byte [eax + 0x32], bl
mov dword [esi + 0x240], eax
lea eax, [esi + 0x132]
xorps xmm0, xmm0
movups xmmword [eax], xmm0
mov word [eax + 0x10], 0
mov word [esi + 0x130], 0x6d9a
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov ecx, dword [eax]
xor eax, eax
cmp edi, eax
ja 0x4146c6
mov dl, byte [esi + eax + 0x130]
mov byte [esi + 0x14], dl
movzx ebx, dl
lea edx, [ecx + 1]
mov dword [esi + 0xc], edx
cmp edi, edx
jae 0x4143df
cmp ecx, eax
ja 0x4146d1
mov dword [esi + 0x10], ebx
lea ebx, [edi + ecx]
mov dword [esi + 0x1c], ebx
cmp ebx, eax
jbe 0x41442b
lea ebx, [ecx + 8]
cmp edi, ebx
je 0x414573
lea ebx, [ecx + 4]
cmp edi, ebx
jne 0x414517
lea edi, [eax + 0x2e51ae4c]
mov ebx, ecx
mov ecx, dword [esi + 0x10]
lea edx, [eax + ecx]
add edx, 0x2e51ae4c
and edi, ecx
mov ecx, ebx
add edi, edi
sub edx, edi
add dl, 0xec
jmp 0x414686
je 0x4144d5
mov dword [esi + 0x10], ebx
lea ebx, [ecx + 2]
cmp edi, ebx
je 0x4145b3
lea ebx, [ecx + 5]
cmp edi, ebx
jne 0x414546
lea ebx, [eax + 0x392bb5ea]
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0x10]
lea edx, [eax + ecx]
add edx, 0x392bb5ea
and ebx, ecx
add ebx, ebx
sub edx, ebx
mov ebx, ecx
mov ecx, dword [esi + 0xc]
add dl, 0x9a
add edi, ecx
mov dword [esi + 0x1c], edi
jmp 0x414666
lea ebx, [ecx + 0x10]
cmp edi, ebx
mov dword [esi + 0x18], edi
jae 0x4144d0
mov edi, ecx
lea ebx, [eax + 0x2bc84912]
mov ecx, dword [esi + 0x10]
lea edx, [eax + ecx]
add edx, 0x2bc84912
and ebx, ecx
add ebx, ebx
sub edx, ebx
add dl, 0x82
mov ecx, edi
lea ebx, [edi + 6]
mov edi, dword [esi + 0x18]
cmp edi, ebx
jbe 0x4144dd
lea ebx, [eax + 0x6eb9694a]
mov edi, ecx
mov ecx, dword [esi + 0x10]
lea edx, [eax + ecx]
add edx, 0x6eb9694a
and ebx, ecx
mov ecx, edi
mov edi, dword [esi + 0x18]
add ebx, ebx
sub edx, ebx
add dl, 0xfa
mov dword [esi + 0x20], edx
cmp edi, dword [esi + 0xc]
mov dl, byte [esi + 0x14]
je 0x41461b
lea edx, [ecx + 2]
cmp edi, edx
je 0x4145b3
lea edx, [ecx + 3]
cmp edi, edx
jne 0x414644
lea ebx, [eax + 0x6469b054]
mov edi, ecx
mov ecx, dword [esi + 0x10]
and ebx, ecx
lea edx, [eax + ecx]
add edx, 0x6469b054
mov ecx, edi
add ebx, ebx
sub edx, ebx
add dl, 0xb4
mov edi, dword [esi + 0x18]
jmp 0x414689
cmp edi, dword [esi + 0xc]
jne 0x414535
mov dl, byte [esi + 0x14]
jmp 0x41461b
mov dword [esi + 0x24], ebx
cmp edi, dword [esi + 0xc]
mov ebx, dword [esi + 0x10]
je 0x414554
lea ebx, [ecx + 3]
cmp edi, ebx
jne 0x4145a7
lea edi, [eax + 0x248c43fe]
mov ebx, ecx
mov ecx, dword [esi + 0x10]
lea edx, [eax + ecx]
add edx, 0x248c43fe
and edi, ecx
mov ecx, ebx
add edi, edi
sub edx, edi
add dl, 0xe
jmp 0x414686
lea ebx, [ecx + 5]
cmp edi, ebx
je 0x4145b3
lea ebx, [ecx + 0x10]
cmp edi, ebx
mov dl, byte [esi + 0x14]
je 0x41461b
jmp 0x41435d
lea ebx, [ecx + 2]
cmp edi, ebx
jne 0x41457c
mov edi, ecx
mov ecx, dword [esi + 0x10]
jmp 0x4145e8
lea ebx, [ecx + 6]
cmp edi, ebx
mov ebx, dword [esi + 0x10]
jne 0x41438c
lea edx, [eax - 0x626a99c2]
lea ecx, [ebx + eax]
add ecx, 0x9d95663e
and edx, ebx
add edx, edx
sub ecx, edx
add cl, 0x4e
mov byte [esi + eax + 0x130], cl
dec eax
mov ecx, dword [esi + 0xc]
jmp 0x414690
lea ebx, [ecx + 3]
cmp edi, ebx
jne 0x414622
lea edi, [eax - 0x1b512858]
mov ebx, dword [esi + 0x10]
lea edx, [eax + ebx]
add edx, 0xe4aed7a8
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0x68
jmp 0x414666
mov dword [esi + 0x20], edx
cmp edi, dword [esi + 0x24]
jne 0x41469c
mov dword [esi + 0x18], edi
lea ebx, [eax + 0x4cb68a86]
mov edi, ecx
mov ecx, dword [esi + 0x10]
and ebx, ecx
add ebx, ebx
lea edx, [ecx + eax]
add edx, 0x4cb68a86
sub edx, ebx
add dl, 0x56
mov byte [esi + eax + 0x130], dl
not edi
add edi, eax
movzx eax, dl
sub edi, eax
mov eax, edi
mov edi, dword [esi + 0xc]
lea edx, [eax + 0x787ed398]
and edx, ecx
lea ebx, [eax + ecx]
add ebx, 0x787ed398
add edx, edx
sub ebx, edx
add bl, 0xd8
mov byte [esi + eax + 0x130], bl
mov ebx, dword [esi + 0x18]
sub eax, ebx
inc ebx
mov dl, byte [esi + eax + 0x12e]
add eax, 0xfffffffe
mov ecx, edi
mov edi, ebx
movzx edx, dl
add edx, ecx
jmp 0x41468e
mov edi, ecx
lea ebx, [eax - 0x68920186]
mov ecx, dword [esi + 0x10]
lea edx, [eax + ecx]
add edx, 0x976dfe7a
and ebx, ecx
add ebx, ebx
sub edx, ebx
add dl, 0xaa
jmp 0x414456
lea edx, [ecx + 4]
cmp edi, edx
jne 0x4146ac
lea edi, [eax + 0x138ad49c]
mov ebx, dword [esi + 0x10]
lea edx, [eax + ebx]
add edx, 0x138ad49c
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0xbc
lea edi, [eax - 0xada079e]
and edi, ebx
add ebx, eax
add ebx, 0xf525f862
add edi, edi
sub ebx, edi
add bl, dl
add bl, 0x52
mov byte [esi + eax + 0x130], bl
mov edi, dword [esi + 0x1c]
movzx edx, dl
not edx
add eax, edx
inc eax
cmp eax, 0x14
jb 0x41436d
jmp 0x4146cd
lea ebx, [ecx + 8]
cmp edi, ebx
jne 0x414487
jmp 0x4144d5
lea edx, [ecx + 8]
cmp edi, edx
mov ebx, dword [esi + 0x10]
mov edx, dword [esi + 0x20]
je 0x414554
mov byte [esi + eax + 0x130], dl
jmp 0x414690
mov eax, 0x99612a
jmp 0x4146d6
xor eax, eax
jmp 0x4146d6
mov eax, 0x1511818
add eax, esi
add eax, 0x130
mov dword [esi + 0x24], eax
mov dword [esi + 0x260], 0x4e7361dc
mov dword [esi + 0x264], 0x4d4d444f
mov dword [esi + 0x268], 0xdb380372
lea eax, [esi + 0x26c]
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov edx, edi
mov ebx, dword [eax]
xor eax, eax
cmp edx, eax
ja 0x414af4
mov cl, byte [esi + eax + 0x260]
mov dword [esi + 0x18], ecx
movzx edi, cl
mov ecx, edx
mov edx, ebx
inc ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0xc], ecx
cmp ecx, ebx
mov dword [esi + 0x10], eax
jae 0x414783
cmp edx, eax
ja 0x414aff
mov ebx, edx
mov dword [esi + 0x1c], edi
lea edi, [edx + 9]
mov edx, dword [esi + 0xc]
cmp edx, edi
jae 0x414795
mov ecx, edx
mov dword [esi + 0x20], ebx
add edx, ebx
mov eax, dword [esi + 0x10]
cmp edx, eax
jbe 0x41485f
cmp ecx, edi
jne 0x4148f3
mov edi, dword [esi + 0x20]
mov ebx, dword [esi + 0x1c]
jmp 0x414829
jne 0x4147e1
mov ebx, edx
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x18]
jmp 0x414906
cmp edx, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
je 0x414919
lea edx, [ebx + 2]
cmp dword [esi + 0xc], edx
mov edx, dword [esi + 0xc]
je 0x414942
mov ecx, ebx
mov ebx, edx
lea edx, [ecx + 3]
cmp ebx, edx
jne 0x4149d8
mov ebx, ecx
lea ecx, [eax - 0x63d80b09]
mov edi, dword [esi + 0x1c]
lea edx, [eax + edi]
add edx, 0x9c27f4f7
and ecx, edi
add ecx, ecx
sub edx, ecx
add dl, 0x3f
jmp 0x414982
mov dword [esi + 0x1c], edi
mov ebx, edx
lea edi, [edx + 2]
mov edx, dword [esi + 0xc]
cmp edx, edi
jne 0x4148c1
mov eax, dword [esi + 0x10]
lea edi, [eax + 0x2e81c5a1]
mov ecx, ebx
mov ebx, dword [esi + 0x1c]
and edi, ebx
add edi, edi
lea edx, [eax + ebx]
add edx, 0x2e81c5a1
sub edx, edi
add dl, 0x99
mov byte [esi + eax + 0x260], dl
not ecx
add ecx, eax
movzx eax, dl
sub ecx, eax
mov eax, ecx
mov edi, dword [esi + 0x14]
lea ecx, [eax + 0x1968aac4]
and ecx, ebx
lea edx, [eax + ebx]
add edx, 0x1968aac4
add ecx, ecx
sub edx, ecx
add dl, 0xa4
mov byte [esi + eax + 0x260], dl
mov edx, dword [esi + 0xc]
sub eax, edx
inc edx
mov cl, byte [esi + eax + 0x25e]
add eax, 0xfffffffe
mov ebx, edi
jmp 0x414906
lea edx, [eax - 0x15191add]
mov edi, dword [esi + 0x1c]
lea ebx, [eax + edi]
add ebx, 0xeae6e523
and edx, edi
add edx, edx
sub ebx, edx
add bl, 0xb
mov dword [esi + 0x2c], ebx
cmp ecx, dword [esi + 0x14]
mov edx, ecx
jbe 0x414910
mov ebx, edx
lea edx, [eax - 0x6fb66a9]
lea ecx, [eax + edi]
add ecx, 0xf9049957
and edx, edi
add edx, edx
sub ecx, edx
mov edx, ebx
add cl, 0x9f
mov ebx, dword [esi + 0x20]
cmp edx, 8
ja 0x41495f
cmp edx, dword [esi + 0x14]
jne 0x414a0a
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x10]
jmp 0x414906
lea edi, [ebx + 3]
cmp edx, edi
jne 0x414945
mov eax, dword [esi + 0x10]
lea ecx, [eax + 0x17ebd881]
mov dword [esi + 0x20], ebx
mov ebx, dword [esi + 0x1c]
lea edi, [eax + ebx]
add edi, 0x17ebd881
and ecx, ebx
mov ebx, dword [esi + 0x20]
add ecx, ecx
sub edi, ecx
mov ecx, edi
add cl, 0x79
jmp 0x4149b0
mov edx, ecx
mov ebx, dword [esi + 0x20]
lea ecx, [ebx + 8]
cmp edx, ecx
mov ecx, dword [esi + 0x18]
jne 0x41470e
movzx ecx, cl
add ecx, ebx
jmp 0x4149b7
mov ebx, dword [esi + 0x20]
jne 0x4149c8
lea edi, [eax - 0x7d19ceeb]
mov ebx, edx
mov ecx, dword [esi + 0x1c]
lea edx, [ecx + eax]
add edx, 0x82e63115
and edi, ecx
add edi, edi
sub edx, edi
add dl, 0x6d
mov byte [esi + eax + 0x260], dl
mov edx, ebx
mov ebx, dword [esi + 0x14]
dec eax
jmp 0x4149b9
lea edi, [ebx + 5]
cmp edx, edi
mov edi, dword [esi + 0x1c]
mov edx, ebx
mov eax, dword [esi + 0x10]
jne 0x414747
mov ebx, edx
mov edx, dword [esi + 0xc]
jmp 0x414942
mov eax, dword [esi + 0x10]
lea edx, [eax + 0x6dcd1638]
mov edi, dword [esi + 0x1c]
lea ecx, [eax + edi]
add ecx, 0x6dcd1638
and edx, edi
add edx, edx
sub ecx, edx
mov edx, dword [esi + 0x18]
add dl, cl
add dl, 0x78
mov dword [esi + 0x18], edx
lea edx, [eax + 0x58b3fb5b]
and edx, edi
lea ecx, [edi + eax]
add ecx, 0x58b3fb5b
add edx, edx
sub ecx, edx
mov edx, dword [esi + 0x18]
add cl, dl
mov edi, edx
add cl, 0x83
mov byte [esi + eax + 0x260], cl
mov edx, dword [esi + 0xc]
mov ecx, edi
add edx, ebx
movzx ecx, cl
not ecx
add eax, ecx
inc eax
cmp eax, 0x18
jb 0x414720
jmp 0x414afb
mov edi, edx
lea edx, [ebx + 2]
cmp edi, edx
jne 0x414a4d
mov edx, edi
jmp 0x414942
lea edx, [ecx + 6]
cmp ebx, edx
jne 0x414a7b
mov edx, ebx
mov dword [esi + 0x20], ecx
lea ecx, [eax + 0x47c38983]
mov ebx, dword [esi + 0x1c]
lea edi, [eax + ebx]
add edi, 0x47c38983
and ecx, ebx
add ecx, ecx
sub edi, ecx
mov ecx, edi
add cl, 0x6b
mov ebx, dword [esi + 0x20]
jmp 0x4149b2
lea edx, [ebx + 2]
cmp dword [esi + 0xc], edx
je 0x4147f4
lea edx, [ebx + 3]
cmp dword [esi + 0xc], edx
mov edx, dword [esi + 0xc]
jne 0x414aa6
mov eax, dword [esi + 0x10]
lea ecx, [eax + 0x6afa5894]
mov ebx, dword [esi + 0x1c]
lea edi, [eax + ebx]
add edi, 0x6afa5894
and ecx, ebx
mov ebx, dword [esi + 0x20]
add ecx, ecx
sub edi, ecx
mov ecx, edi
add cl, 0xf4
jmp 0x4149b0
lea edx, [ebx + 3]
cmp edi, edx
jne 0x414a91
mov edx, edi
lea ecx, [eax + 0x26098cb5]
mov ebx, dword [esi + 0x1c]
lea edi, [eax + ebx]
add edi, 0x26098cb5
and ecx, ebx
mov ebx, dword [esi + 0x20]
add ecx, ecx
sub edi, ecx
mov ecx, edi
add cl, 0xd
jmp 0x4149b0
lea edx, [ecx + 4]
cmp dword [esi + 0xc], edx
mov edx, dword [esi + 0xc]
mov ebx, ecx
jne 0x41475e
jmp 0x4147f4
lea edx, [ebx + 5]
cmp edi, edx
mov edx, edi
mov ecx, dword [esi + 0x2c]
je 0x4147f4
jmp 0x4148a7
mov edi, edx
lea edx, [ebx + 5]
cmp edi, edx
mov eax, dword [esi + 0x10]
jne 0x414ad2
lea ecx, [eax + 0x40c822da]
mov edi, dword [esi + 0x1c]
lea edx, [eax + edi]
add edx, 0x40c822da
and ecx, edi
add ecx, ecx
sub edx, ecx
add dl, 0xa
jmp 0x414982
lea edx, [ebx + 4]
cmp edi, edx
mov edx, edi
je 0x414942
cmp ebx, 1
ja 0x414919
mov byte [esi + eax + 0x260], cl
jmp 0x4149b9
mov eax, 0x48d8a7
jmp 0x414b04
xor eax, eax
jmp 0x414b04
mov eax, 0x161f384
add eax, esi
add eax, 0x260
mov dword [esi + 0x1c], eax
mov dword [esi + 0x198], 0xd2c5a968
mov dword [esi + 0x19c], 0x6f86dbd5
mov byte [esi + 0x1a0], 0x4e
lea eax, [esi + 0x1a1]
xorps xmm0, xmm0
movups xmmword [eax], xmm0
mov word [eax + 0x10], 0
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 0x414e07
mov dl, byte [esi + eax + 0x198]
movzx ebx, dl
lea edi, [ecx + 1]
mov dword [esi + 0x10], edi
cmp dword [esi + 0xc], edi
jae 0x414b9a
cmp ecx, eax
ja 0x414e12
mov edi, dword [esi + 0xc]
add edi, ecx
cmp edi, eax
jbe 0x414c19
lea edx, [ecx + 0x10]
cmp dword [esi + 0xc], edx
je 0x414d37
mov dword [esi + 0x14], ebx
lea edx, [ecx + 3]
cmp dword [esi + 0xc], edx
je 0x414bab
jmp 0x414b3b
je 0x414c0d
mov dword [esi + 0x14], ebx
lea ebx, [ecx + 3]
cmp dword [esi + 0xc], ebx
jne 0x414c7b
lea ebx, [eax + 0x2d27106f]
mov edi, dword [esi + 0x14]
and ebx, edi
add ebx, ebx
lea edx, [edi + eax]
add edx, 0x2d27106f
sub edx, ebx
add dl, 0xf7
mov byte [esi + eax + 0x198], dl
not ecx
add ecx, eax
movzx eax, dl
sub ecx, eax
mov eax, ecx
mov ecx, dword [esi + 0x10]
lea edx, [eax - 0xe3d0e84]
and edx, edi
lea ebx, [eax + edi]
add ebx, 0xf1c2f17c
add edx, edx
sub ebx, edx
add bl, 0x9c
mov byte [esi + eax + 0x198], bl
mov edx, dword [esi + 0xc]
sub eax, edx
inc edx
mov dword [esi + 0xc], edx
mov dl, byte [esi + eax + 0x196]
add eax, 0xfffffffe
movzx edx, dl
add edx, ecx
add eax, edx
jmp 0x414d3b
mov dword [esi + 0x14], ebx
lea ebx, [ecx + 6]
cmp dword [esi + 0xc], ebx
jae 0x414ca9
mov dword [esi + 0x18], ecx
lea ebx, [eax - 0x3b641ef3]
mov edx, dword [esi + 0x14]
lea ecx, [eax + edx]
add ecx, 0xc49be10d
and ebx, edx
add ebx, ebx
sub ecx, ebx
add cl, 0xa5
mov dword [esi + 0x2c], ecx
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 0x10]
mov ebx, dword [esi + 0x14]
mov ecx, dword [esi + 0x18]
jne 0x414ccc
lea edx, [eax + 0x1ab78c3b]
lea ecx, [ebx + eax]
add ecx, 0x1ab78c3b
and edx, ebx
add edx, edx
sub ecx, edx
add cl, 0x63
mov byte [esi + eax + 0x198], cl
jmp 0x414d37
lea ebx, [ecx + 5]
cmp dword [esi + 0xc], ebx
jne 0x414d2c
lea edx, [eax + 0x72b2ab8f]
mov ebx, dword [esi + 0x14]
and edx, ebx
add ebx, eax
add ebx, 0x72b2ab8f
add edx, edx
sub ebx, edx
add bl, 0x17
add dword [esi + 0xc], ecx
jmp 0x414db6
mov dword [esi + 0x20], edi
mov edi, dword [esi + 0xc]
cmp edi, dword [esi + 0x10]
je 0x414c0d
lea edx, [ecx + 2]
cmp dword [esi + 0xc], edx
jne 0x414d5e
mov edi, dword [esi + 0x14]
jmp 0x414bdb
lea ebx, [ecx + 2]
cmp dword [esi + 0xc], ebx
je 0x414d37
mov dword [esi + 0x20], edi
lea ebx, [ecx + 3]
cmp dword [esi + 0xc], ebx
jne 0x414d93
lea edx, [eax - 0x1fc577f]
mov edi, dword [esi + 0x14]
lea ebx, [eax + edi]
add ebx, 0xfe03a881
and edx, edi
add edx, edx
sub ebx, edx
lea edi, [eax - 0x5c10b1ab]
mov edx, dword [esi + 0x14]
and edi, edx
add edx, eax
add edx, 0xa3ef4e55
add edi, edi
sub edx, edi
add bl, 0x79
add dl, bl
add dl, 0xad
mov byte [esi + eax + 0x198], dl
mov edx, dword [esi + 0x20]
mov dword [esi + 0xc], edx
jmp 0x414db6
lea ebx, [ecx + 4]
cmp dword [esi + 0xc], ebx
jne 0x414d4a
mov dword [esi + 0x10], ecx
dec eax
mov ecx, dword [esi + 0x10]
inc eax
cmp eax, 0x1b
jb 0x414b4e
jmp 0x414e0e
lea ebx, [ecx + 7]
cmp dword [esi + 0xc], ebx
mov ebx, dword [esi + 0x14]
jne 0x414b6c
jmp 0x414c57
lea edx, [ecx + 3]
cmp dword [esi + 0xc], edx
je 0x414bab
mov dword [esi + 0x18], ecx
lea ebx, [eax + 0x20c97611]
mov edx, dword [esi + 0x14]
lea ecx, [eax + edx]
add ecx, 0x20c97611
and ebx, edx
add ebx, ebx
sub ecx, ebx
add cl, 0x89
mov dword [esi + 0x2c], ecx
mov edi, dword [esi + 0x20]
jmp 0x414c49
lea ebx, [ecx + 5]
cmp dword [esi + 0xc], ebx
jne 0x414dc0
lea edx, [eax + 0x10732cb5]
mov edi, dword [esi + 0x14]
lea ebx, [eax + edi]
add ebx, 0x10732cb5
and edx, edi
add edx, edx
sub ebx, edx
add bl, 0xd
movzx edx, bl
not edx
jmp 0x414c12
lea ebx, [ecx + 7]
cmp dword [esi + 0xc], ebx
je 0x414bab
lea ebx, [ecx + 4]
cmp dword [esi + 0xc], ebx
jne 0x414df4
lea edx, [eax - 0x57fb1f54]
mov edi, dword [esi + 0x14]
and edx, edi
lea ebx, [eax + edi]
add ebx, 0xa804e0ac
add edx, edx
sub ebx, edx
add bl, 0x4c
jmp 0x414d21
mov edx, ecx
mov ecx, dword [esi + 0x2c]
mov byte [esi + eax + 0x198], cl
mov ecx, edx
jmp 0x414d3b
mov eax, 0x5715c9
jmp 0x414e17
xor eax, eax
jmp 0x414e17
mov eax, 0x17b34bc
add eax, esi
add eax, 0x198
mov dword [esi + 0x14], eax
xorps xmm0, xmm0
lea eax, [esi + 0xe6]
movups xmmword [eax], xmm0
mov word [eax + 0x10], 0
mov dword [esi + 0xe0], 0xed1e1311
mov word [esi + 0xe4], 0xa9c8
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov ecx, dword [eax]
xor eax, eax
cmp edi, eax
ja 0x4150f2
mov dl, byte [esi + eax + 0xe0]
movzx ebx, dl
mov dword [esi + 0xc], ebx
lea ebx, [ecx + 1]
cmp edi, ebx
jae 0x414eb0
cmp ecx, eax
ja 0x4150fd
lea edx, [edi + ecx]
cmp edx, eax
jbe 0x414ec7
mov dword [esi + 0x10], edx
cmp edi, ebx
jne 0x414f75
mov edi, ecx
lea ecx, [eax + 0x209fcfc8]
mov edx, dword [esi + 0xc]
lea ebx, [eax + edx]
add ebx, 0x209fcfc8
and ecx, edx
add ecx, ecx
sub ebx, ecx
mov ecx, edi
add bl, 0x88
jmp 0x414ff3
jne 0x414eb9
mov ebx, ecx
jmp 0x414f6c
lea edx, [ecx + 2]
cmp edi, edx
jne 0x414ef6
mov ebx, ecx
mov edx, dword [esi + 0xc]
jmp 0x414f41
cmp edi, ebx
jne 0x414fa2
lea edx, [eax + 0x46e62d76]
mov ecx, dword [esi + 0xc]
add ecx, eax
add ecx, 0x46e62d76
and edx, dword [esi + 0xc]
add edx, edx
sub ecx, edx
add cl, 0xc6
mov byte [esi + eax + 0xe0], cl
jmp 0x414fb2
lea edx, [ecx + 3]
cmp edi, edx
jne 0x414fba
mov dword [esi + 0x18], ecx
lea ecx, [eax + 0x6281c1de]
mov edx, dword [esi + 0xc]
add edx, eax
add edx, 0x6281c1de
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0xc]
and ecx, edx
add ecx, ecx
sub dword [esi + 0x10], ecx
mov ecx, dword [esi + 0x10]
add cl, 0xee
mov dword [esi + 0x10], ecx
mov byte [esi + eax + 0xe0], cl
mov ecx, dword [esi + 0x18]
not ecx
add ecx, eax
movzx eax, byte [esi + 0x10]
sub ecx, eax
mov eax, ecx
lea ecx, [eax - 0x16975908]
and ecx, edx
add edx, eax
add edx, 0xe968a6f8
add ecx, ecx
sub edx, ecx
add dl, 0x38
mov byte [esi + eax + 0xe0], dl
sub eax, edi
inc edi
mov dl, byte [esi + eax + 0xde]
add eax, 0xfffffffe
movzx ecx, dl
add ecx, ebx
add eax, ecx
jmp 0x414fb3
mov edx, ecx
add ecx, 3
cmp edi, ecx
jne 0x415015
lea ecx, [eax + 0x2e6d99fc]
mov edi, dword [esi + 0xc]
lea ebx, [eax + edi]
add ebx, 0x2e6d99fc
and ecx, edi
add ecx, ecx
sub ebx, ecx
add bl, 0x1c
jmp 0x415039
mov dword [esi + 0x10], edx
lea edx, [ecx + 2]
cmp edi, edx
jne 0x41503d
mov ebx, ecx
dec eax
mov ecx, ebx
jmp 0x415069
lea edx, [ecx + 5]
cmp edi, edx
jne 0x415078
lea edx, [eax - 0x26465dae]
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0xc]
lea ebx, [eax + edx]
add ebx, 0xd9b9a252
and dword [esi + 0x10], edx
mov edx, dword [esi + 0x10]
add edx, edx
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0xc]
sub ebx, dword [esi + 0x10]
add bl, 0xc2
add edi, ecx
mov dword [esi + 0x10], edi
lea edi, [eax + 0x54b3f7aa]
and edi, edx
add edx, eax
add edx, 0x54b3f7aa
add edi, edi
sub edx, edi
add dl, bl
add dl, 0x5a
mov byte [esi + eax + 0xe0], dl
jmp 0x41505f
lea ecx, [edx + 5]
cmp edi, ecx
jne 0x415088
lea ecx, [eax + 0x3c3b6430]
mov ebx, dword [esi + 0xc]
and ecx, ebx
add ebx, eax
add ebx, 0x3c3b6430
add ecx, ecx
sub ebx, ecx
add bl, 0xb0
mov dword [esi + 0x10], edi
mov ecx, edx
jmp 0x41505f
lea edx, [ecx + 3]
cmp edi, edx
jne 0x4150aa
lea edx, [eax + 0x6a098a36]
mov edi, dword [esi + 0xc]
lea ebx, [eax + edi]
add ebx, 0x6a098a36
and edx, edi
add edx, edx
sub ebx, edx
add bl, 0x86
movzx edx, bl
not edx
add eax, edx
mov edi, dword [esi + 0x10]
inc eax
cmp eax, 0x18
jb 0x414e56
jmp 0x4150f9
lea edx, [ecx + 8]
cmp edi, edx
jne 0x414e72
jmp 0x414ecf
lea ecx, [edx + 8]
cmp edi, ecx
mov ecx, edx
je 0x414f01
mov ebx, ecx
add ecx, 0xa
cmp edi, ecx
mov edx, dword [esi + 0xc]
je 0x414f41
jmp 0x414e46
lea edx, [ecx + 5]
cmp edi, edx
je 0x414f01
lea edx, [ecx + 7]
cmp edi, edx
je 0x414fb0
lea edx, [ecx + 8]
cmp edi, edx
je 0x414ecf
lea ebx, [eax - 0x79191ae6]
mov edx, dword [esi + 0xc]
add edx, eax
add edx, 0x86e6e51a
and ebx, dword [esi + 0xc]
add ebx, ebx
sub edx, ebx
add dl, 0x4a
mov byte [esi + eax + 0xe0], dl
jmp 0x415069
mov eax, 0x108d292
jmp 0x415102
xor eax, eax
jmp 0x415102
mov eax, 0x161ed78
add eax, esi
add eax, 0xe0
mov dword [esi + 0x20], 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 + 0x214]
mov eax, closesocket
sub eax, ecx
cmp eax, edi
jb 0x421d35
mov edx, dword [esi + 0x204]
mov eax, dword [esi + 0x218]
mov dword [esi + 0x60], 0
mov dword [esi + 0x2c], ecx
add ecx, edi
mov dword [esi + 0x18], 0xf
lea ebx, [esi + 0x60]
cmp ecx, 0x10
mov dword [esi + 0x10], ecx
jb 0x4151aa
mov dword [esi + 0x34], eax
mov eax, ecx
or eax, 0xf
mov dword [esi + 0xc], edx
js 0x415187
cmp eax, 0x17
mov ebx, 0x16
mov dword [esi + 0x18], eax
cmovae ebx, eax
lea eax, [ebx + 1]
cmp ebx, 0xfff
jae 0x415193
mov dword [esi + 0x18], ebx
push eax
call fcn.004716fe
jmp 0x415199
mov dword [esi + 0x18], closesocket
mov eax, closesocket
push eax
call fcn.0040130b
add esp, 4
mov ebx, eax
mov dword [esi + 0x60], eax
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x34]
cmp eax, 0x10
lea eax, [esi + 0x204]
cmovb edx, eax
mov dword [esi + 0xc], edx
mov dword [esi + 0x70], ecx
mov eax, dword [esi + 0x18]
mov dword [esi + 0x74], eax
push edi
push dword [esi + 0x20]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, ebx
push dword [esi + 0x2c]
push dword [esi + 0xc]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x10]
mov byte [ebx + eax], 0
push dword [esi + 0x14]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ecx, eax
mov ebx, dword [esi + 0x70]
mov edi, dword [esi + 0x74]
mov eax, edi
sub eax, ebx
cmp eax, ecx
jae 0x4152d7
mov eax, closesocket
sub eax, ebx
cmp eax, ecx
jb 0x421d35
mov dword [esi + 0x18], ecx
add ecx, ebx
mov dword [esi + 0xc], ecx
or ecx, 0xf
mov dword [esi + 0x10], closesocket
mov eax, closesocket
js 0x41525f
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 0x41525f
add edx, edi
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x415f94
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 + 0x70], eax
mov dword [esi + 0x74], edx
cmp edi, 0x10
jb 0x415302
mov eax, dword [esi + 0x60]
push ebx
mov dword [esi + 0x20], 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 + 0x18]
push dword [esi + 0x14]
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 0x41532c
mov ecx, dword [esi + 0x20]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x421d3a
add edi, 0x24
mov ecx, edi
jmp 0x41532f
mov edx, edi
mov edi, ecx
add edi, ebx
mov dword [esi + 0x70], edi
lea eax, [esi + 0x60]
cmp edx, 0x10
jb 0x4152eb
mov eax, dword [esi + 0x60]
add ebx, eax
push ecx
push dword [esi + 0x14]
push ebx
mov ebx, eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebx + edi], 0
jmp 0x41533e
push ebx
lea eax, [esi + 0x60]
push eax
push ecx
mov edi, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, edi
push dword [esi + 0x18]
push dword [esi + 0x14]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0xc]
mov byte [edi + eax], 0
jmp 0x41533b
mov eax, dword [esi + 0x20]
push ecx
push eax
call fcn.00471733
add esp, 8
mov edi, ebx
mov dword [esi + 0x60], edi
movsd xmm0, qword [esi + 0x70]
movsd qword [esi + 0x90], xmm0
movups xmm0, xmmword [esi + 0x60]
movaps xmmword [esi + 0x80], xmm0
mov dword [esi + 0x70], 0
mov dword [esi + 0x74], 0xf
mov byte [esi + 0x60], 0
mov ecx, dword [esi + 0x2a8]
cmp dword [esi + 0x2ac], 0x10
lea edx, [esi + 0x298]
jb 0x415383
mov edx, dword [esi + 0x298]
mov edi, dword [esi + 0x90]
mov eax, dword [esi + 0x94]
mov dword [esi + 0xc], eax
sub eax, edi
cmp eax, ecx
jae 0x415479
mov eax, closesocket
sub eax, edi
cmp eax, ecx
jb 0x421d35
mov dword [esi + 0x20], edx
mov dword [esi + 0x18], ecx
add ecx, edi
mov dword [esi + 0x10], ecx
or ecx, 0xf
mov dword [esi + 0x14], closesocket
mov eax, closesocket
js 0x4153f8
mov eax, dword [esi + 0xc]
mov edx, eax
shr edx, 1
mov ebx, edx
xor ebx, 0x7fffffff
cmp ebx, eax
mov eax, closesocket
jb 0x4153f8
add edx, dword [esi + 0xc]
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x415fb2
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 + 0x90], eax
mov dword [esi + 0x94], edx
cmp dword [esi + 0xc], 0x10
jb 0x4154af
mov eax, dword [esi + 0x80]
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 + 0x18]
push dword [esi + 0x20]
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 0x4154dc
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x421d3a
mov ecx, dword [esi + 0xc]
add ecx, 0x24
jmp 0x4154df
lea ebx, [edi + ecx]
mov eax, ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x90], ebx
lea ebx, [esi + 0x80]
cmp dword [esi + 0xc], 0x10
jb 0x415499
mov ebx, dword [esi + 0x80]
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 0x4154f1
push edi
lea eax, [esi + 0x80]
push eax
push ecx
mov ebx, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, ebx
push dword [esi + 0x18]
push dword [esi + 0x20]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x10]
mov byte [ebx + eax], 0
jmp 0x4154eb
mov eax, dword [esi + 0x14]
push ecx
push eax
call fcn.00471733
add esp, 8
mov ebx, edi
mov dword [esi + 0x80], ebx
movsd xmm0, qword [esi + 0x90]
movsd qword [esi + 0x120], xmm0
movaps xmm0, xmmword [esi + 0x80]
movaps xmmword [esi + 0x110], xmm0
mov dword [esi + 0x90], 0
mov dword [esi + 0x94], 0xf
mov byte [esi + 0x80], 0
push dword [esi + 0x1c]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ecx, eax
mov ebx, dword [esi + 0x120]
mov edi, dword [esi + 0x124]
mov eax, edi
sub eax, ebx
cmp eax, ecx
jae 0x415629
mov eax, closesocket
sub eax, ebx
cmp eax, ecx
jb 0x421d35
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 0x4155a8
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 0x4155a8
add edx, edi
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x415fd0
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 + 0x120], eax
mov dword [esi + 0x124], edx
cmp edi, 0x10
jb 0x41565d
mov eax, dword [esi + 0x110]
push ebx
mov dword [esi + 0x18], 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 + 0x1c]
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 0x41568a
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x421d3a
add edi, 0x24
mov ecx, edi
jmp 0x41568d
mov edx, edi
mov edi, ecx
add edi, ebx
mov dword [esi + 0x120], edi
lea eax, [esi + 0x110]
cmp edx, 0x10
jb 0x415646
mov eax, dword [esi + 0x110]
add ebx, eax
push ecx
push dword [esi + 0x1c]
push ebx
mov ebx, eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebx + edi], 0
jmp 0x41569f
push ebx
lea eax, [esi + 0x110]
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 + 0x1c]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0xc]
mov byte [edi + eax], 0
jmp 0x415699
mov eax, dword [esi + 0x18]
push ecx
push eax
call fcn.00471733
add esp, 8
mov edi, ebx
mov dword [esi + 0x110], edi
movsd xmm0, qword [esi + 0x120]
movsd qword [esi + 0x230], xmm0
movaps xmm0, xmmword [esi + 0x110]
movaps xmmword [esi + 0x220], xmm0
mov dword [esi + 0x120], 0
mov dword [esi + 0x124], 0xf
mov byte [esi + 0x110], 0
mov ecx, dword [esi + 0xcc]
cmp dword [esi + 0xd0], 0x10
lea edx, [esi + 0xbc]
jb 0x4156f3
mov edx, dword [esi + 0xbc]
mov edi, dword [esi + 0x230]
mov eax, dword [esi + 0x234]
mov dword [esi + 0xc], eax
sub eax, edi
cmp eax, ecx
jae 0x4157e9
mov eax, closesocket
sub eax, edi
cmp eax, ecx
jb 0x421d35
mov dword [esi + 0x1c], edx
mov dword [esi + 0x18], ecx
add ecx, edi
mov dword [esi + 0x10], ecx
or ecx, 0xf
mov dword [esi + 0x14], closesocket
mov eax, closesocket
js 0x415768
mov eax, dword [esi + 0xc]
mov edx, eax
shr edx, 1
mov ebx, edx
xor ebx, 0x7fffffff
cmp ebx, eax
mov eax, closesocket
jb 0x415768
add edx, dword [esi + 0xc]
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x415fee
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 + 0x230], eax
mov dword [esi + 0x234], edx
cmp dword [esi + 0xc], 0x10
jb 0x41581f
mov eax, dword [esi + 0x220]
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 + 0x18]
push dword [esi + 0x1c]
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 0x41584c
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x421d3a
mov ecx, dword [esi + 0xc]
add ecx, 0x24
jmp 0x41584f
lea ebx, [edi + ecx]
mov eax, ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x230], ebx
lea ebx, [esi + 0x220]
cmp dword [esi + 0xc], 0x10
jb 0x415809
mov ebx, dword [esi + 0x220]
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 0x415861
push edi
lea eax, [esi + 0x220]
push eax
push ecx
mov ebx, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, ebx
push dword [esi + 0x18]
push dword [esi + 0x1c]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x10]
mov byte [ebx + eax], 0
jmp 0x41585b
mov eax, dword [esi + 0x14]
push ecx
push eax
call fcn.00471733
add esp, 8
mov ebx, edi
mov dword [esi + 0x220], ebx
movsd xmm0, qword [esi + 0x230]
movsd qword [esi + 0x50], xmm0
movaps xmm0, xmmword [esi + 0x220]
movaps xmmword [esi + 0x40], xmm0
mov dword [esi + 0x230], 0
mov dword [esi + 0x234], 0xf
mov byte [esi + 0x220], 0
push dword [esi + 0x24]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ecx, eax
mov ebx, dword [esi + 0x50]
mov edx, dword [esi + 0x54]
mov eax, edx
sub eax, ebx
cmp eax, ecx
jae 0x415993
mov eax, closesocket
sub eax, ebx
cmp eax, ecx
jb 0x421d35
mov dword [esi + 0x18], 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 0x415913
mov eax, edx
shr edx, 1
mov edi, edx
xor edi, 0x7fffffff
cmp edi, eax
mov eax, closesocket
mov edi, dword [esi + 0x10]
jb 0x415913
add edx, dword [esi + 0xc]
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x416008
mov dword [esi + 0x14], edx
push eax
call fcn.0040130b
add esp, 4
mov ecx, eax
mov edx, dword [esi + 0x14]
mov dword [esi + 0x50], edi
mov dword [esi + 0x54], edx
mov edi, dword [esi + 0xc]
cmp edi, 0x10
jb 0x4159c2
mov eax, dword [esi + 0x40]
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 + 0x18]
push dword [esi + 0x24]
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 0x4159f4
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
lea edi, [esi + 0x148]
jae 0x421d3a
add edx, 0x24
mov ecx, edx
jmp 0x4159fd
mov edi, ecx
add edi, ebx
mov dword [esi + 0x50], edi
lea eax, [esi + 0x40]
cmp edx, 0x10
jb 0x4159a5
mov eax, dword [esi + 0x40]
add ebx, eax
push ecx
push dword [esi + 0x24]
push ebx
mov ebx, eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebx + edi], 0
lea edi, [esi + 0x148]
jmp 0x415a0a
push ebx
lea eax, [esi + 0x40]
push eax
push ecx
mov edi, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, edi
push dword [esi + 0x18]
push dword [esi + 0x24]
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 + 0x148]
jmp 0x415a07
lea edi, [esi + 0x148]
mov eax, dword [esi + 0x14]
push ecx
push eax
call fcn.00471733
add esp, 8
mov dword [esi + 0x40], ebx
movsd xmm0, qword [esi + 0x50]
movsd qword [esi + 0x190], xmm0
movaps xmm0, xmmword [esi + 0x40]
movaps xmmword [esi + 0x180], xmm0
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 0xf
mov byte [esi + 0x40], 0
sub esp, 0xc
mov al, byte [esi + 0x280]
mov byte [esp], al
lea eax, [esi + 0x240]
mov dword [esp + 8], eax
lea eax, [esi + 0x180]
mov dword [esp + 4], eax
mov ecx, edi
call fcn.00451d58
push dword [esi + 0x28]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ebx, dword [esi + 0x158]
mov edx, dword [esi + 0x15c]
mov ecx, edx
sub ecx, ebx
cmp ecx, eax
jae 0x415b5a
mov ecx, closesocket
sub ecx, ebx
cmp ecx, eax
jb 0x421d35
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 0x415adb
mov eax, edx
shr edx, 1
mov edi, edx
xor edi, 0x7fffffff
cmp edi, eax
mov eax, closesocket
mov edi, closesocket
jb 0x415adb
add edx, dword [esi + 0x10]
cmp ecx, edx
mov edi, edx
cmovae edi, ecx
lea eax, [edi + 1]
cmp eax, 0x1000
jb 0x416022
push eax
call fcn.0040130b
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x158], eax
mov dword [esi + 0x15c], edi
mov eax, dword [esi + 0x10]
cmp eax, 0x10
jb 0x415b88
mov edx, dword [esi + 0x148]
push ebx
mov dword [esi + 0x18], 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 + 0x28]
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 0x415bba
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x421d3a
add edx, 0x24
mov ecx, edx
jmp 0x415bbd
mov ecx, edi
mov edi, eax
add edi, ebx
mov dword [esi + 0x158], edi
cmp edx, 0x10
jb 0x415b71
mov ecx, dword [esi + 0x148]
add ebx, ecx
push eax
push dword [esi + 0x28]
push ebx
mov ebx, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebx + edi], 0
jmp 0x415bcd
push ebx
lea eax, [esi + 0x148]
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 + 0x28]
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 0x415bc7
mov eax, dword [esi + 0x18]
push ecx
push eax
call fcn.00471733
add esp, 8
mov dword [esi + 0x148], ebx
movsd xmm0, qword [esi + 0x158]
movsd qword [esi + 0x290], xmm0
movups xmm0, xmmword [esi + 0x148]
movaps xmmword [esi + 0x280], xmm0
mov dword [esi + 0x158], 0
mov dword [esi + 0x15c], 0xf
mov byte [esi + 0x148], 0
mov eax, dword [esi + 0x294]
mov dword [esi + 0x10], eax
cmp eax, 0x10
mov edi, dword [esi + 0x280]
lea eax, [esi + 0x280]
cmovae eax, edi
mov dword [esi + 0x14], eax
mov ebx, dword [esi + 0x108]
mov ecx, dword [esi + 0x10c]
mov eax, ecx
sub eax, ebx
mov edx, dword [esi + 0x290]
cmp eax, edx
mov dword [esi + 0xc], edi
jae 0x415d2b
mov dword [esi + 0x18], ecx
mov eax, closesocket
sub eax, ebx
cmp eax, edx
jb 0x421d35
mov dword [esi + 0x20], edx
lea ecx, [ebx + edx]
mov dword [esi + 0x1c], ecx
or ecx, 0xf
mov dword [esi + 0x24], closesocket
mov eax, closesocket
js 0x415ca3
mov dword [esi + 0x28], ebx
mov ebx, dword [esi + 0x18]
mov edx, ebx
shr edx, 1
mov edi, edx
xor edi, 0x7fffffff
cmp edi, ebx
mov ebx, dword [esi + 0x28]
jb 0x415ca3
add edx, dword [esi + 0x18]
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x416031
mov dword [esi + 0x24], edx
push eax
call fcn.0040130b
add esp, 4
mov ecx, eax
mov edx, dword [esi + 0x24]
mov edi, dword [esi + 0x1c]
mov dword [esi + 0x108], edi
mov dword [esi + 0x10c], edx
cmp dword [esi + 0x18], 0x10
jb 0x415d5e
mov eax, dword [esi + 0xf8]
push ebx
mov dword [esi + 0x24], 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 + 0x1c]
mov byte [edi + eax], 0
mov eax, dword [esi + 0x18]
lea ecx, [eax + 1]
cmp ecx, 0x1000
jb 0x415d90
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
mov edi, dword [esi + 0xc]
jae 0x421d3a
mov ecx, dword [esi + 0x18]
add ecx, 0x24
jmp 0x415d96
mov eax, ebx
add ebx, edx
mov dword [esi + 0x108], ebx
lea edi, [esi + 0xf8]
cmp ecx, 0x10
jb 0x415d46
mov edi, dword [esi + 0xf8]
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 0x415da6
push ebx
lea eax, [esi + 0xf8]
push eax
push ecx
mov dword [esi + 0x18], ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, dword [esi + 0x18]
push dword [esi + 0x20]
push dword [esi + 0x14]
push ebx
call sub.VCRUNTIME140.dll_memcpy
mov ebx, dword [esi + 0x18]
add esp, 0xc
mov byte [ebx + edi], 0
mov edi, dword [esi + 0xc]
jmp 0x415da0
mov edi, dword [esi + 0xc]
mov eax, dword [esi + 0x24]
push ecx
push eax
call fcn.00471733
add esp, 8
mov dword [esi + 0xf8], ebx
mov edx, dword [esi + 0x10]
cmp edx, 0x10
jb 0x415ddb
lea ecx, [edx + 1]
cmp ecx, 0x1000
jb 0x415dd1
mov eax, dword [edi - 4]
add edi, 0xfffffffc
sub edi, eax
cmp edi, 0x20
jae 0x421d3a
add edx, 0x24
mov ecx, edx
mov edi, eax
push ecx
push edi
call fcn.00471733
add esp, 8
mov dword [esi + 0x290], 0
mov dword [esi + 0x294], 0xf
mov byte [esi + 0x280], 0
mov eax, dword [esi + 0x15c]
cmp eax, 0x10
jb 0x415e34
mov ecx, dword [esi + 0x148]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x415e2a
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x421d3a
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
mov dword [esi + 0x158], 0
mov dword [esi + 0x15c], 0xf
mov byte [esi + 0x148], 0
mov eax, dword [esi + 0x194]
cmp eax, 0x10
jb 0x415e8d
mov ecx, dword [esi + 0x180]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x415e83
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x421d3a
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
mov eax, dword [esi + 0x254]
cmp eax, 0x10
jb 0x415ecb
mov ecx, dword [esi + 0x240]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x415ec1
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x421d3a
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
inc dword [0x4784f8]
mov eax, dword [esi + 0x2ac]
cmp eax, 0x10
jb 0x415f0f
mov ecx, dword [esi + 0x298]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x415f05
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x421d3a
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
mov eax, dword [esi + 0x218]
cmp eax, 0x10
jb 0x415f4d
mov ecx, dword [esi + 0x204]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x415f43
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x421d3a
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
mov eax, dword [esi + 0xd0]
cmp eax, 0x10
jb 0x41608f
mov ecx, dword [esi + 0xbc]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x415f85
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x421d3a
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
jmp 0x41608f
test eax, eax
je 0x416049
push eax
mov dword [esi + 0x10], edx
call fcn.004716fe
mov edx, dword [esi + 0x10]
add esp, 4
mov ecx, eax
jmp 0x41526d
test eax, eax
je 0x416053
push eax
mov dword [esi + 0x14], edx
call fcn.004716fe
mov edx, dword [esi + 0x14]
add esp, 4
mov ecx, eax
jmp 0x415406
test eax, eax
je 0x41605d
push eax
mov dword [esi + 0x10], edx
call fcn.004716fe
mov edx, dword [esi + 0x10]
add esp, 4
mov ecx, eax
jmp 0x4155b6
test eax, eax
je 0x416067
push eax
mov dword [esi + 0x14], edx
call fcn.004716fe
mov edx, dword [esi + 0x14]
add esp, 4
mov ecx, eax
jmp 0x415776
test eax, eax
je 0x416071
push eax
mov dword [esi + 0x14], edx
call fcn.004716fe
mov edx, dword [esi + 0x14]
add esp, 4
mov ecx, eax
jmp 0x415921
test eax, eax
je 0x41607b
push eax
call fcn.004716fe
jmp 0x415ae1
test eax, eax
je 0x416085
push eax
mov edi, edx
call fcn.004716fe
mov edx, edi
add esp, 4
mov ecx, eax
jmp 0x415cb1
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x41526d
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x415406
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x4155b6
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x415776
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x415921
xor ecx, ecx
xor edi, edi
dec edi
jmp 0x415ae6
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x415cb1
mov edi, dword [0x478558]
test edi, edi
jne 0x416207
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xb6b068c3
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x41610b
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0xe6fe05f3
cmp cx, 2
jb 0x4160fa
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0xe6fe05f3
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x4160e7
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x4161ee
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x4161c3
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x4161c0
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 0x41616d
add edx, dword [esi + 0x18]
mov eax, 0xe6fe05f3
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x416159
jmp 0x416172
mov eax, 0xe6fe05f3
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x416136
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 0x416201
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x416201
mov al, byte [edi]
mov ecx, 0xe6fe05f3
mov ebx, 0xe6fe05f3
cmp al, 0x2e
je 0x4161c8
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x4161ab
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x4161ee
mov al, byte [edi + 1]
test al, al
je 0x4161e9
add edi, 2
mov ecx, 0xe6fe05f3
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x4161d7
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x416201
cmp dword [eax + 0x18], 0
jne 0x4160b5
mov dword [0x478558], edi
push dword [esi + 0x30]
call edi
cmp eax, 0x64
je 0x413777
mov edi, dword [0x478570]
test edi, edi
jne 0x41638d
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xecaa236e
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x416291
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0xa3cd0112
cmp cx, 2
jb 0x416280
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0xa3cd0112
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x41626d
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x416374
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x416349
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x416346
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 0x4162f3
add edx, dword [esi + 0x18]
mov eax, 0xa3cd0112
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x4162df
jmp 0x4162f8
mov eax, 0xa3cd0112
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x4162bc
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 0x416387
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x416387
mov al, byte [edi]
mov ecx, 0xa3cd0112
mov ebx, 0xa3cd0112
cmp al, 0x2e
je 0x41634e
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x416331
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x416374
mov al, byte [edi + 1]
test al, al
je 0x41636f
add edi, 2
mov ecx, 0xa3cd0112
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x41635d
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x416387
cmp dword [eax + 0x18], 0
jne 0x41623b
mov dword [0x478570], edi
push dword [esi + 0x30]
call edi
mov edi, dword [0x478574]
test edi, edi
jne 0x41650a
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0x1153424
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x41640e
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x6caf6b4e
cmp cx, 2
jb 0x4163fd
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x6caf6b4e
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x4163ea
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x4164f1
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x4164c6
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x4164c3
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 0x416470
add edx, dword [esi + 0x18]
mov eax, 0x6caf6b4e
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x41645c
jmp 0x416475
mov eax, 0x6caf6b4e
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x416439
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 0x416504
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x416504
mov al, byte [edi]
mov ecx, 0x6caf6b4e
mov ebx, 0x6caf6b4e
cmp al, 0x2e
je 0x4164cb
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x4164ae
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x4164f1
mov al, byte [edi + 1]
test al, al
je 0x4164ec
add edi, 2
mov ecx, 0x6caf6b4e
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x4164da
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x416504
cmp dword [eax + 0x18], 0
jne 0x4163b8
mov dword [0x478574], edi
push dword [esi + 0x38]
call edi
mov eax, dword [esi + 0xb0]
cmp eax, 0x10
jb 0x41654d
mov ecx, dword [esi + 0x9c]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x416543
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x421d3a
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
xor eax, eax
mov dword [esi + 0x38], eax
movaps xmm0, xmmword [0x473380]
movups xmmword [esi + 0x198], xmm0
movaps xmm0, xmmword [0x473390]
movups xmmword [esi + 0x1a8], xmm0
movaps xmm0, xmmword [0x4733a0]
movups xmmword [esi + 0x1b8], xmm0
movaps xmm0, xmmword [str.yHusLk]
movups xmmword [esi + 0x1c8], xmm0
movaps xmm0, xmmword [0x4733c0]
movups xmmword [esi + 0x1d8], xmm0
mov dword [esi + 0x1e8], 0x8091d7e
mov byte [esi + 0x1ec], 0x20
mov dword [esi + 0x1f1], eax
mov dword [esi + 0x1ed], eax
mov dword [esi + 0x1f5], eax
mov dword [esi + 0x24], eax
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov ecx, edi
mov edi, dword [eax]
xor edx, edx
mov eax, 0x916506
cmp ecx, edx
ja 0x41a87c
mov dword [esi + 0x14], edi
movzx edi, byte [esi + edx + 0x198]
lea eax, [edx + 0x417aebde]
lea ebx, [edx + edi]
add ebx, 0x417aebde
and eax, edi
add eax, eax
sub ebx, eax
lea eax, [edx + 0xac839ce]
mov dword [esi + 0x10], ecx
mov dword [esi + 0xc], edx
mov ecx, dword [esi + 0xc]
lea edx, [ecx + edi]
add edx, 0xac839ce
and eax, edi
add eax, eax
sub edx, eax
mov eax, dword [esi + 0xc]
lea ecx, [eax - 0x782d9dee]
and ecx, edi
add ecx, ecx
mov dword [esi + 0x18], edi
mov eax, dword [esi + 0xc]
add eax, edi
add eax, 0x87d26212
mov edi, dword [esi + 0x14]
sub eax, ecx
add bl, 0xee
add dl, 0x5e
mov dword [esi + 0x20], edx
mov ecx, dword [esi + 0x10]
add al, 0x82
mov dword [esi + 0x2c], eax
mov dword [esi + 0x28], ebx
lea edx, [edi + 1]
mov eax, ecx
mov ecx, ebx
mov dword [esi + 0x10], eax
mov dword [esi + 0x1c], edx
cmp eax, edx
jb 0x416692
mov dword [esi + 0x14], edi
je 0x416b72
mov edi, dword [esi + 0x14]
lea eax, [edi + 2]
mov ebx, dword [esi + 0x10]
cmp ebx, eax
je 0x416bba
lea eax, [edi + 4]
cmp ebx, eax
je 0x416bde
lea eax, [edi + 8]
mov ecx, dword [esi + 0x24]
cmp ebx, eax
je 0x416c03
cmp edi, dword [esi + 0xc]
mov eax, dword [esi + 0x18]
ja 0x416cfb
lea edx, [edi + 1]
mov ebx, dword [esi + 0x10]
cmp ebx, edx
mov dword [esi + 0x1c], edx
jae 0x4166bf
lea edx, [edi + ebx]
cmp edx, dword [esi + 0xc]
jbe 0x416941
lea eax, [edi + 2]
mov ebx, dword [esi + 0x10]
jmp 0x4166fa
mov dword [esi + 0x14], edi
cmp edx, ebx
je 0x41697f
mov edi, dword [esi + 0x14]
lea eax, [edi + 2]
cmp eax, ebx
je 0x4169c8
lea edx, [edi + 4]
cmp edx, ebx
je 0x4169ea
lea edx, [edi + 8]
cmp edx, ebx
je 0x416a7e
lea edx, [edi + ebx]
cmp edx, dword [esi + 0xc]
jbe 0x416aa8
lea edx, [edi + 0x10]
cmp edx, ebx
je 0x4167b0
mov ecx, ebx
lea edx, [edi + 0x200]
cmp edx, ebx
je 0x4167c4
lea edx, [edi + 0x1000]
cmp edx, ecx
je 0x4167f2
cmp ecx, eax
je 0x41681c
lea eax, [edi + 5]
cmp eax, ecx
je 0x416841
lea eax, [edi + 0x28]
cmp eax, ecx
je 0x41686c
lea eax, [edi + 0x64]
cmp eax, ecx
je 0x416894
lea eax, [edi + 0x7a]
cmp eax, ecx
je 0x4168b9
lea eax, [edi + 0x2a]
cmp eax, ecx
je 0x4168e7
lea ecx, [edi + 0x61]
lea eax, [edi + 0x74]
cmp ecx, eax
jb 0x416cd5
lea eax, [edi + 0x77]
cmp ecx, eax
jb 0x41690f
lea eax, [edi + 0xb1]
cmp ecx, eax
jb 0x416793
mov dword [esi + 0x10], ecx
add edi, 0x71
mov ecx, dword [esi + 0x20]
jmp 0x416692
lea ecx, [edi + 0x61]
add edi, 0x71
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x24], eax
cmp ecx, dword [esi + 0xc]
mov ebx, dword [esi + 0x28]
jbe 0x41664e
jmp 0x421d2b
mov byte [esi + 0x14], 0x44
mov edx, 0x22d15964
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x1c]
jmp 0x41698a
mov ebx, dword [esi + 0xc]
lea eax, [ebx - 0x5a38cee0]
mov dword [esi + 0x10], ecx
mov ecx, edi
mov edi, dword [esi + 0x18]
and eax, edi
add edi, ebx
add edi, 0xa5c73120
add eax, eax
sub edi, eax
mov eax, edi
mov edi, ecx
mov ecx, dword [esi + 0x10]
add al, 0x20
inc edi
jmp 0x4169c0
mov ebx, dword [esi + 0xc]
lea eax, [ebx + 0x28bd08dc]
mov ecx, edi
mov edi, dword [esi + 0x18]
add ebx, edi
add ebx, 0x28bd08dc
and eax, edi
mov edi, ecx
add eax, eax
sub ebx, eax
mov eax, ebx
mov ecx, dword [esi + 0x10]
add al, 0xfc
jmp 0x4169c0
mov edx, dword [esi + 0xc]
lea eax, [edx - 0x544d1f68]
mov ebx, dword [esi + 0x18]
add edx, ebx
add edx, 0xabb2e098
and eax, ebx
add eax, eax
sub edx, eax
add dl, 0xd8
mov dword [esi + 0x1c], edx
jmp 0x416ad5
mov edx, dword [esi + 0xc]
lea eax, [edx + 0x2ea8b854]
mov ecx, edi
mov edi, dword [esi + 0x18]
lea ebx, [edx + edi]
add ebx, 0x2ea8b854
and eax, edi
mov edi, ecx
add eax, eax
sub ebx, eax
mov eax, ebx
mov ecx, dword [esi + 0x10]
add al, 0xb4
jmp 0x416b04
mov edx, dword [esi + 0xc]
lea eax, [edx - 0x4e616ff0]
mov ecx, edi
mov edi, dword [esi + 0x18]
lea ebx, [edx + edi]
add ebx, 0xb19e9010
and eax, edi
mov edi, ecx
add eax, eax
sub ebx, eax
mov eax, ebx
add al, 0x90
jmp 0x416b09
mov edx, dword [esi + 0xc]
lea eax, [edx + 0x349467cc]
mov ebx, dword [esi + 0x18]
add edx, ebx
add edx, 0x349467cc
and eax, ebx
add eax, eax
sub edx, eax
add dl, 0x6c
mov dword [esi + 0x1c], edx
jmp 0x416a0f
mov dword [esi + 0x14], edi
mov ecx, dword [esi + 0xc]
lea eax, [ecx - 0x4875c078]
mov edx, dword [esi + 0x18]
lea ebx, [ecx + edx]
add ebx, 0xb78a3f88
and eax, edx
add eax, eax
sub ebx, eax
add bl, 0x48
mov dword [esi + 0x1c], ebx
mov ebx, edx
mov ecx, dword [esi + 0x10]
jmp 0x416a46
mov dword [esi + 0x14], edi
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 0x3a801744]
mov edi, dword [esi + 0x18]
lea ebx, [ecx + edi]
add ebx, 0x3a801744
and eax, edi
add eax, eax
sub ebx, eax
mov eax, edi
add bl, 0x24
jmp 0x416b92
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0xc]
lea edx, [ecx + eax]
add edx, 0x4dc8a56
add ecx, 0x4dc8a56
and ecx, eax
add ecx, ecx
sub edx, ecx
add dl, 0xa6
mov dword [esi + 0x24], edx
mov eax, edi
add edi, 0x71
add eax, 0x61
xor edx, edx
mov ecx, eax
jmp 0x4165d0
mov dword [esi + 0x14], edi
mov ebx, dword [esi + 0x28]
mov ecx, ebx
cmp edx, 0x28
jne 0x416b1d
mov edx, dword [esi + 0xc]
lea eax, [edx + 0x1ce5a9ec]
mov ebx, dword [esi + 0x18]
add edx, ebx
add edx, 0x1ce5a9ec
and eax, ebx
add eax, eax
sub edx, eax
sub dl, bl
add dl, 0x8c
mov dword [esi + 0x1c], edx
mov ecx, dword [esi + 0x10]
mov edi, dword [esi + 0x14]
jmp 0x416a0f
mov byte [esi + 0x14], 0x62
mov edx, 0xe20b30f2
mov edi, ebx
mov ecx, dword [esi + 0xc]
add edx, ecx
lea ebx, [edx + eax]
and edx, eax
add edx, edx
sub ebx, edx
mov edx, eax
lea eax, [ecx + 0x5874e652]
and eax, edx
add edx, ecx
add edx, 0x5874e652
add eax, eax
sub edx, eax
mov eax, ebx
add dl, 0xc2
mov byte [esi + ecx + 0x198], dl
add al, byte [esi + 0x14]
mov ecx, dword [esi + 0x10]
dec dword [esi + 0xc]
jmp 0x416ba3
mov edx, dword [esi + 0xc]
lea eax, [edx + 0x6aecb826]
mov ecx, dword [esi + 0x18]
add edx, ecx
add edx, 0x6aecb826
and eax, ecx
add eax, eax
sub edx, eax
add dl, 0xf6
jmp 0x416ad0
mov edx, dword [esi + 0xc]
lea eax, [edx - 0xc31c0a6]
mov ecx, dword [esi + 0x18]
add edx, ecx
add edx, 0xf3ce3f5a
and eax, ecx
add eax, eax
sub edx, eax
add dl, 0x8a
mov dword [esi + 0x1c], edx
mov ecx, ebx
mov ebx, dword [esi + 0x18]
mov eax, dword [esi + 0xc]
lea edx, [eax + 0x5e6095ca]
mov eax, dword [esi + 0xc]
add eax, ebx
add eax, 0x5e6095ca
and edx, ebx
add edx, edx
sub eax, edx
mov edx, dword [esi + 0xc]
add al, 0x7a
mov byte [esi + edx + 0x198], al
movzx eax, al
sub edx, eax
mov eax, edi
not eax
add edx, eax
mov dword [esi + 0xc], edx
inc edi
mov dword [esi + 0x14], edi
mov edi, dword [esi + 0xc]
lea eax, [edi - 0x60247e58]
and eax, ebx
lea edx, [edi + ebx]
add edx, 0x9fdb81a8
add eax, eax
sub edx, eax
add dl, 0x68
mov byte [esi + edi + 0x198], dl
sub edi, ecx
inc ecx
movzx eax, byte [esi + edi + 0x196]
add edi, 0xfffffffe
mov dword [esi + 0xc], edi
jmp 0x416b98
mov edx, dword [esi + 0xc]
lea eax, [edx - 0x646112e]
mov edi, dword [esi + 0x18]
lea ecx, [edx + edi]
add ecx, 0xf9b9eed2
and eax, edi
add eax, eax
sub ecx, eax
mov eax, edi
add cl, 0x42
mov dword [esi + 0x1c], ecx
mov ecx, ebx
jmp 0x416b98
lea eax, [edi + 3]
cmp eax, ebx
jne 0x416b59
mov edx, dword [esi + 0xc]
lea eax, [edx + 0x4cf7e918]
mov ecx, dword [esi + 0x18]
add edx, ecx
add edx, 0x4cf7e918
and eax, ecx
add eax, eax
sub edx, eax
add dl, 0x58
mov dword [esi + 0x1c], edx
mov ecx, ebx
mov eax, dword [esi + 0xc]
lea edx, [eax - 0x249541f2]
mov ebx, dword [esi + 0x18]
and edx, ebx
mov eax, dword [esi + 0xc]
add eax, ebx
add eax, 0xdb6abe0e
add edx, edx
sub eax, edx
mov ebx, dword [esi + 0x1c]
add al, bl
add al, 0x9e
mov edx, dword [esi + 0xc]
mov byte [esi + edx + 0x198], al
mov eax, ebx
add ecx, edi
mov dword [esi + 0x10], ecx
mov ebx, eax
movzx eax, bl
not eax
add dword [esi + 0xc], eax
mov eax, ebx
mov ecx, dword [esi + 0x10]
jmp 0x416ba3
mov edi, ecx
mov eax, dword [esi + 0x14]
inc eax
mov ecx, dword [esi + 0x10]
cmp ecx, eax
jbe 0x416c11
mov edi, dword [esi + 0xc]
lea eax, [edi - 0x66102dd0]
mov edx, dword [esi + 0x18]
lea ebx, [edi + edx]
add ebx, 0x99efd230
and eax, edx
add eax, eax
sub ebx, eax
add bl, dl
add bl, 0xb0
mov dword [esi + 0x1c], ebx
mov edi, dword [esi + 0x14]
jmp 0x416ad5
lea eax, [edi + 6]
cmp eax, ebx
jne 0x416949
mov byte [esi + 0x14], 0xec
mov edx, 0xd5d9704c
jmp 0x4167b9
mov ecx, dword [esi + 0xc]
lea eax, [ecx - 0x3b8f3c66]
mov edi, dword [esi + 0x18]
lea ebx, [ecx + edi]
add ebx, 0xc470c39a
and eax, edi
add eax, eax
sub ebx, eax
mov eax, edi
add bl, 0xca
mov dword [esi + 0x1c], ebx
mov ecx, dword [esi + 0x10]
mov edi, dword [esi + 0x14]
add eax, edi
add dword [esi + 0xc], eax
mov eax, dword [esi + 0x1c]
mov ebx, dword [esi + 0xc]
inc ebx
mov dword [esi + 0x24], eax
mov edx, ebx
cmp ebx, 0x61
jb 0x4165d0
jmp 0x41a87a
mov edx, dword [esi + 0xc]
lea eax, [edx + 0x4d524ace]
mov ecx, dword [esi + 0x18]
lea ebx, [edx + ecx]
add ebx, 0x4d524ace
and eax, ecx
add eax, eax
sub ebx, eax
mov eax, ebx
add al, 0x5e
jmp 0x416b09
mov ecx, dword [esi + 0xc]
lea eax, [ecx - 0x29cc2dfe]
mov edx, dword [esi + 0x18]
add ecx, edx
add ecx, 0xd633d202
and eax, edx
add eax, eax
sub ecx, eax
mov eax, ecx
add al, 0xf2
mov ecx, ebx
jmp 0x4169c0
mov byte [esi + 0x14], 0xaa
mov edx, 0xdc1f817a
jmp 0x4167b9
cmp eax, ecx
jne 0x416c28
mov byte [esi + 0x14], 0x92
mov edx, 0x1d400ba2
mov edi, ecx
mov eax, dword [esi + 0x18]
jmp 0x41698a
mov ebx, ecx
mov ecx, dword [esi + 0x14]
lea eax, [ecx + 2]
cmp eax, ebx
jne 0x416c5b
mov edx, dword [esi + 0xc]
lea eax, [edx - 0x59de6d2a]
mov edi, dword [esi + 0x18]
add edx, edi
add edx, 0xa62192d6
and eax, edi
add eax, eax
sub edx, eax
add dl, 0x26
mov dword [esi + 0x1c], edx
mov edi, ecx
jmp 0x416ad3
lea eax, [ecx + 4]
cmp eax, ebx
jne 0x416c89
mov edx, dword [esi + 0xc]
lea eax, [edx + 0x2f031a0a]
mov edi, dword [esi + 0x18]
add edx, edi
add edx, 0x2f031a0a
and eax, edi
add eax, eax
sub edx, eax
add dl, 0xba
mov dword [esi + 0x1c], edx
mov edi, ecx
jmp 0x416a0a
lea eax, [ecx + 8]
cmp eax, ebx
jne 0x416cb5
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 0x34eec982]
mov edi, dword [esi + 0x18]
lea ebx, [ecx + edi]
add ebx, 0x34eec982
and eax, edi
add eax, eax
sub ebx, eax
mov eax, edi
add bl, 0x72
jmp 0x416b92
mov ecx, ebx
test ebx, ebx
jne 0x416b2e
mov eax, edi
mov ecx, dword [esi + 0xc]
mov byte [esi + ecx + 0x198], al
xor ecx, ecx
mov edi, dword [esi + 0x14]
jmp 0x416ba3
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0xc]
lea edx, [ecx + eax]
add edx, 0x81e6b29a
add ecx, 0x81e6b29a
and ecx, eax
add ecx, ecx
sub edx, ecx
add dl, 0xca
mov dword [esi + 0x24], edx
jmp 0x4165be
mov eax, 0x1567928
jmp 0x41a87c
mov eax, 0x1677d14
lea edi, [esi + eax]
add edi, 0x9c
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x10]
cmp dword [edx + 0x14], 0x10
jb 0x416d2a
mov edx, dword [edx]
push eax
push edi
push 0
push ecx
push edx
call fcn.00452a54
add esp, 0x14
cmp eax, 0xffffffff
je 0x41a458
xor eax, eax
mov dword [esi + 0x38], eax
movaps xmm0, xmmword [str.__b_67]
movups xmmword [esi + 0x198], xmm0
movaps xmm0, xmmword [0x473410]
movups xmmword [esi + 0x1a8], xmm0
movaps xmm0, xmmword [0x473420]
movups xmmword [esi + 0x1b8], xmm0
movaps xmm0, xmmword [0x473430]
movups xmmword [esi + 0x1c8], xmm0
movaps xmm0, xmmword [0x473440]
movups xmmword [esi + 0x1d8], xmm0
mov dword [esi + 0x1e8], 0xa389969c
xorps xmm0, xmm0
movups xmmword [esi + 0x1ec], xmm0
mov dword [esi + 0x1fc], eax
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov ecx, dword [eax]
xor eax, eax
cmp edi, eax
ja 0x417246
mov dl, byte [esi + eax + 0x198]
movzx ebx, dl
mov dword [esi + 0x10], ebx
lea ebx, [ecx + 1]
cmp edi, ebx
mov dword [esi + 0xc], edi
jae 0x416e44
cmp ecx, eax
ja 0x417251
mov dword [esi + 0x14], edx
lea edi, [ecx + 0x61]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
jae 0x416e86
mov edx, edi
add edi, ecx
cmp edi, eax
jbe 0x416ebb
lea edi, [ecx + 6]
cmp edx, edi
mov edi, edx
je 0x416e8e
lea edi, [ecx + 5]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
je 0x416f3f
mov edx, edi
lea edi, [ecx + 0x64]
cmp edx, edi
jne 0x4170c4
lea edi, [eax + 0x51645398]
mov ebx, dword [esi + 0x10]
lea edx, [eax + ebx]
add edx, 0x51645398
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0xd8
jmp 0x417089
je 0x416f26
mov dword [esi + 0x14], edx
lea edi, [ecx + 2]
cmp dword [esi + 0xc], edi
mov edx, dword [esi + 0xc]
je 0x416ec4
lea edi, [ecx + 3]
cmp edx, edi
jne 0x416f9f
lea edi, [eax - 0x39af6372]
mov ebx, dword [esi + 0x10]
lea edx, [eax + ebx]
add edx, 0xc6509c8e
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0x1e
mov edi, dword [esi + 0xc]
jmp 0x4170ae
cmp edi, ebx
jne 0x416f30
lea edx, [eax - 0x77bac76e]
mov dword [esi + 0x14], ebx
mov ebx, dword [esi + 0x10]
lea ecx, [eax + ebx]
add ecx, 0x88453892
and edx, ebx
mov ebx, dword [esi + 0x14]
add edx, edx
sub ecx, edx
add cl, 2
mov byte [esi + eax + 0x198], cl
jmp 0x416f41
cmp edi, 4
jne 0x416f49
mov dword [esi + 0x14], ebx
lea edi, [eax - 0x74ec48f6]
mov ebx, dword [esi + 0x10]
lea edx, [eax + ebx]
add edx, 0x8b13b70a
and edi, ebx
add edi, edi
sub edx, edi
mov edi, dword [esi + 0xc]
add dl, 0xba
mov byte [esi + eax + 0x198], dl
not ecx
add ecx, eax
movzx eax, dl
sub ecx, eax
mov eax, ecx
lea ecx, [eax + 0x4bc756a8]
and ecx, ebx
lea edx, [eax + ebx]
add edx, 0x4bc756a8
add ecx, ecx
sub edx, ecx
add dl, 0x68
mov byte [esi + eax + 0x198], dl
sub eax, edi
inc edi
mov dl, byte [esi + eax + 0x196]
add eax, 0xfffffffe
mov ecx, dword [esi + 0x14]
movzx edx, dl
add edx, ecx
jmp 0x4170b3
lea edi, [ecx + 3]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
jne 0x416fcd
mov ebx, ecx
dec eax
mov ecx, ebx
jmp 0x4170b5
lea edi, [ecx + 0x20]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
jbe 0x416ff6
lea edi, [eax - 0x1532f75a]
mov edx, dword [esi + 0x10]
add edx, eax
add edx, 0xeacd08a6
and edi, dword [esi + 0x10]
add edi, edi
sub edx, edi
add dl, 0x76
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x14]
mov edi, dword [esi + 0xc]
cmp edi, 5
ja 0x41705d
cmp edi, ebx
je 0x416f26
lea edx, [ecx + 2]
cmp edi, edx
jne 0x417113
mov dword [esi + 0x14], ecx
mov ebx, dword [esi + 0x10]
jmp 0x416ef7
lea edi, [ecx + 6]
cmp edx, edi
mov edx, dword [esi + 0x14]
jne 0x417037
lea edi, [eax - 0x36e0e4fa]
mov ebx, dword [esi + 0x10]
lea edx, [eax + ebx]
add edx, 0xc91f1b06
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0xd6
jmp 0x417089
mov edx, edi
lea edi, [ecx + 5]
cmp edx, edi
jne 0x41704b
lea edi, [eax + 0x55c05422]
mov ebx, dword [esi + 0x10]
lea edx, [eax + ebx]
add edx, 0x55c05422
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0x12
jmp 0x4170a9
cmp edi, ebx
je 0x416e8e
lea edi, [ecx + 2]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
je 0x416f3f
mov edx, edi
lea edi, [ecx + 3]
cmp edx, edi
jne 0x417150
lea edi, [eax - 0xf95fa6a]
mov ebx, dword [esi + 0x10]
lea edx, [eax + ebx]
add edx, 0xf06a0596
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0xe6
jmp 0x417089
lea edi, [ecx + 9]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
jne 0x416dd5
jmp 0x416e8e
lea edi, [ecx + 4]
cmp edx, edi
mov edi, edx
jne 0x416def
jmp 0x416ec4
lea edi, [eax + 0x48f8d830]
mov dword [esi + 0x18], edi
mov ebx, dword [esi + 0x10]
lea edi, [eax + ebx]
add edi, 0x48f8d830
mov dword [esi + 0x14], edi
mov edi, dword [esi + 0x18]
and edi, ebx
add edi, edi
mov ebx, dword [esi + 0x14]
sub ebx, edi
add dl, bl
mov ebx, dword [esi + 0x10]
add dl, 0xb0
lea edi, [eax + 0x9ac77ce]
and edi, ebx
add ebx, eax
add ebx, 0x9ac77ce
add edi, edi
sub ebx, edi
add bl, dl
add bl, 0x5e
mov byte [esi + eax + 0x198], bl
mov edi, dword [esi + 0xc]
add edi, ecx
movzx edx, dl
not edx
add eax, edx
inc eax
cmp eax, 0x68
jb 0x416db6
jmp 0x41724d
lea edi, [ecx + 4]
cmp edx, edi
jne 0x4170e8
lea edi, [eax - 0x2d346d2c]
mov ebx, dword [esi + 0x10]
lea edx, [eax + ebx]
add edx, 0xd2cb92d4
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0x34
jmp 0x4170a9
lea edi, [ecx + 0x42]
cmp edx, edi
jne 0x417177
lea edi, [eax + 0x5432d210]
mov ebx, dword [esi + 0x10]
lea edx, [eax + ebx]
add edx, 0x5432d210
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0x90
jmp 0x416e7e
lea edx, [ecx + 3]
cmp edi, edx
je 0x416ec4
lea edx, [ecx + 5]
cmp edi, edx
jne 0x4171f0
lea edi, [eax - 0x3e0b63fc]
mov ebx, dword [esi + 0x10]
lea edx, [eax + ebx]
add edx, 0xc1f49c04
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0xe4
mov dword [esi + 0xc], 5
jmp 0x417089
lea edi, [ecx + 5]
cmp edx, edi
jne 0x4171c9
lea edi, [eax + 0x71d144d2]
mov ebx, dword [esi + 0x10]
lea edx, [eax + ebx]
add edx, 0x71d144d2
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0x42
jmp 0x4170a9
lea edi, [ecx + 3]
cmp edx, edi
je 0x416ec4
lea edi, [ecx + 0x40]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
je 0x416f94
lea edi, [ecx + 2]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 0x14]
je 0x416f26
lea edi, [ecx + 0x400]
lea edx, [ecx + 0x401]
add ecx, 0x405
mov eax, 0
cmp edi, ecx
mov ecx, edx
jae 0x416db6
jmp 0x416da6
lea edi, [ecx + 4]
cmp edx, edi
jne 0x417208
lea edi, [eax - 0xcc77bf2]
mov ebx, dword [esi + 0x10]
lea edx, [eax + ebx]
add edx, 0xf338840e
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0x9e
jmp 0x416e7e
cmp ecx, 8
ja 0x416e8e
mov edx, dword [esi + 0x18]
mov byte [esi + eax + 0x198], dl
jmp 0x4170b5
lea edi, [ecx + 7]
cmp edx, edi
je 0x416ec4
lea edi, [ecx + 9]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
jne 0x417226
mov edx, dword [esi + 0x14]
jmp 0x416f26
lea edi, [eax - 0x3f4c6062]
mov edx, dword [esi + 0x10]
add edx, eax
add edx, 0xc0b39f9e
and edi, dword [esi + 0x10]
add edi, edi
sub edx, edi
add dl, 0xae
jmp 0x416f73
mov eax, 0x162ddc6
jmp 0x417256
xor eax, eax
jmp 0x417256
mov eax, 0x16f3e28
lea edi, [esi + eax]
add edi, 0x198
xor eax, eax
lea ebx, [esi + 0x204]
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 + 0x2c], ebx
mov ecx, ebx
push eax
push edi
call fcn.00450e50
xor eax, eax
mov dword [esi + 0x30], eax
mov edx, dword [0x4785a4]
test edx, edx
jne 0x417412
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax]
xor eax, eax
mov edi, 0x3641b4e9
mov dword [esi + 0x24], ecx
mov dword [esi + 0x1c], ecx
test eax, eax
mov dword [esi + 0x20], eax
mov dword [esi + 0xc], edi
je 0x41730c
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x4428798f
cmp cx, 2
jb 0x4172fe
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x4428798f
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x4172eb
mov eax, dword [esi + 0x20]
cmp edx, eax
mov edi, dword [esi + 0xc]
jne 0x4173c9
mov eax, dword [esi + 0x1c]
mov edx, dword [eax + 0x18]
mov eax, dword [edx + 0x3c]
mov ebx, dword [edx + eax + 0x78]
test ebx, ebx
je 0x4173c6
mov eax, dword [edx + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edx + ebx]
mov dword [esi + 0x10], eax
mov eax, dword [eax + 0x18]
lea ecx, [edx + 1]
mov dword [esi + 0x18], ecx
mov dword [esi + 0x14], ebx
sub eax, 1
jb 0x4173c6
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 0x417371
add ebx, dword [esi + 0x18]
mov edi, 0x4428798f
movsx ecx, cl
xor ecx, edi
imul edi, ecx, 0x1000193
mov cl, byte [ebx]
inc ebx
test cl, cl
jne 0x41735d
jmp 0x417376
mov edi, 0x4428798f
mov ecx, dword [esi + 0xc]
cmp edi, ecx
mov edi, ecx
mov ebx, dword [esi + 0x14]
jne 0x41733a
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 0x41740c
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edx
jbe 0x41740c
mov al, byte [edx]
mov edi, 0x4428798f
mov ecx, 0x4428798f
cmp al, 0x2e
je 0x4173ce
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edx + 1]
inc edx
jmp 0x4173b1
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x1c]
jmp 0x4173f6
mov al, byte [edx + 1]
test al, al
je 0x4173ef
add edx, 2
mov edi, 0x4428798f
movsx eax, al
xor eax, edi
imul edi, eax, 0x1000193
mov al, byte [edx]
inc edx
test al, al
jne 0x4173dd
mov eax, dword [esi + 0x24]
mov edx, dword [eax]
mov eax, ecx
mov ecx, dword [edx]
xor edx, edx
cmp ecx, dword [esi + 0x24]
je 0x41740c
mov dword [esi + 0x1c], ecx
cmp dword [ecx + 0x18], 0
jne 0x4172b9
mov dword [0x4785a4], edx
cmp dword [esi + 0x2c4], 0x10
jb 0x417423
mov eax, dword [esi + 0x2b0]
jmp 0x417429
lea eax, [esi + 0x2b0]
lea ecx, [esi + 0x38]
push ecx
push eax
call edx
test eax, eax
jne 0x41ad7d
mov ebx, dword [0x4785a8]
test ebx, ebx
jne 0x4175b0
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0x75cb98ca
xor edi, edi
mov dword [esi + 0x24], eax
test edi, edi
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], edi
mov dword [esi + 0x1c], eax
je 0x4174b4
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x8315808c
cmp cx, 2
jb 0x4174a3
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x8315808c
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x417490
mov edi, dword [esi + 0x20]
cmp edx, edi
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x417597
mov ebx, dword [eax + 0x18]
mov eax, dword [ebx + 0x3c]
mov edx, dword [ebx + eax + 0x78]
test edx, edx
je 0x41756c
mov eax, dword [ebx + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [ebx + edx]
mov dword [esi + 0x10], eax
mov edi, dword [eax + 0x18]
lea eax, [ebx + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub edi, 1
jb 0x417569
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 0x417516
add edx, dword [esi + 0x18]
mov eax, 0x8315808c
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x417502
jmp 0x41751b
mov eax, 0x8315808c
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x4174df
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 0x4175aa
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, ebx
jbe 0x4175aa
mov al, byte [ebx]
mov ecx, 0x8315808c
mov edi, 0x8315808c
cmp al, 0x2e
je 0x417571
movsx eax, al
xor eax, edi
imul edi, eax, 0x1000193
mov al, byte [ebx + 1]
inc ebx
jmp 0x417554
mov edi, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x417597
mov al, byte [ebx + 1]
test al, al
je 0x417592
add ebx, 2
mov ecx, 0x8315808c
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [ebx]
inc ebx
test al, al
jne 0x417580
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor ebx, ebx
cmp eax, dword [esi + 0x24]
je 0x4175aa
cmp dword [eax + 0x18], 0
jne 0x41745e
mov dword [0x4785a8], ebx
cmp dword [esi + 0x218], 0x10
jb 0x4175c2
mov eax, dword [esi + 0x204]
mov dword [esi + 0x2c], eax
lea eax, [esi + 0x30]
push 0
push eax
push 0xffffffffffffffff
push dword [esi + 0x2c]
push dword [esi + 0x38]
call ebx
test eax, eax
je 0x419f9a
mov edi, dword [0x4785ac]
test edi, edi
jne 0x41ad78
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0x8d8f8dbc
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x417656
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x7f53aaa6
cmp cx, 2
jb 0x417645
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x7f53aaa6
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x417632
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x417739
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x41770e
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x41770b
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 0x4176b8
add edx, dword [esi + 0x18]
mov eax, 0x7f53aaa6
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x4176a4
jmp 0x4176bd
mov eax, 0x7f53aaa6
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x417681
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 0x41774c
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x41774c
mov al, byte [edi]
mov ecx, 0x7f53aaa6
mov ebx, 0x7f53aaa6
cmp al, 0x2e
je 0x417713
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x4176f6
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x417739
mov al, byte [edi + 1]
test al, al
je 0x417734
add edi, 2
mov ecx, 0x7f53aaa6
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x417722
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x41774c
cmp dword [eax + 0x18], 0
jne 0x417600
mov dword [0x4785ac], edi
jmp 0x41ad78
mov edi, dword [0x4785b4]
test edi, edi
jne 0x4178cf
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xaefafe9b
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x4177d3
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x1514dd8b
cmp cx, 2
jb 0x4177c2
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x1514dd8b
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x4177af
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x4178b6
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x41788b
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x417888
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 0x417835
add edx, dword [esi + 0x18]
mov eax, 0x1514dd8b
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x417821
jmp 0x41783a
mov eax, 0x1514dd8b
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x4177fe
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 0x4178c9
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x4178c9
mov al, byte [edi]
mov ecx, 0x1514dd8b
mov ebx, 0x1514dd8b
cmp al, 0x2e
je 0x417890
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x417873
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x4178b6
mov al, byte [edi + 1]
test al, al
je 0x4178b1
add edi, 2
mov ecx, 0x1514dd8b
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x41789f
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x4178c9
cmp dword [eax + 0x18], 0
jne 0x41777d
mov dword [0x4785b4], edi
push 0
push dword [esi + 0x30]
call edi
mov dword [esi + 0x34], eax
mov edi, dword [0x4785b8]
test edi, edi
jne 0x417a51
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xfa1e4cc
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x417955
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0xbafd4232
cmp cx, 2
jb 0x417944
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0xbafd4232
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x417931
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x417a38
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x417a0d
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x417a0a
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 0x4179b7
add edx, dword [esi + 0x18]
mov eax, 0xbafd4232
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x4179a3
jmp 0x4179bc
mov eax, 0xbafd4232
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x417980
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 0x417a4b
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x417a4b
mov al, byte [edi]
mov ecx, 0xbafd4232
mov ebx, 0xbafd4232
cmp al, 0x2e
je 0x417a12
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x4179f5
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x417a38
mov al, byte [edi + 1]
test al, al
je 0x417a33
add edi, 2
mov ecx, 0xbafd4232
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x417a21
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x417a4b
cmp dword [eax + 0x18], 0
jne 0x4178ff
mov dword [0x4785b8], edi
push 1
push dword [esi + 0x30]
call edi
mov dword [esi + 0x3c], eax
mov edi, dword [0x4785bc]
test edi, edi
jne 0x417bd3
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0x6b4958bc
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x417ad7
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x6aaa3b82
cmp cx, 2
jb 0x417ac6
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x6aaa3b82
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x417ab3
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x417bba
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x417b8f
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x417b8c
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 0x417b39
add edx, dword [esi + 0x18]
mov eax, 0x6aaa3b82
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x417b25
jmp 0x417b3e
mov eax, 0x6aaa3b82
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x417b02
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 0x417bcd
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x417bcd
mov al, byte [edi]
mov ecx, 0x6aaa3b82
mov ebx, 0x6aaa3b82
cmp al, 0x2e
je 0x417b94
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x417b77
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x417bba
mov al, byte [edi + 1]
test al, al
je 0x417bb5
add edi, 2
mov ecx, 0x6aaa3b82
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x417ba3
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x417bcd
cmp dword [eax + 0x18], 0
jne 0x417a81
mov dword [0x4785bc], edi
push 2
push dword [esi + 0x30]
call edi
mov dword [esi + 0xdc], eax
mov edi, dword [0x4785c0]
test edi, edi
jne 0x417d58
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xe241344a
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x417c5c
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x9dcb839e
cmp cx, 2
jb 0x417c4b
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x9dcb839e
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x417c38
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x417d3f
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x417d14
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x417d11
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 0x417cbe
add edx, dword [esi + 0x18]
mov eax, 0x9dcb839e
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x417caa
jmp 0x417cc3
mov eax, 0x9dcb839e
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x417c87
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 0x417d52
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x417d52
mov al, byte [edi]
mov ecx, 0x9dcb839e
mov ebx, 0x9dcb839e
cmp al, 0x2e
je 0x417d19
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x417cfc
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x417d3f
mov al, byte [edi + 1]
test al, al
je 0x417d3a
add edi, 2
mov ecx, 0x9dcb839e
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x417d28
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x417d52
cmp dword [eax + 0x18], 0
jne 0x417c06
mov dword [0x4785c0], edi
push 1
push dword [esi + 0x30]
call edi
mov dword [esi + 0x2c], eax
mov ebx, dword [0x4785c4]
test ebx, ebx
jne 0x417ee2
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0x5c731832
mov dword [esi + 0x24], eax
mov dword [esi + 0x1c], eax
xor eax, eax
test eax, eax
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], eax
je 0x417dde
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0xa5ea98f6
cmp cx, 2
jb 0x417dd0
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0xa5ea98f6
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x417dbd
mov eax, dword [esi + 0x20]
cmp edx, eax
mov ecx, dword [esi + 0xc]
jne 0x417e99
mov eax, dword [esi + 0x1c]
mov ebx, dword [eax + 0x18]
mov eax, dword [ebx + 0x3c]
mov edx, dword [ebx + eax + 0x78]
test edx, edx
je 0x417e96
mov eax, dword [ebx + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [ebx + edx]
mov dword [esi + 0x10], eax
mov eax, dword [eax + 0x18]
lea edi, [ebx + 1]
mov dword [esi + 0x18], edi
mov dword [esi + 0x14], edx
sub eax, 1
jb 0x417e96
mov ecx, dword [esi + 0x10]
mov ecx, dword [ecx + 0x20]
add ecx, ebx
mov edx, dword [ecx + eax*4]
mov cl, byte [ebx + edx]
test cl, cl
je 0x417e43
add edx, dword [esi + 0x18]
mov edi, 0xa5ea98f6
movsx ecx, cl
xor ecx, edi
imul edi, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x417e2f
jmp 0x417e48
mov edi, 0xa5ea98f6
mov ecx, dword [esi + 0xc]
cmp edi, ecx
mov edx, dword [esi + 0x14]
jne 0x417e0c
mov ecx, dword [ebx + edx + 0x24]
add ecx, ebx
movzx eax, word [ecx + eax*2]
mov ecx, dword [ebx + edx + 0x1c]
add ecx, ebx
mov eax, dword [ecx + eax*4]
add ebx, eax
cmp edx, eax
jge 0x417edc
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, ebx
jbe 0x417edc
mov al, byte [ebx]
mov ecx, 0xa5ea98f6
mov edx, 0xa5ea98f6
cmp al, 0x2e
je 0x417e9e
movsx eax, al
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ebx + 1]
inc ebx
jmp 0x417e81
mov eax, dword [esi + 0x20]
mov edi, dword [esi + 0x1c]
jmp 0x417ec6
mov al, byte [ebx + 1]
test al, al
je 0x417ebf
add ebx, 2
mov ecx, 0xa5ea98f6
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [ebx]
inc ebx
test al, al
jne 0x417ead
mov eax, dword [esi + 0x24]
mov edi, dword [eax]
mov eax, edx
mov edi, dword [edi]
xor ebx, ebx
cmp edi, dword [esi + 0x24]
je 0x417edc
mov dword [esi + 0x1c], edi
cmp dword [edi + 0x18], 0
jne 0x417d8b
mov dword [0x4785c4], ebx
push 2
push dword [esi + 0x30]
call ebx
cmp eax, 0x1f
jne 0x417ef8
cmp dword [esi + 0x2c], 0
je 0x419f9a
push eax
push dword [esi + 0xdc]
lea eax, [esi + 0x2cc]
push eax
lea eax, [esi + 0x298]
push eax
call 0x410352
add esp, 0x10
xor ebx, ebx
mov dword [esi + 0x280], ebx
mov dword [esi + 0x290], ebx
mov eax, 0xf
mov dword [esi + 0x294], eax
mov byte [esi + 0x280], bl
mov edi, dword [esi + 0x34]
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ecx, [esi + 0x280]
push eax
push edi
call fcn.00450e50
mov dword [esi + 0x148], ebx
mov dword [esi + 0x158], ebx
mov eax, 0xf
mov dword [esi + 0x15c], eax
mov byte [esi + 0x148], bl
mov edi, dword [esi + 0x3c]
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ecx, [esi + 0x148]
push eax
push edi
call fcn.00450e50
lea eax, [esi + 0x182]
mov dword [eax + 0x12], ebx
mov dword [eax + 0xe], ebx
xorps xmm0, xmm0
movups xmmword [eax], xmm0
mov word [esi + 0x180], 0x10a
call fcn.0046d640
mov ebx, dword [eax]
call fcn.0046d646
mov ecx, dword [eax]
xor eax, eax
cmp ebx, eax
ja 0x4181d9
mov dl, byte [esi + eax + 0x180]
mov byte [esi + 0x10], dl
movzx edi, dl
mov edx, ecx
mov ecx, ebx
lea ebx, [edx + 1]
mov dword [esi + 0xc], ebx
cmp ecx, ebx
mov ebx, ecx
jae 0x418013
cmp edx, eax
ja 0x4181e4
mov ecx, edx
add edx, ebx
cmp edx, eax
jbe 0x41801f
mov dword [esi + 0x10], edx
lea edx, [ecx + 5]
cmp ebx, edx
je 0x418160
lea edx, [ecx + 0x10]
cmp ebx, edx
jne 0x417f9e
mov edx, edi
lea edi, [eax + 0x58cfa600]
and edi, edx
add edx, eax
add edx, 0x58cfa600
add edi, edi
sub edx, edi
jmp 0x418122
jne 0x418063
mov edi, edx
mov dl, byte [esi + 0x10]
jmp 0x4180d0
cmp edx, 4
je 0x418072
cmp ebx, dword [esi + 0xc]
je 0x418141
mov dword [esi + 0x14], edi
lea edi, [ecx + 3]
cmp ebx, edi
je 0x418160
lea edi, [ecx + 5]
cmp ebx, edi
jne 0x41816d
lea edi, [eax + 0x1891d100]
mov edx, dword [esi + 0x14]
add edx, eax
add edx, 0x1891d100
and edi, dword [esi + 0x14]
add edi, edi
sub edx, edi
jmp 0x418125
mov dword [esi + 0x14], edi
mov ecx, edx
lea edi, [edx + 3]
cmp ebx, edi
mov edi, dword [esi + 0x14]
jne 0x4180de
lea edx, [eax - 0x179a7d00]
and edx, edi
add edx, edx
mov dword [esi + 0x10], ebx
lea ebx, [edi + eax]
add ebx, 0xe8658300
sub ebx, edx
mov byte [esi + eax + 0x180], bl
movzx edx, bl
not ecx
add ecx, eax
mov eax, ecx
sub eax, edx
mov ebx, edi
lea edi, [eax + 0x66facc00]
and edi, ebx
add ebx, eax
add ebx, 0x66facc00
add edi, edi
sub ebx, edi
mov byte [esi + eax + 0x180], bl
mov ebx, dword [esi + 0x10]
add edx, ebx
sub ecx, edx
inc ebx
mov dl, byte [esi + ecx + 0x17e]
add ecx, 0xfffffffe
mov eax, ecx
mov edi, dword [esi + 0xc]
movzx ecx, dl
add ecx, edi
add eax, ecx
mov ecx, edi
jmp 0x418161
lea edi, [ecx + 5]
cmp ebx, edi
jne 0x418131
lea edi, [eax + 0x6d94b500]
mov edx, dword [esi + 0x14]
add edx, eax
add edx, 0x6d94b500
and edi, dword [esi + 0x14]
add edi, edi
sub edx, edi
add ebx, ecx
mov dword [esi + 0x10], ebx
mov ebx, dword [esi + 0x14]
lea edi, [eax - 0x14c50f00]
and edi, ebx
add ebx, eax
add ebx, 0xeb3af100
add edi, edi
sub ebx, edi
add bl, dl
mov byte [esi + eax + 0x180], bl
mov ebx, dword [esi + 0x10]
not edx
or edx, 0xffffff00
add eax, edx
jmp 0x418161
lea edi, [ecx + 9]
cmp ebx, edi
mov edi, dword [esi + 0x14]
mov edx, ecx
jne 0x417fd3
lea edx, [eax - 0x11efa100]
lea ecx, [edi + eax]
add ecx, 0xee105f00
and edx, edi
add edx, edx
sub ecx, edx
mov byte [esi + eax + 0x180], cl
mov ecx, dword [esi + 0xc]
dec eax
inc eax
cmp eax, 0x18
jb 0x417fae
jmp 0x4181e0
lea edi, [ecx + 9]
cmp ebx, edi
jne 0x41817b
mov edi, ecx
jmp 0x418017
mov dword [esi + 0x10], edx
lea edx, [ecx + 6]
cmp ebx, edx
jne 0x4181a2
lea edi, [eax + 0x7ad0ce00]
mov ebx, dword [esi + 0x14]
lea edx, [eax + ebx]
add edx, 0x7ad0ce00
and edi, ebx
add edi, edi
sub edx, edi
jmp 0x418105
lea edx, [ecx + 2]
cmp ebx, edx
je 0x418160
lea edx, [ecx + 7]
cmp ebx, edx
mov edi, dword [esi + 0x14]
je 0x418141
mov dword [esi + 0xc], ecx
mov ecx, edi
lea edi, [eax + 0x7e954900]
lea edx, [eax + ecx]
add edx, 0x7e954900
and edi, ecx
add edi, edi
sub edx, edi
mov byte [esi + eax + 0x180], dl
mov ecx, dword [esi + 0xc]
jmp 0x418161
mov eax, 0x625500
jmp 0x4181e9
xor eax, eax
jmp 0x4181e9
mov eax, 0x14d0c00
add eax, esi
add eax, 0x180
mov dword [esi + 0x2c], eax
xor ebx, ebx
mov dword [esi + 0x220], ebx
mov dword [esi + 0x230], ebx
mov dword [esi + 0x234], 0xf
mov byte [esi + 0x220], bl
push 0x40
call fcn.004716fe
add esp, 4
mov dword [esi + 0x230], 0x32
mov dword [esi + 0x234], 0x3f
movaps xmm0, xmmword [str.________________]
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm0
movups xmmword [eax + 0x20], xmm0
mov word [eax + 0x30], 0x5f5f
mov byte [eax + 0x32], bl
mov dword [esi + 0x220], eax
xorps xmm0, xmm0
movaps xmmword [esi + 0x160], xmm0
mov dword [esi + 0x16f], ebx
mov byte [esi + 0x161], 0x35
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov ecx, dword [eax]
xor eax, eax
cmp edi, eax
ja 0x41858c
mov dl, byte [esi + eax + 0x160]
mov byte [esi + 0x14], dl
movzx edx, dl
lea ebx, [ecx + 1]
mov dword [esi + 0xc], ebx
cmp edi, ebx
jae 0x4182e4
cmp ecx, eax
ja 0x418597
lea ebx, [edi + ecx]
cmp ebx, eax
jbe 0x4182f2
mov dword [esi + 0x10], edx
lea edx, [ecx + 0xa]
cmp edi, edx
je 0x418344
lea edx, [ecx + 5]
cmp edi, edx
jne 0x4183ee
lea edx, [eax + 0x7aecd738]
mov dword [esi + 0x18], edi
mov edi, dword [esi + 0x10]
and edx, edi
lea ebx, [eax + edi]
add ebx, 0x7aecd738
add edx, edx
sub ebx, edx
add bl, 0x78
mov edi, dword [esi + 0x18]
jmp 0x4183d4
jne 0x41836f
mov dl, byte [esi + 0x14]
jmp 0x4184c8
mov dword [esi + 0x1c], ecx
add ecx, 6
mov dword [esi + 0x24], ecx
cmp edi, ecx
jae 0x4183de
mov dword [esi + 0x20], ebx
mov dword [esi + 0x18], edi
mov edi, edx
lea edx, [eax - 0x1cd7a057]
lea ebx, [eax + edi]
add ebx, 0xe3285fa9
mov dword [esi + 0x10], edi
and edx, edi
add edx, edx
sub ebx, edx
add bl, 0x61
mov dword [esi + 0x28], ebx
mov ecx, dword [esi + 0x1c]
mov ebx, dword [esi + 0x20]
cmp ebx, 9
mov edi, dword [esi + 0x18]
je 0x418465
cmp edi, dword [esi + 0xc]
jne 0x418425
lea edx, [eax + 0x653e7cff]
mov ebx, edi
mov edi, dword [esi + 0x10]
lea ecx, [eax + edi]
add ecx, 0x653e7cff
and edx, edi
mov edi, ebx
add edx, edx
sub ecx, edx
add cl, 7
mov byte [esi + eax + 0x160], cl
jmp 0x4184db
mov dword [esi + 0x10], edx
lea edx, [ecx + 2]
cmp edi, edx
je 0x418465
lea edx, [ecx + 6]
cmp edi, edx
jne 0x418412
lea edx, [eax - 0x76f3246b]
mov ebx, dword [esi + 0x10]
add ebx, eax
add ebx, 0x890cdb95
mov dword [esi + 0xc], ebx
and edx, dword [esi + 0x10]
mov ebx, dword [esi + 0xc]
add edx, edx
sub ebx, edx
add bl, 0xed
add edi, ecx
mov dword [esi + 0x20], edi
lea edi, [eax + 0x2b8f3c51]
mov edx, dword [esi + 0x10]
and edi, edx
add edx, eax
add edx, 0x2b8f3c51
add edi, edi
sub edx, edi
add dl, bl
add dl, 0xc9
mov byte [esi + eax + 0x160], dl
mov edi, dword [esi + 0x20]
movzx edx, bl
not edx
jmp 0x4184cd
cmp edi, dword [esi + 0xc]
jne 0x4183fa
mov dl, byte [esi + 0x14]
mov ecx, dword [esi + 0x1c]
jmp 0x4184c8
lea edx, [ecx + 0x10]
cmp edi, edx
je 0x418465
jmp 0x418267
mov dword [esi + 0x10], edx
mov ecx, dword [esi + 0x1c]
lea edx, [ecx + 2]
cmp edi, edx
jne 0x41845e
mov dword [esi + 0xc], ecx
mov edx, dword [esi + 0x10]
jmp 0x41849a
lea edx, [ecx + 4]
cmp edi, edx
mov edx, dword [esi + 0x10]
jne 0x418296
jmp 0x4184d8
lea edx, [ecx + 2]
cmp edi, edx
je 0x4184d8
lea edx, [ecx + 3]
cmp edi, edx
jne 0x4184ee
lea edx, [eax + 0x39e1c88d]
mov edi, dword [esi + 0x10]
lea ebx, [eax + edi]
add ebx, 0x39e1c88d
mov dword [esi + 0x10], edi
and edx, edi
add edx, edx
sub ebx, edx
add bl, 0x25
jmp 0x4183ae
lea edx, [ecx + 3]
cmp edi, edx
jne 0x4184d1
mov dword [esi + 0x18], edi
lea edx, [eax - 0xe20045d]
mov edi, dword [esi + 0x10]
lea ebx, [edi + eax]
add ebx, 0xf1dffba3
and edx, edi
add edx, edx
sub ebx, edx
mov edx, edi
mov edi, dword [esi + 0x18]
add bl, 0x8b
mov byte [esi + eax + 0x160], bl
not ecx
add ecx, eax
movzx eax, bl
sub ecx, eax
mov eax, ecx
lea ecx, [eax - 0x2af7a4b4]
and ecx, edx
add edx, eax
add edx, 0xd5085b4c
add ecx, ecx
sub edx, ecx
add dl, 0xec
mov byte [esi + eax + 0x160], dl
sub eax, edi
inc edi
mov dl, byte [esi + eax + 0x15e]
add eax, 0xfffffffe
mov ecx, dword [esi + 0xc]
movzx edx, dl
add edx, ecx
add eax, edx
jmp 0x4184df
lea edx, [ecx + 4]
cmp edi, edx
jne 0x418517
mov dword [esi + 0xc], ecx
dec eax
mov ecx, dword [esi + 0xc]
inc eax
cmp eax, 0x13
jb 0x418277
jmp 0x418593
lea edx, [ecx + 5]
cmp edi, edx
jne 0x418540
lea edx, [eax + 0x3287df]
mov edi, ebx
mov ebx, dword [esi + 0x10]
add ebx, eax
add ebx, 0x3287df
and edx, dword [esi + 0x10]
add edx, edx
sub ebx, edx
add bl, 0xe7
jmp 0x4183d4
mov dword [esi + 0x20], ebx
mov dword [esi + 0x18], edi
lea edx, [eax - 0x5db02723]
mov edi, dword [esi + 0x10]
lea ebx, [eax + edi]
add ebx, 0xa24fd8dd
and edx, edi
add edx, edx
sub ebx, edx
add bl, 0xf5
mov dword [esi + 0x28], ebx
jmp 0x41832c
cmp edi, dword [esi + 0x24]
je 0x418407
lea edx, [ecx + 8]
cmp edi, edx
je 0x4182ea
cmp edi, dword [esi + 0xc]
jbe 0x41857d
lea edx, [eax - 0x3d115bde]
mov dword [esi + 0x18], edi
mov edi, dword [esi + 0x10]
lea ebx, [eax + edi]
add ebx, 0xc2eea422
and edx, edi
mov edi, dword [esi + 0x18]
add edx, edx
sub ebx, edx
add bl, 0x12
mov dword [esi + 0x28], ebx
mov edx, dword [esi + 0x28]
mov byte [esi + eax + 0x160], dl
jmp 0x4184df
mov eax, 0x88a535
jmp 0x41859c
xor eax, eax
jmp 0x41859c
mov eax, 0x160458c
add eax, esi
add eax, 0x160
mov dword [esi + 0x28], eax
mov dword [esi + 0x9c], 0xeef3015c
mov dword [esi + 0xa0], 0xedede4ef
mov dword [esi + 0xa4], 0x5b3823f2
lea eax, [esi + 0xa8]
xorps xmm0, xmm0
movups xmmword [eax], xmm0
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov ecx, dword [eax]
xor eax, eax
cmp edi, eax
ja 0x41895e
mov dl, byte [esi + eax + 0x9c]
mov byte [esi + 0x14], dl
movzx ebx, dl
lea edx, [ecx + 1]
cmp edi, edx
jae 0x418662
cmp ecx, eax
ja 0x418969
mov dword [esi + 0x10], edx
mov edx, ebx
mov ebx, edi
add edi, ecx
cmp edi, eax
jbe 0x4186b7
lea edi, [ecx + 0x10]
cmp ebx, edi
mov edi, ebx
mov ebx, edx
mov edx, dword [esi + 0x10]
je 0x4186f7
mov dword [esi + 0xc], edi
lea edi, [ecx + 0xa]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
je 0x418941
lea edi, [ecx + 9]
cmp dword [esi + 0xc], edi
jne 0x418868
lea edi, [eax - 0x5e39b7fe]
lea edx, [eax + ebx]
add edx, 0xa1c64802
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0xf2
jmp 0x4187ed
jne 0x418669
mov dl, byte [esi + 0x14]
jmp 0x4186ad
mov dword [esi + 0xc], edi
lea edi, [ecx + 2]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
jne 0x418721
mov dword [esi + 0x10], ecx
lea ecx, [eax + 0x8a1684]
and ecx, ebx
lea edx, [eax + ebx]
add edx, 0x8a1684
add ecx, ecx
sub edx, ecx
add dl, 0x64
mov byte [esi + eax + 0x9c], dl
sub eax, edi
inc edi
mov dl, byte [esi + eax + 0x9a]
add eax, 0xfffffffe
mov ecx, dword [esi + 0x10]
movzx edx, dl
add edx, ecx
jmp 0x4187f7
mov dword [esi + 0x18], ecx
add ecx, 9
cmp ebx, ecx
mov edi, ebx
jae 0x41874c
mov dword [esi + 0x1c], ecx
mov dword [esi + 0xc], edi
lea edi, [eax - 0x979fb0d]
mov ebx, edx
lea ecx, [eax + edx]
add ecx, 0xf68604f3
and edi, edx
add edi, edi
sub ecx, edi
add cl, 0x5b
mov dword [esi + 0x20], ecx
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 0xc]
cmp edi, edx
jne 0x41875d
mov dword [esi + 0x10], edx
lea edx, [eax + 0x2febfdc5]
lea ecx, [ebx + eax]
add ecx, 0x2febfdc5
and edx, ebx
add edx, edx
sub ecx, edx
mov edx, dword [esi + 0x10]
add cl, 0x9d
mov byte [esi + eax + 0x9c], cl
jmp 0x418943
mov dword [esi + 0x18], ecx
lea edi, [ecx + 4]
cmp dword [esi + 0xc], edi
jne 0x418797
lea edi, [eax - 0x683dc98f]
lea edx, [eax + ebx]
add edx, 0x97c23671
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0xe9
mov ecx, dword [esi + 0x18]
jmp 0x4187ed
cmp edi, dword [esi + 0x10]
jne 0x4187fe
mov ecx, dword [esi + 0x18]
jmp 0x418664
lea edi, [ecx + 2]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
je 0x418943
lea edi, [ecx + 3]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
jne 0x4188a2
mov edi, ebx
lea ebx, [eax + 0x721f557f]
lea edx, [eax + edi]
add edx, 0x721f557f
mov dword [esi + 0x24], edi
and ebx, edi
mov byte [esi + 0x10], 0x87
jmp 0x4187c3
mov ecx, dword [esi + 0x18]
lea edi, [ecx + 5]
cmp dword [esi + 0xc], edi
jne 0x418842
mov ecx, ebx
lea ebx, [eax - 0x7b31bfa9]
lea edx, [eax + ecx]
add edx, 0x84ce4057
mov dword [esi + 0x24], ecx
and ebx, ecx
mov byte [esi + 0x10], 0x9f
mov ecx, dword [esi + 0x18]
add ebx, ebx
sub edx, ebx
lea edi, [eax + 0x1cf807ab]
mov ebx, dword [esi + 0x24]
and edi, ebx
add ebx, eax
add ebx, 0x1cf807ab
add edi, edi
sub ebx, edi
add dl, byte [esi + 0x10]
add bl, dl
add bl, 0x53
mov byte [esi + eax + 0x9c], bl
mov edi, dword [esi + 0xc]
add edi, ecx
movzx edx, dl
not edx
add eax, edx
jmp 0x418946
mov ebx, edx
mov dword [esi + 0x1c], ecx
mov dword [esi + 0xc], edi
mov ecx, dword [esi + 0x18]
lea edi, [ecx + 2]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
je 0x41867b
mov edx, edi
lea edi, [ecx + 3]
cmp edx, edi
jne 0x4188d5
lea edi, [eax + 0x3920ed90]
lea edx, [eax + ebx]
add edx, 0x3920ed90
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0x10
mov edi, dword [esi + 0xc]
jmp 0x4187f2
mov ecx, dword [esi + 0x18]
lea edi, [ecx + 7]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
je 0x418941
lea edi, [ecx + 6]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
jne 0x4185fc
jmp 0x4186f7
lea edi, [ecx + 8]
cmp dword [esi + 0xc], edi
jne 0x4188e0
lea edi, [eax + 0xa041191]
lea edx, [eax + ebx]
add edx, 0xa041191
and edi, ebx
add edi, edi
sub edx, edi
add dl, 9
mov byte [esi + eax + 0x9c], dl
not ecx
add ecx, eax
movzx eax, dl
sub ecx, eax
mov eax, ecx
mov edi, dword [esi + 0xc]
jmp 0x41867e
cmp edi, dword [esi + 0x1c]
je 0x418664
lea edx, [ecx + 5]
cmp edi, edx
jne 0x41893a
mov edi, ebx
lea ebx, [eax - 0x7aca2ec6]
lea edx, [eax + edi]
add edx, 0x8535d13a
mov dword [esi + 0x24], edi
and ebx, edi
mov byte [esi + 0x10], 0x6a
jmp 0x4187c3
lea edi, [ecx + 5]
cmp edx, edi
jne 0x4188f8
mov edi, edx
jmp 0x418941
lea edi, [ecx + 6]
mov edx, dword [esi + 0xc]
cmp edx, edi
mov edi, edx
mov dl, byte [esi + 0x14]
je 0x4186ad
jmp 0x4185d0
lea edi, [ecx + 7]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
je 0x4186f7
lea edi, [eax + 0x38fe67ef]
mov dword [esi + 0x24], ebx
mov ebx, dword [esi + 0x24]
add ebx, eax
add ebx, 0x38fe67ef
mov dword [esi + 0x20], ebx
and edi, dword [esi + 0x24]
add edi, edi
sub dword [esi + 0x20], edi
mov ebx, dword [esi + 0x20]
add bl, 0x77
mov dword [esi + 0x20], ebx
mov ebx, dword [esi + 0x24]
jmp 0x4186f0
lea edx, [ecx + 6]
cmp edi, edx
jne 0x418952
mov edx, ecx
dec eax
mov ecx, edx
inc eax
cmp eax, 0x1c
jb 0x4185e0
jmp 0x418965
mov edx, dword [esi + 0x20]
mov byte [esi + eax + 0x9c], dl
jmp 0x418946
mov eax, 0x515837
jmp 0x41896e
xor eax, eax
jmp 0x41896e
mov eax, 0x14b5344
add eax, esi
add eax, 0x9c
mov dword [esi + 0x24], eax
mov dword [esi + 0xbc], 0xfae1c51c
mov dword [esi + 0xc0], 0x3f26ebf9
mov byte [esi + 0xc4], 0x1e
lea eax, [esi + 0xc5]
xorps xmm0, xmm0
movups xmmword [eax], xmm0
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov ecx, dword [eax]
xor eax, eax
cmp edi, eax
ja 0x418c14
mov dl, byte [esi + eax + 0xbc]
mov byte [esi + 0x18], dl
movzx ebx, dl
mov edx, edi
mov edi, ecx
inc ecx
mov dword [esi + 0x10], ecx
mov dword [esi + 0xc], edx
cmp edx, ecx
jae 0x418a0b
cmp edi, eax
ja 0x418c1f
mov ecx, edi
mov dword [esi + 0x14], ebx
mov edx, dword [esi + 0xc]
add edi, edx
cmp edi, eax
jbe 0x418a1a
lea edi, [ecx + 0x10]
cmp edx, edi
je 0x418a60
lea edi, [ecx + 8]
mov ebx, dword [esi + 0xc]
cmp ebx, edi
jne 0x418b25
mov edi, ebx
mov dword [esi + 0x10], ecx
mov ebx, dword [esi + 0x14]
jmp 0x418a90
jne 0x418a53
mov ecx, edi
mov edi, dword [esi + 0xc]
mov dl, byte [esi + 0x18]
jmp 0x418abf
cmp edi, 0x28
je 0x418a60
mov edi, dword [esi + 0xc]
cmp edi, dword [esi + 0x10]
jne 0x418b38
lea ecx, [eax + 0x47f13165]
mov edx, dword [esi + 0x14]
and ecx, edx
add edx, eax
add edx, 0x47f13165
add ecx, ecx
sub edx, ecx
add dl, 0x3d
mov byte [esi + eax + 0xbc], dl
mov ecx, edi
jmp 0x418b83
mov dword [esi + 0x14], ebx
mov ecx, edi
add edi, 3
cmp dword [esi + 0xc], edi
jne 0x418ad5
lea edi, [eax - 0x799d0d4f]
mov ebx, dword [esi + 0x14]
lea edx, [eax + ebx]
add edx, 0x8662f2b1
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0x29
mov byte [esi + eax + 0xbc], dl
not ecx
add ecx, eax
movzx eax, dl
sub ecx, eax
mov eax, ecx
mov edi, dword [esi + 0xc]
lea ecx, [eax - 0x6a009cfc]
and ecx, ebx
lea edx, [eax + ebx]
add edx, 0x95ff6304
add ecx, ecx
sub edx, ecx
add dl, 0xe4
mov byte [esi + eax + 0xbc], dl
sub eax, edi
inc edi
mov dl, byte [esi + eax + 0xba]
add eax, 0xfffffffe
mov ecx, dword [esi + 0x10]
movzx edx, dl
add edx, ecx
add eax, edx
inc eax
cmp eax, 0x19
jb 0x4189af
jmp 0x418c1b
lea edi, [ecx + 4]
mov edx, dword [esi + 0xc]
cmp edx, edi
jne 0x418b6e
lea edi, [eax - 0x350e4bc9]
mov ebx, dword [esi + 0x14]
lea edx, [eax + ebx]
add edx, 0xcaf1b437
and edi, ebx
add edi, edi
sub edx, edi
lea edi, [eax + 0x672a120b]
and edi, ebx
add ebx, eax
add ebx, 0x672a120b
add edi, edi
sub ebx, edi
add dl, 0x7f
add bl, dl
add bl, 0xb3
mov byte [esi + eax + 0xbc], bl
mov edi, dword [esi + 0xc]
add edi, ecx
jmp 0x418b64
lea edi, [ecx + 4]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
mov dl, byte [esi + 0x18]
je 0x418abf
jmp 0x41899f
lea edx, [ecx + 2]
cmp edi, edx
mov ebx, dword [esi + 0x14]
je 0x418b83
lea edx, [ecx + 5]
cmp edi, edx
jne 0x418b89
lea edi, [eax + 0x739c07ab]
lea edx, [eax + ebx]
add edx, 0x739c07ab
and edi, ebx
add edi, edi
sub edx, edi
mov edi, dword [esi + 0xc]
add dl, 0x53
movzx edx, dl
not edx
jmp 0x418ac4
lea edi, [ecx + 6]
cmp edx, edi
mov ebx, dword [esi + 0x14]
mov edi, ecx
jne 0x4189d3
mov ecx, edi
mov edi, dword [esi + 0xc]
dec eax
jmp 0x418ac6
lea edx, [ecx + 7]
cmp edi, edx
je 0x418a60
lea edx, [ecx + 4]
mov edi, dword [esi + 0xc]
cmp edi, edx
je 0x418a00
lea edx, [ecx + 9]
cmp edi, edx
mov ebx, dword [esi + 0x14]
jbe 0x418bc6
lea edi, [eax + 0x1bfa96]
lea edx, [eax + ebx]
add edx, 0x1bfa96
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0xe6
jmp 0x418c05
lea edx, [ecx + 3]
cmp edi, edx
jne 0x418bed
lea edi, [eax + 0x7cff7d2e]
lea edx, [eax + ebx]
add edx, 0x7cff7d2e
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0xbe
mov edi, dword [esi + 0xc]
jmp 0x418b64
lea edi, [eax + 0xf9c7053]
lea edx, [eax + ebx]
add edx, 0xf9c7053
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0xbb
mov byte [esi + eax + 0xbc], dl
mov edi, dword [esi + 0xc]
jmp 0x418ac6
mov eax, 0xf7e817
jmp 0x418c24
xor eax, eax
jmp 0x418c24
mov eax, 0x15b77c4
add eax, esi
add eax, 0xbc
mov dword [esi + 0x20], eax
lea eax, [esi + 0x19e]
xor ecx, ecx
mov dword [eax + 0x13], ecx
mov dword [eax + 0xf], ecx
xorps xmm0, xmm0
movups xmmword [eax], xmm0
mov dword [esi + 0x198], 0x31444bb1
mov word [esi + 0x19c], 0xfd1a
call fcn.0046d640
mov ebx, dword [eax]
call fcn.0046d646
mov ecx, dword [eax]
xor eax, eax
cmp ebx, eax
ja 0x41900a
mov dl, byte [esi + eax + 0x198]
movzx edi, dl
mov dword [esi + 0xc], edi
lea edi, [ecx + 1]
cmp ebx, edi
jae 0x418cb7
cmp ecx, eax
ja 0x419015
mov byte [esi + 0x14], dl
mov dword [esi + 0x10], edi
lea edx, [ecx + 0x10]
cmp ebx, edx
jae 0x418cf2
lea edi, [ebx + ecx]
cmp edi, eax
jbe 0x418d25
mov dword [esi + 0x1c], edi
mov edi, ecx
mov ecx, ebx
lea ebx, [edi + 9]
cmp ecx, ebx
jne 0x418daf
mov ebx, ecx
jmp 0x418d1d
je 0x418d8f
mov dword [esi + 0x10], edi
lea edi, [ecx + 2]
cmp ebx, edi
je 0x418d2e
lea edi, [ecx + 4]
cmp ebx, edi
jne 0x418e49
lea edi, [eax + 0x3f6cde77]
mov edx, dword [esi + 0xc]
add edx, eax
add edx, 0x3f6cde77
and edi, dword [esi + 0xc]
add edi, edi
sub edx, edi
add dl, 0xbf
jmp 0x418ef4
cmp ebx, dword [esi + 0x10]
jne 0x418d99
lea edx, [eax - 0xdb046e7]
mov edi, dword [esi + 0xc]
lea ecx, [edi + eax]
add ecx, 0xf24fb919
and edx, edi
add edx, edx
sub ecx, edx
add cl, 0x51
mov byte [esi + eax + 0x198], cl
mov edi, dword [esi + 0x10]
jmp 0x418fbb
cmp edi, 9
jne 0x418de0
mov dword [esi + 0x18], ebx
lea edi, [eax + 0x2af1e315]
mov ebx, dword [esi + 0xc]
and edi, ebx
add edi, edi
lea edx, [eax + ebx]
add edx, 0x2af1e315
sub edx, edi
add dl, 0x6d
mov byte [esi + eax + 0x198], dl
not ecx
add ecx, eax
movzx eax, dl
sub ecx, eax
mov eax, ecx
mov ecx, dword [esi + 0x10]
lea edx, [eax - 0x6e5926c]
and edx, ebx
add ebx, eax
add ebx, 0xf91a6d94
add edx, edx
sub ebx, edx
add bl, 0xf4
mov byte [esi + eax + 0x198], bl
mov ebx, dword [esi + 0x18]
sub eax, ebx
inc ebx
mov dl, byte [esi + eax + 0x196]
add eax, 0xfffffffe
movzx edx, dl
add edx, ecx
jmp 0x418ef9
mov edi, ecx
mov ecx, ebx
lea ebx, [edi + 3]
cmp ecx, ebx
jne 0x418e9c
mov ebx, ecx
jmp 0x418fbb
mov dword [esi + 0x34], edi
lea ebx, [edi + 0xa]
cmp ecx, ebx
jne 0x418ecc
lea edi, [eax + 0x6a5ec18c]
mov ebx, dword [esi + 0xc]
lea edx, [eax + ebx]
add edx, 0x6a5ec18c
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0x2c
mov ecx, dword [esi + 0x34]
jmp 0x418e77
lea edx, [ecx + 3]
cmp ebx, edx
jbe 0x418f00
mov dword [esi + 0xdc], edx
mov dword [esi + 0x1c], edi
lea edi, [eax + 0x1fa90043]
mov edx, dword [esi + 0xc]
add edx, eax
add edx, 0x1fa90043
and edi, dword [esi + 0xc]
add edi, edi
sub edx, edi
add dl, 0x2b
mov dword [esi + 0x3c], edx
mov dl, byte [esi + 0x14]
lea edi, [ecx + 8]
cmp ebx, edi
jbe 0x418f81
lea edx, [eax + 0x8fc5cae]
mov edi, dword [esi + 0xc]
add edi, eax
add edi, 0x8fc5cae
and edx, dword [esi + 0xc]
add edx, edx
sub edi, edx
mov edx, edi
add dl, 0x3e
mov byte [esi + eax + 0x198], dl
jmp 0x418fbe
lea edi, [ecx + 5]
cmp ebx, edi
jne 0x418f62
lea edi, [eax + 0x780f0873]
mov edx, dword [esi + 0xc]
add edx, eax
add edx, 0x780f0873
and edi, dword [esi + 0xc]
add edi, edi
sub edx, edi
add dl, 0xdb
add ebx, ecx
mov dword [esi + 0x1c], ebx
mov ebx, dword [esi + 0xc]
lea edi, [eax - 0x715f31e9]
and edi, ebx
add ebx, eax
add ebx, 0x8ea0ce17
add edi, edi
sub ebx, edi
add bl, dl
add bl, 0x5f
mov byte [esi + eax + 0x198], bl
mov ebx, dword [esi + 0x1c]
jmp 0x418ef4
lea ebx, [edi + 5]
cmp ecx, ebx
jne 0x418f6d
mov ebx, ecx
mov dword [esi + 0x34], edi
lea edi, [eax - 0x6cc625a1]
mov ecx, dword [esi + 0xc]
lea edx, [eax + ecx]
add edx, 0x9339da5f
and edi, ecx
add edi, edi
sub edx, edi
add dl, 0x67
mov ecx, dword [esi + 0x34]
jmp 0x418ef4
mov ebx, ecx
cmp ecx, edx
mov ecx, dword [esi + 0x34]
jne 0x418f9c
lea edi, [eax - 0x5cff1478]
mov edx, dword [esi + 0xc]
add edx, eax
add edx, 0xa300eb88
and edi, dword [esi + 0xc]
add edi, edi
sub edx, edi
add dl, 0x48
movzx edx, dl
not edx
add eax, edx
jmp 0x418fbe
cmp ebx, dword [esi + 0x10]
je 0x418cfb
mov dword [esi + 0x1c], edi
lea edi, [ecx + 2]
cmp ebx, edi
je 0x418f69
lea edi, [ecx + 7]
cmp ebx, edi
je 0x418d2e
mov dword [esi + 0xdc], edx
lea edi, [ecx + 6]
cmp ebx, edi
mov dl, byte [esi + 0x14]
je 0x418d8f
lea edi, [eax - 0x31d77581]
mov dword [esi + 0x34], ecx
mov ecx, dword [esi + 0xc]
add ecx, eax
add ecx, 0xce288a7f
mov dword [esi + 0x3c], ecx
and edi, dword [esi + 0xc]
add edi, edi
sub dword [esi + 0x3c], edi
mov ecx, dword [esi + 0x3c]
add cl, 0x87
mov dword [esi + 0x3c], ecx
mov ecx, dword [esi + 0x34]
jmp 0x418e15
lea edi, [ecx + 3]
cmp ebx, edi
jne 0x418fad
mov edi, ecx
jmp 0x418fbb
lea ebx, [edi + 4]
cmp ecx, ebx
mov ebx, ecx
mov ecx, edi
jne 0x418c96
jmp 0x418d2e
cmp ebx, dword [esi + 0x10]
je 0x418d8f
lea edx, [ecx + 2]
cmp ebx, edx
jne 0x418fca
mov dword [esi + 0x18], ebx
mov ebx, dword [esi + 0xc]
jmp 0x418d61
cmp ebx, dword [esi + 0x10]
mov dl, byte [esi + 0x14]
je 0x418d8f
jmp 0x418c55
lea edi, [ecx + 6]
cmp ebx, edi
mov edi, dword [esi + 0x10]
jne 0x418c81
dec eax
mov ecx, edi
inc eax
cmp eax, 0x1d
jb 0x418c65
jmp 0x419011
cmp ebx, dword [esi + 0xdc]
mov edi, dword [esi + 0x1c]
je 0x418d2e
lea edx, [ecx + 5]
cmp ebx, edx
mov edx, dword [esi + 0x3c]
jne 0x418e3d
mov dword [esi + 0x1c], edi
lea edi, [eax - 0x4d1d255e]
mov ebx, dword [esi + 0xc]
lea edx, [eax + ebx]
add edx, 0xb2e2daa2
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0x92
jmp 0x418e77
mov eax, 0x6597d3
jmp 0x41901a
xor eax, eax
jmp 0x41901a
mov eax, 0x17d0d54
add eax, esi
add eax, 0x198
mov dword [esi + 0x18], 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 + 0x290]
mov eax, closesocket
sub eax, ecx
cmp eax, edi
jb 0x421d35
mov edx, dword [esi + 0x280]
mov eax, dword [esi + 0x294]
mov dword [esi + 0x130], 0
mov dword [esi + 0x1c], ecx
add ecx, edi
mov dword [esi + 0x14], 0xf
lea ebx, [esi + 0x130]
cmp ecx, 0x10
mov dword [esi + 0x10], ecx
jb 0x4190cb
mov dword [esi + 0x34], eax
mov eax, ecx
or eax, 0xf
mov dword [esi + 0xc], edx
js 0x4190a5
cmp eax, 0x17
mov ebx, 0x16
mov dword [esi + 0x14], eax
cmovae ebx, eax
lea eax, [ebx + 1]
cmp ebx, 0xfff
jae 0x4190b1
mov dword [esi + 0x14], ebx
push eax
call fcn.004716fe
jmp 0x4190b7
mov dword [esi + 0x14], closesocket
mov eax, closesocket
push eax
call fcn.0040130b
add esp, 4
mov ebx, eax
mov dword [esi + 0x130], eax
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x34]
cmp eax, 0x10
lea eax, [esi + 0x280]
cmovb edx, eax
mov dword [esi + 0xc], edx
mov dword [esi + 0x140], ecx
mov eax, dword [esi + 0x14]
mov dword [esi + 0x144], eax
push edi
push dword [esi + 0x18]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, ebx
push dword [esi + 0x1c]
push dword [esi + 0xc]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x10]
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 + 0x140]
mov edi, dword [esi + 0x144]
mov eax, edi
sub eax, ebx
cmp eax, ecx
jae 0x41920d
mov eax, closesocket
sub eax, ebx
cmp eax, ecx
jb 0x421d35
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 0x41918c
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 0x41918c
add edx, edi
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x419e9f
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 + 0x140], eax
mov dword [esi + 0x144], edx
cmp edi, 0x10
jb 0x419241
mov eax, dword [esi + 0x130]
push ebx
mov dword [esi + 0x18], 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 0x41926e
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x421d3a
add edi, 0x24
mov ecx, edi
jmp 0x419271
mov edx, edi
mov edi, ecx
add edi, ebx
mov dword [esi + 0x140], edi
lea eax, [esi + 0x130]
cmp edx, 0x10
jb 0x41922a
mov eax, dword [esi + 0x130]
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 0x419283
push ebx
lea eax, [esi + 0x130]
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 0x41927d
mov eax, dword [esi + 0x18]
push ecx
push eax
call fcn.00471733
add esp, 8
mov edi, ebx
mov dword [esi + 0x130], edi
movsd xmm0, qword [esi + 0x140]
movsd qword [esi + 0xf0], xmm0
movups xmm0, xmmword [esi + 0x130]
movaps xmmword [esi + 0xe0], xmm0
mov dword [esi + 0x140], 0
mov dword [esi + 0x144], 0xf
mov byte [esi + 0x130], 0
mov ecx, dword [esi + 0x158]
cmp dword [esi + 0x15c], 0x10
lea edx, [esi + 0x148]
jb 0x4192d7
mov edx, dword [esi + 0x148]
mov edi, dword [esi + 0xf0]
mov eax, dword [esi + 0xf4]
mov dword [esi + 0xc], eax
sub eax, edi
cmp eax, ecx
jae 0x4193cd
mov eax, closesocket
sub eax, edi
cmp eax, ecx
jb 0x421d35
mov dword [esi + 0x1c], edx
mov dword [esi + 0x18], ecx
add ecx, edi
mov dword [esi + 0x10], ecx
or ecx, 0xf
mov dword [esi + 0x14], closesocket
mov eax, closesocket
js 0x41934c
mov eax, dword [esi + 0xc]
mov edx, eax
shr edx, 1
mov ebx, edx
xor ebx, 0x7fffffff
cmp ebx, eax
mov eax, closesocket
jb 0x41934c
add edx, dword [esi + 0xc]
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x419ebd
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 + 0xf0], eax
mov dword [esi + 0xf4], edx
cmp dword [esi + 0xc], 0x10
jb 0x419403
mov eax, dword [esi + 0xe0]
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 + 0x18]
push dword [esi + 0x1c]
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 0x419430
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x421d3a
mov ecx, dword [esi + 0xc]
add ecx, 0x24
jmp 0x419433
lea ebx, [edi + ecx]
mov eax, ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0xf0], ebx
lea ebx, [esi + 0xe0]
cmp dword [esi + 0xc], 0x10
jb 0x4193ed
mov ebx, dword [esi + 0xe0]
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 0x419445
push edi
lea eax, [esi + 0xe0]
push eax
push ecx
mov ebx, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, ebx
push dword [esi + 0x18]
push dword [esi + 0x1c]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x10]
mov byte [ebx + eax], 0
jmp 0x41943f
mov eax, dword [esi + 0x14]
push ecx
push eax
call fcn.00471733
add esp, 8
mov ebx, edi
mov dword [esi + 0xe0], ebx
movsd xmm0, qword [esi + 0xf0]
movsd qword [esi + 0x70], xmm0
movaps xmm0, xmmword [esi + 0xe0]
movaps xmmword [esi + 0x60], xmm0
mov dword [esi + 0xf0], 0
mov dword [esi + 0xf4], 0xf
mov byte [esi + 0xe0], 0
push dword [esi + 0x24]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ecx, eax
mov ebx, dword [esi + 0x70]
mov edi, dword [esi + 0x74]
mov eax, edi
sub eax, ebx
cmp eax, ecx
jae 0x419568
mov eax, closesocket
sub eax, ebx
cmp eax, ecx
jb 0x421d35
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 0x4194f0
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 0x4194f0
add edx, edi
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x419edb
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 + 0x70], eax
mov dword [esi + 0x74], edx
cmp edi, 0x10
jb 0x419593
mov eax, dword [esi + 0x60]
push ebx
mov dword [esi + 0x18], 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 + 0x24]
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 0x4195bd
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x421d3a
add edi, 0x24
mov ecx, edi
jmp 0x4195c0
mov edx, edi
mov edi, ecx
add edi, ebx
mov dword [esi + 0x70], edi
lea eax, [esi + 0x60]
cmp edx, 0x10
jb 0x41957c
mov eax, dword [esi + 0x60]
add ebx, eax
push ecx
push dword [esi + 0x24]
push ebx
mov ebx, eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebx + edi], 0
jmp 0x4195cf
push ebx
lea eax, [esi + 0x60]
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 + 0x24]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0xc]
mov byte [edi + eax], 0
jmp 0x4195cc
mov eax, dword [esi + 0x18]
push ecx
push eax
call fcn.00471733
add esp, 8
mov edi, ebx
mov dword [esi + 0x60], edi
movsd xmm0, qword [esi + 0x70]
movsd qword [esi + 0x90], xmm0
movaps xmm0, xmmword [esi + 0x60]
movaps xmmword [esi + 0x80], xmm0
mov dword [esi + 0x70], 0
mov dword [esi + 0x74], 0xf
mov byte [esi + 0x60], 0
mov ecx, dword [esi + 0x2a8]
cmp dword [esi + 0x2ac], 0x10
lea edx, [esi + 0x298]
jb 0x419614
mov edx, dword [esi + 0x298]
mov edi, dword [esi + 0x90]
mov eax, dword [esi + 0x94]
mov dword [esi + 0xc], eax
sub eax, edi
cmp eax, ecx
jae 0x41970a
mov eax, closesocket
sub eax, edi
cmp eax, ecx
jb 0x421d35
mov dword [esi + 0x1c], edx
mov dword [esi + 0x18], ecx
add ecx, edi
mov dword [esi + 0x10], ecx
or ecx, 0xf
mov dword [esi + 0x14], closesocket
mov eax, closesocket
js 0x419689
mov eax, dword [esi + 0xc]
mov edx, eax
shr edx, 1
mov ebx, edx
xor ebx, 0x7fffffff
cmp ebx, eax
mov eax, closesocket
jb 0x419689
add edx, dword [esi + 0xc]
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x419ef9
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 + 0x90], eax
mov dword [esi + 0x94], edx
cmp dword [esi + 0xc], 0x10
jb 0x419740
mov eax, dword [esi + 0x80]
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 + 0x18]
push dword [esi + 0x1c]
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 0x41976d
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x421d3a
mov ecx, dword [esi + 0xc]
add ecx, 0x24
jmp 0x419770
lea ebx, [edi + ecx]
mov eax, ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x90], ebx
lea ebx, [esi + 0x80]
cmp dword [esi + 0xc], 0x10
jb 0x41972a
mov ebx, dword [esi + 0x80]
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 0x419782
push edi
lea eax, [esi + 0x80]
push eax
push ecx
mov ebx, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, ebx
push dword [esi + 0x18]
push dword [esi + 0x1c]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x10]
mov byte [ebx + eax], 0
jmp 0x41977c
mov eax, dword [esi + 0x14]
push ecx
push eax
call fcn.00471733
add esp, 8
mov ebx, edi
mov dword [esi + 0x80], ebx
movsd xmm0, qword [esi + 0x90]
movsd qword [esi + 0x120], xmm0
movaps xmm0, xmmword [esi + 0x80]
movaps xmmword [esi + 0x110], xmm0
mov dword [esi + 0x90], 0
mov dword [esi + 0x94], 0xf
mov byte [esi + 0x80], 0
push dword [esi + 0x28]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ecx, eax
mov ebx, dword [esi + 0x120]
mov edx, dword [esi + 0x124]
mov eax, edx
sub eax, ebx
cmp eax, ecx
jae 0x4198c6
mov eax, closesocket
sub eax, ebx
cmp eax, ecx
jb 0x421d35
mov dword [esi + 0x18], 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 0x419840
mov eax, edx
shr edx, 1
mov edi, edx
xor edi, 0x7fffffff
cmp edi, eax
mov eax, closesocket
mov edi, dword [esi + 0x10]
jb 0x419840
add edx, dword [esi + 0xc]
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x419f13
mov dword [esi + 0x14], edx
push eax
call fcn.0040130b
add esp, 4
mov ecx, eax
mov edx, dword [esi + 0x14]
mov dword [esi + 0x120], edi
mov dword [esi + 0x124], edx
mov edi, dword [esi + 0xc]
cmp edi, 0x10
jb 0x4198fb
mov eax, dword [esi + 0x110]
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 + 0x18]
push dword [esi + 0x28]
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 0x41992d
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
lea edi, [esi + 0x40]
jae 0x421d3a
add edx, 0x24
mov ecx, edx
jmp 0x419933
mov edi, ecx
add edi, ebx
mov dword [esi + 0x120], edi
lea eax, [esi + 0x110]
cmp edx, 0x10
jb 0x4198e1
mov eax, dword [esi + 0x110]
add ebx, eax
push ecx
push dword [esi + 0x28]
push ebx
mov ebx, eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebx + edi], 0
lea edi, [esi + 0x40]
jmp 0x419943
push ebx
lea eax, [esi + 0x110]
push eax
push ecx
mov edi, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, edi
push dword [esi + 0x18]
push dword [esi + 0x28]
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 + 0x40]
jmp 0x41993d
lea edi, [esi + 0x40]
mov eax, dword [esi + 0x14]
push ecx
push eax
call fcn.00471733
add esp, 8
mov dword [esi + 0x110], ebx
movsd xmm0, qword [esi + 0x120]
movsd qword [esi + 0x270], xmm0
movaps xmm0, xmmword [esi + 0x110]
movaps xmmword [esi + 0x260], xmm0
mov dword [esi + 0x120], 0
mov dword [esi + 0x124], 0xf
mov byte [esi + 0x110], 0
sub esp, 0xc
mov al, byte [esi + 0x240]
mov byte [esp], al
lea eax, [esi + 0x220]
mov dword [esp + 8], eax
lea eax, [esi + 0x260]
mov dword [esp + 4], eax
mov ecx, edi
call fcn.00451d58
push dword [esi + 0x2c]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ebx, dword [esi + 0x50]
mov edx, dword [esi + 0x54]
mov ecx, edx
sub ecx, ebx
cmp ecx, eax
jae 0x419a8f
mov ecx, closesocket
sub ecx, ebx
cmp ecx, eax
jb 0x421d35
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 0x419a1d
mov eax, edx
shr edx, 1
mov edi, edx
xor edi, 0x7fffffff
cmp edi, eax
mov eax, closesocket
mov edi, closesocket
jb 0x419a1d
add edx, dword [esi + 0x10]
cmp ecx, edx
mov edi, edx
cmovae edi, ecx
lea eax, [edi + 1]
cmp eax, 0x1000
jb 0x419f2d
push eax
call fcn.0040130b
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], edi
mov eax, dword [esi + 0x10]
cmp eax, 0x10
jb 0x419ab7
mov edx, dword [esi + 0x40]
push ebx
mov dword [esi + 0x18], 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 + 0x2c]
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 0x419ae6
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x421d3a
add edx, 0x24
mov ecx, edx
jmp 0x419ae9
mov ecx, edi
mov edi, eax
add edi, ebx
mov dword [esi + 0x50], edi
cmp edx, 0x10
jb 0x419aa0
mov ecx, dword [esi + 0x40]
add ebx, ecx
push eax
push dword [esi + 0x2c]
push ebx
mov ebx, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebx + edi], 0
jmp 0x419af6
push ebx
lea eax, [esi + 0x40]
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 + 0x2c]
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 0x419af3
mov eax, dword [esi + 0x18]
push ecx
push eax
call fcn.00471733
add esp, 8
mov dword [esi + 0x40], ebx
movsd xmm0, qword [esi + 0x50]
movsd qword [esi + 0x250], xmm0
movups xmm0, xmmword [esi + 0x40]
movaps xmmword [esi + 0x240], xmm0
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 0xf
mov byte [esi + 0x40], 0
mov eax, dword [esi + 0x254]
mov dword [esi + 0x14], eax
cmp eax, 0x10
mov edi, dword [esi + 0x240]
lea eax, [esi + 0x240]
cmovae eax, edi
mov dword [esi + 0x10], eax
mov ebx, dword [esi + 0x108]
mov ecx, dword [esi + 0x10c]
mov eax, ecx
sub eax, ebx
mov edx, dword [esi + 0x250]
cmp eax, edx
mov dword [esi + 0xc], edi
jae 0x419c45
mov dword [esi + 0x18], ecx
mov eax, closesocket
sub eax, ebx
cmp eax, edx
jb 0x421d35
mov dword [esi + 0x20], edx
lea ecx, [ebx + edx]
mov dword [esi + 0x1c], ecx
or ecx, 0xf
mov dword [esi + 0x24], closesocket
mov eax, closesocket
js 0x419bbd
mov dword [esi + 0x28], ebx
mov ebx, dword [esi + 0x18]
mov edx, ebx
shr edx, 1
mov edi, edx
xor edi, 0x7fffffff
cmp edi, ebx
mov ebx, dword [esi + 0x28]
jb 0x419bbd
add edx, dword [esi + 0x18]
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x419f3c
mov dword [esi + 0x24], edx
push eax
call fcn.0040130b
add esp, 4
mov ecx, eax
mov edx, dword [esi + 0x24]
mov edi, dword [esi + 0x1c]
mov dword [esi + 0x108], edi
mov dword [esi + 0x10c], edx
cmp dword [esi + 0x18], 0x10
jb 0x419c78
mov eax, dword [esi + 0xf8]
push ebx
mov dword [esi + 0x24], 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 + 0x10]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ebx, edi
mov eax, dword [esi + 0x1c]
mov byte [edi + eax], 0
mov eax, dword [esi + 0x18]
lea ecx, [eax + 1]
cmp ecx, 0x1000
jb 0x419caa
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
mov edi, dword [esi + 0xc]
jae 0x421d3a
mov ecx, dword [esi + 0x18]
add ecx, 0x24
jmp 0x419cb0
mov eax, ebx
add ebx, edx
mov dword [esi + 0x108], ebx
lea edi, [esi + 0xf8]
cmp ecx, 0x10
jb 0x419c60
mov edi, dword [esi + 0xf8]
add eax, edi
push edx
push dword [esi + 0x10]
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [edi + ebx], 0
mov edi, dword [esi + 0xc]
jmp 0x419cc0
push ebx
lea eax, [esi + 0xf8]
push eax
push ecx
mov dword [esi + 0x18], ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, dword [esi + 0x18]
push dword [esi + 0x20]
push dword [esi + 0x10]
push ebx
call sub.VCRUNTIME140.dll_memcpy
mov ebx, dword [esi + 0x18]
add esp, 0xc
mov byte [ebx + edi], 0
mov edi, dword [esi + 0xc]
jmp 0x419cba
mov edi, dword [esi + 0xc]
mov eax, dword [esi + 0x24]
push ecx
push eax
call fcn.00471733
add esp, 8
mov dword [esi + 0xf8], ebx
mov edx, dword [esi + 0x14]
cmp edx, 0x10
jb 0x419cf5
lea ecx, [edx + 1]
cmp ecx, 0x1000
jb 0x419ceb
mov eax, dword [edi - 4]
add edi, 0xfffffffc
sub edi, eax
cmp edi, 0x20
jae 0x421d3a
add edx, 0x24
mov ecx, edx
mov edi, eax
push ecx
push edi
call fcn.00471733
add esp, 8
mov dword [esi + 0x250], 0
mov dword [esi + 0x254], 0xf
mov byte [esi + 0x240], 0
mov eax, dword [esi + 0x54]
cmp eax, 0x10
jb 0x419d48
mov ecx, dword [esi + 0x40]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x419d3e
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x421d3a
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 0xf
mov byte [esi + 0x40], 0
mov eax, dword [esi + 0x274]
cmp eax, 0x10
jb 0x419d98
mov ecx, dword [esi + 0x260]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x419d8e
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x421d3a
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
mov eax, dword [esi + 0x234]
cmp eax, 0x10
jb 0x419dd6
mov ecx, dword [esi + 0x220]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x419dcc
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x421d3a
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
inc dword [0x4784f8]
mov eax, dword [esi + 0x15c]
cmp eax, 0x10
jb 0x419e1a
mov ecx, dword [esi + 0x148]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x419e10
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x421d3a
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
mov eax, dword [esi + 0x294]
cmp eax, 0x10
jb 0x419e58
mov ecx, dword [esi + 0x280]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x419e4e
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x421d3a
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
mov eax, dword [esi + 0x2ac]
cmp eax, 0x10
jb 0x419f9a
mov ecx, dword [esi + 0x298]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x419e90
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x421d3a
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
jmp 0x419f9a
test eax, eax
je 0x419f54
push eax
mov dword [esi + 0x10], edx
call fcn.004716fe
mov edx, dword [esi + 0x10]
add esp, 4
mov ecx, eax
jmp 0x41919a
test eax, eax
je 0x419f5e
push eax
mov dword [esi + 0x14], edx
call fcn.004716fe
mov edx, dword [esi + 0x14]
add esp, 4
mov ecx, eax
jmp 0x41935a
test eax, eax
je 0x419f68
push eax
mov dword [esi + 0x10], edx
call fcn.004716fe
mov edx, dword [esi + 0x10]
add esp, 4
mov ecx, eax
jmp 0x4194fe
test eax, eax
je 0x419f72
push eax
mov dword [esi + 0x14], edx
call fcn.004716fe
mov edx, dword [esi + 0x14]
add esp, 4
mov ecx, eax
jmp 0x419697
test eax, eax
je 0x419f7c
push eax
mov dword [esi + 0x14], edx
call fcn.004716fe
mov edx, dword [esi + 0x14]
add esp, 4
mov ecx, eax
jmp 0x41984e
test eax, eax
je 0x419f86
push eax
call fcn.004716fe
jmp 0x419a23
test eax, eax
je 0x419f90
push eax
mov edi, edx
call fcn.004716fe
mov edx, edi
add esp, 4
mov ecx, eax
jmp 0x419bcb
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x41919a
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x41935a
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x4194fe
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x419697
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x41984e
xor ecx, ecx
xor edi, edi
dec edi
jmp 0x419a28
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x419bcb
mov edi, dword [0x4785b0]
test edi, edi
jne 0x41a112
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0x65340d7a
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x41a016
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0xa0cb2db6
cmp cx, 2
jb 0x41a005
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0xa0cb2db6
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x419ff2
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x41a0f9
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x41a0ce
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x41a0cb
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 0x41a078
add edx, dword [esi + 0x18]
mov eax, 0xa0cb2db6
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x41a064
jmp 0x41a07d
mov eax, 0xa0cb2db6
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x41a041
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 0x41a10c
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x41a10c
mov al, byte [edi]
mov ecx, 0xa0cb2db6
mov ebx, 0xa0cb2db6
cmp al, 0x2e
je 0x41a0d3
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x41a0b6
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x41a0f9
mov al, byte [edi + 1]
test al, al
je 0x41a0f4
add edi, 2
mov ecx, 0xa0cb2db6
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x41a0e2
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x41a10c
cmp dword [eax + 0x18], 0
jne 0x419fc0
mov dword [0x4785b0], edi
push dword [esi + 0x30]
call edi
cmp eax, 0x64
je 0x417757
mov edi, dword [0x4785c8]
test edi, edi
jne 0x41a298
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0x19763d70
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x41a19c
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x4310b494
cmp cx, 2
jb 0x41a18b
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x4310b494
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x41a178
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x41a27f
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x41a254
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x41a251
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 0x41a1fe
add edx, dword [esi + 0x18]
mov eax, 0x4310b494
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x41a1ea
jmp 0x41a203
mov eax, 0x4310b494
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x41a1c7
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 0x41a292
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x41a292
mov al, byte [edi]
mov ecx, 0x4310b494
mov ebx, 0x4310b494
cmp al, 0x2e
je 0x41a259
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x41a23c
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x41a27f
mov al, byte [edi + 1]
test al, al
je 0x41a27a
add edi, 2
mov ecx, 0x4310b494
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x41a268
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x41a292
cmp dword [eax + 0x18], 0
jne 0x41a146
mov dword [0x4785c8], edi
push dword [esi + 0x30]
call edi
mov edi, dword [0x4785cc]
test edi, edi
jne 0x41a415
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0x9150b447
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x41a319
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0xca30d9a3
cmp cx, 2
jb 0x41a308
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0xca30d9a3
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x41a2f5
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x41a3fc
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x41a3d1
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x41a3ce
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 0x41a37b
add edx, dword [esi + 0x18]
mov eax, 0xca30d9a3
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x41a367
jmp 0x41a380
mov eax, 0xca30d9a3
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x41a344
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 0x41a40f
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x41a40f
mov al, byte [edi]
mov ecx, 0xca30d9a3
mov ebx, 0xca30d9a3
cmp al, 0x2e
je 0x41a3d6
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x41a3b9
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x41a3fc
mov al, byte [edi + 1]
test al, al
je 0x41a3f7
add edi, 2
mov ecx, 0xca30d9a3
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x41a3e5
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x41a40f
cmp dword [eax + 0x18], 0
jne 0x41a2c3
mov dword [0x4785cc], edi
push dword [esi + 0x38]
call edi
mov eax, dword [esi + 0x218]
cmp eax, 0x10
jb 0x41a458
mov ecx, dword [esi + 0x204]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x41a44e
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x421d3a
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
xor eax, eax
mov dword [esi + 0x38], eax
movaps xmm0, xmmword [0x473450]
movups xmmword [esi + 0x198], xmm0
movaps xmm0, xmmword [0x473460]
movups xmmword [esi + 0x1a8], xmm0
movaps xmm0, xmmword [0x473470]
movups xmmword [esi + 0x1b8], xmm0
movaps xmm0, xmmword [0x473480]
movups xmmword [esi + 0x1c8], xmm0
movaps xmm0, xmmword [0x473490]
movups xmmword [esi + 0x1d8], xmm0
mov dword [esi + 0x1e8], 0xd4d5c9ae
mov byte [esi + 0x1ec], 0xe4
xorps xmm0, xmm0
movups xmmword [esi + 0x1ed], xmm0
mov dword [esi + 0x1fe], eax
mov dword [esi + 0x1fa], eax
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov ebx, dword [eax]
xor eax, eax
cmp edi, eax
ja 0x41a869
mov dl, byte [esi + eax + 0x198]
movzx ecx, dl
mov dword [esi + 0x10], ecx
lea ecx, [ebx + 1]
cmp edi, ecx
jae 0x41a581
cmp ebx, eax
ja 0x41d664
mov dword [esi + 0x14], edx
mov dword [esi + 0xc], edi
lea edi, [ebx + 0x41]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
jae 0x41a58d
mov edx, ebx
mov ebx, edi
add edi, edx
cmp edi, eax
mov dword [esi + 0x18], edx
jbe 0x41a604
lea edi, [edx + 0x5a]
cmp ebx, edi
je 0x41a608
mov edx, dword [esi + 0x18]
lea edi, [edx + 0x28]
cmp ebx, edi
jne 0x41a69f
lea ecx, [eax - 0x5be1f4f0]
mov ebx, dword [esi + 0x10]
lea edx, [eax + ebx]
add edx, 0xa41e0b10
and ecx, ebx
add ecx, ecx
sub edx, ecx
add dl, 0x90
lea edi, [eax + 0x77dd66b4]
and edi, ebx
lea ecx, [ebx + eax]
add ecx, 0x77dd66b4
add edi, edi
sub ecx, edi
add cl, dl
add cl, 0x14
mov byte [esi + eax + 0x198], cl
mov edi, dword [esi + 0xc]
jmp 0x41a65b
jne 0x41a5d1
movzx ecx, dl
add ecx, ebx
jmp 0x41a665
mov edx, ebx
cmp edi, ecx
mov ebx, edi
je 0x41a608
lea edi, [edx + 3]
cmp ebx, edi
je 0x41a673
lea edi, [edx + 4]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
mov ebx, edx
jne 0x41a6f5
lea ecx, [eax + 0x36e4b7ec]
mov edx, dword [esi + 0x10]
add edx, eax
add edx, 0x36e4b7ec
and ecx, dword [esi + 0x10]
add ecx, ecx
sub edx, ecx
add dl, 0x8c
jmp 0x41a65e
mov dword [esi + 0x14], edx
mov edx, ebx
mov ebx, edi
lea edi, [edx + 3]
cmp ebx, edi
jne 0x41a634
mov edi, ebx
lea ecx, [eax - 0x219c90cc]
mov ebx, dword [esi + 0x10]
mov dword [esi + 0x18], edx
lea edx, [eax + ebx]
add edx, 0xde636f34
and ecx, ebx
add ecx, ecx
sub edx, ecx
add dl, 0x94
mov ebx, dword [esi + 0x18]
jmp 0x41a660
cmp ebx, ecx
jne 0x41a669
lea edi, [eax + 0x2a00318c]
mov dword [esi + 0x14], ecx
mov ecx, dword [esi + 0x10]
lea edx, [eax + ecx]
add edx, 0x2a00318c
and edi, ecx
mov ecx, dword [esi + 0x14]
add edi, edi
sub edx, edi
add dl, 0x2c
mov byte [esi + eax + 0x198], dl
mov edi, ebx
jmp 0x41a68d
lea edi, [edx + 2]
cmp ebx, edi
jne 0x41a679
mov edi, ebx
lea ecx, [eax + 0x2c40a45c]
mov ebx, dword [esi + 0x10]
mov dword [esi + 0x18], edx
lea edx, [eax + ebx]
add edx, 0x2c40a45c
and ecx, ebx
add ecx, ecx
sub edx, ecx
add dl, 0x7c
mov ebx, dword [esi + 0x18]
add edi, ebx
movzx ecx, dl
not ecx
add eax, ecx
jmp 0x41a690
mov edx, dword [esi + 0x18]
lea edi, [edx + 2]
cmp ebx, edi
jne 0x41a6c8
mov edi, ebx
mov ecx, edx
jmp 0x41a68d
lea edi, [edx + 7]
cmp ebx, edi
mov edi, ebx
mov ebx, edx
mov edx, dword [esi + 0x14]
jne 0x41a4fa
mov ecx, ebx
dec eax
mov ebx, ecx
inc eax
cmp eax, 0x6a
jb 0x41a4da
jmp 0x41a873
lea edi, [edx + 9]
cmp ebx, edi
jne 0x41a70c
mov edi, ebx
lea ecx, [eax + 0x3fd87560]
mov ebx, dword [esi + 0x10]
lea edx, [eax + ebx]
add edx, 0x3fd87560
and ecx, ebx
add ecx, ecx
sub edx, ecx
add dl, 0x60
jmp 0x41a5ff
lea edi, [edx + 3]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
mov ebx, edx
jne 0x41a72c
lea ecx, [eax - 0x65f5ebcc]
mov edx, dword [esi + 0x10]
add edx, eax
add edx, 0x9a0a1434
and ecx, dword [esi + 0x10]
add ecx, ecx
sub edx, ecx
add dl, 0x94
jmp 0x41a660
lea edi, [ebx + 2]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
jne 0x41a513
mov edx, dword [esi + 0x14]
jmp 0x41a583
lea edi, [edx + 4]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
je 0x41a739
lea ecx, [edx + 0x2a]
cmp edi, ecx
mov ebx, edx
mov edx, dword [esi + 0x14]
je 0x41a583
jmp 0x41a4ca
lea edi, [ebx + 4]
cmp dword [esi + 0xc], edi
mov edx, ebx
mov ebx, dword [esi + 0xc]
jne 0x41a7aa
lea edi, [eax - 0x3a456424]
mov dword [esi + 0x14], ecx
mov ebx, dword [esi + 0x10]
and edi, ebx
add edi, edi
mov ecx, edx
lea edx, [ebx + eax]
add edx, 0xc5ba9bdc
sub edx, edi
add dl, 0xfc
mov byte [esi + eax + 0x198], dl
not ecx
add ecx, eax
movzx eax, dl
mov dword [esi + 0x18], eax
mov edx, ecx
sub edx, eax
lea edi, [edx + 0x6ca93670]
and edi, ebx
lea eax, [edx + ebx]
add eax, 0x6ca93670
add edi, edi
sub eax, edi
mov edi, dword [esi + 0xc]
add al, 0xf0
mov byte [esi + edx + 0x198], al
mov eax, dword [esi + 0x18]
add eax, edi
inc edi
sub ecx, eax
mov dl, byte [esi + ecx + 0x196]
mov eax, ecx
add eax, 0xfffffffe
mov ebx, dword [esi + 0x14]
jmp 0x41a583
cmp ebx, 0x41
ja 0x41a7f2
mov edi, dword [esi + 0x18]
lea edx, [edi + 0x10]
cmp ebx, edx
jbe 0x41a817
lea edi, [eax + 0x786d8368]
mov ebx, dword [esi + 0x10]
lea edx, [eax + ebx]
add edx, 0x786d8368
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0x28
cmp dword [esi + 0x18], 7
mov ebx, dword [esi + 0xc]
ja 0x41a608
mov byte [esi + eax + 0x198], dl
mov edi, ebx
mov ebx, dword [esi + 0x18]
jmp 0x41a690
lea edi, [eax - 0x2f1133e0]
mov ebx, dword [esi + 0x10]
lea ecx, [eax + ebx]
add ecx, 0xd0eecc20
and edi, ebx
add edi, edi
sub ecx, edi
mov edx, dword [esi + 0x14]
add dl, cl
add dl, 0x20
jmp 0x41a558
lea edx, [edi + 5]
cmp ebx, edx
jne 0x41a83e
lea ecx, [eax + 0x4b9cc258]
mov ebx, dword [esi + 0x10]
lea edx, [eax + ebx]
add edx, 0x4b9cc258
and ecx, ebx
add ecx, ecx
sub edx, ecx
add dl, 0x98
jmp 0x41a558
lea edx, [edi + 6]
cmp ebx, edx
je 0x41a608
lea edi, [eax - 0x5911656c]
mov ebx, dword [esi + 0x10]
lea edx, [eax + ebx]
add edx, 0xa6ee9a94
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0xf4
jmp 0x41a7d4
mov eax, 0x13e7604
jmp 0x41d669
xor eax, eax
jmp 0x41d669
xor eax, eax
lea edi, [esi + eax]
add edi, 0x198
xor eax, eax
lea ebx, [esi + 0x204]
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 + 0x2c], ebx
mov ecx, ebx
push eax
push edi
call fcn.00450e50
xor eax, eax
mov dword [esi + 0x30], eax
mov edx, dword [0x478578]
test edx, edx
jne 0x41aa38
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax]
xor eax, eax
mov edi, 0x9a898edf
mov dword [esi + 0x24], ecx
mov dword [esi + 0x1c], ecx
test eax, eax
mov dword [esi + 0x20], eax
mov dword [esi + 0xc], edi
je 0x41a932
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x7ba2d2f1
cmp cx, 2
jb 0x41a924
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x7ba2d2f1
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x41a911
mov eax, dword [esi + 0x20]
cmp edx, eax
mov edi, dword [esi + 0xc]
jne 0x41a9ef
mov eax, dword [esi + 0x1c]
mov edx, dword [eax + 0x18]
mov eax, dword [edx + 0x3c]
mov ebx, dword [edx + eax + 0x78]
test ebx, ebx
je 0x41a9ec
mov eax, dword [edx + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edx + ebx]
mov dword [esi + 0x10], eax
mov eax, dword [eax + 0x18]
lea ecx, [edx + 1]
mov dword [esi + 0x18], ecx
mov dword [esi + 0x14], ebx
sub eax, 1
jb 0x41a9ec
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 0x41a997
add ebx, dword [esi + 0x18]
mov edi, 0x7ba2d2f1
movsx ecx, cl
xor ecx, edi
imul edi, ecx, 0x1000193
mov cl, byte [ebx]
inc ebx
test cl, cl
jne 0x41a983
jmp 0x41a99c
mov edi, 0x7ba2d2f1
mov ecx, dword [esi + 0xc]
cmp edi, ecx
mov edi, ecx
mov ebx, dword [esi + 0x14]
jne 0x41a960
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 0x41aa32
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edx
jbe 0x41aa32
mov al, byte [edx]
mov edi, 0x7ba2d2f1
mov ecx, 0x7ba2d2f1
cmp al, 0x2e
je 0x41a9f4
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edx + 1]
inc edx
jmp 0x41a9d7
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x1c]
jmp 0x41aa1c
mov al, byte [edx + 1]
test al, al
je 0x41aa15
add edx, 2
mov edi, 0x7ba2d2f1
movsx eax, al
xor eax, edi
imul edi, eax, 0x1000193
mov al, byte [edx]
inc edx
test al, al
jne 0x41aa03
mov eax, dword [esi + 0x24]
mov edx, dword [eax]
mov eax, ecx
mov ecx, dword [edx]
xor edx, edx
cmp ecx, dword [esi + 0x24]
je 0x41aa32
mov dword [esi + 0x1c], ecx
cmp dword [ecx + 0x18], 0
jne 0x41a8df
mov dword [0x478578], edx
cmp dword [esi + 0x2c4], 0x10
jb 0x41aa49
mov eax, dword [esi + 0x2b0]
jmp 0x41aa4f
lea eax, [esi + 0x2b0]
lea ecx, [esi + 0x38]
push ecx
push eax
call edx
test eax, eax
jne 0x41ad7d
mov ebx, dword [0x47857c]
test ebx, ebx
jne 0x41abd6
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xd7d82cf9
xor edi, edi
mov dword [esi + 0x24], eax
test edi, edi
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], edi
mov dword [esi + 0x1c], eax
je 0x41aada
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x81cd67cb
cmp cx, 2
jb 0x41aac9
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x81cd67cb
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x41aab6
mov edi, dword [esi + 0x20]
cmp edx, edi
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x41abbd
mov ebx, dword [eax + 0x18]
mov eax, dword [ebx + 0x3c]
mov edx, dword [ebx + eax + 0x78]
test edx, edx
je 0x41ab92
mov eax, dword [ebx + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [ebx + edx]
mov dword [esi + 0x10], eax
mov edi, dword [eax + 0x18]
lea eax, [ebx + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub edi, 1
jb 0x41ab8f
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 0x41ab3c
add edx, dword [esi + 0x18]
mov eax, 0x81cd67cb
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x41ab28
jmp 0x41ab41
mov eax, 0x81cd67cb
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x41ab05
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 0x41abd0
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, ebx
jbe 0x41abd0
mov al, byte [ebx]
mov ecx, 0x81cd67cb
mov edi, 0x81cd67cb
cmp al, 0x2e
je 0x41ab97
movsx eax, al
xor eax, edi
imul edi, eax, 0x1000193
mov al, byte [ebx + 1]
inc ebx
jmp 0x41ab7a
mov edi, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x41abbd
mov al, byte [ebx + 1]
test al, al
je 0x41abb8
add ebx, 2
mov ecx, 0x81cd67cb
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [ebx]
inc ebx
test al, al
jne 0x41aba6
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor ebx, ebx
cmp eax, dword [esi + 0x24]
je 0x41abd0
cmp dword [eax + 0x18], 0
jne 0x41aa84
mov dword [0x47857c], ebx
cmp dword [esi + 0x218], 0x10
jb 0x41abe8
mov eax, dword [esi + 0x204]
mov dword [esi + 0x2c], eax
lea eax, [esi + 0x30]
push 0
push eax
push 0xffffffffffffffff
push dword [esi + 0x2c]
push dword [esi + 0x38]
call ebx
test eax, eax
je 0x41d4c6
mov edi, dword [0x478580]
test edi, edi
jne 0x41ad78
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xafdfcd25
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x41ac7c
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x38c4a44d
cmp cx, 2
jb 0x41ac6b
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x38c4a44d
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x41ac58
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x41ad5f
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x41ad34
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x41ad31
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 0x41acde
add edx, dword [esi + 0x18]
mov eax, 0x38c4a44d
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x41acca
jmp 0x41ace3
mov eax, 0x38c4a44d
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x41aca7
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 0x41ad72
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x41ad72
mov al, byte [edi]
mov ecx, 0x38c4a44d
mov ebx, 0x38c4a44d
cmp al, 0x2e
je 0x41ad39
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x41ad1c
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x41ad5f
mov al, byte [edi + 1]
test al, al
je 0x41ad5a
add edi, 2
mov ecx, 0x38c4a44d
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x41ad48
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x41ad72
cmp dword [eax + 0x18], 0
jne 0x41ac26
mov dword [0x478580], edi
push dword [esi + 0x38]
call edi
mov eax, dword [esi + 0x218]
cmp eax, 0x10
jb 0x41adbb
mov ecx, dword [esi + 0x204]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x41adb1
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x421d3a
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
mov eax, dword [esi + 0x2c4]
cmp eax, 0x10
jb 0x41adf9
mov ecx, dword [esi + 0x2b0]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x41adef
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x421d3a
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
lea ecx, [esi + 0x2d4]
call fcn.0040d3aa
mov eax, dword [esi + 0x10c]
cmp eax, 0x10
jb 0x41ae42
mov ecx, dword [esi + 0xf8]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x41ae38
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x421d3a
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [0x478588]
test edi, edi
jne 0x41afc2
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xd2d3f022
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x41aec6
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x2be244a8
cmp cx, 2
jb 0x41aeb5
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x2be244a8
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x41aea2
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x41afa9
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x41af7e
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x41af7b
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 0x41af28
add edx, dword [esi + 0x18]
mov eax, 0x2be244a8
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x41af14
jmp 0x41af2d
mov eax, 0x2be244a8
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x41aef1
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 0x41afbc
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x41afbc
mov al, byte [edi]
mov ecx, 0x2be244a8
mov ebx, 0x2be244a8
cmp al, 0x2e
je 0x41af83
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x41af66
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x41afa9
mov al, byte [edi + 1]
test al, al
je 0x41afa4
add edi, 2
mov ecx, 0x2be244a8
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x41af92
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x41afbc
cmp dword [eax + 0x18], 0
jne 0x41ae70
mov dword [0x478588], edi
push 0
push dword [esi + 0x30]
call edi
mov dword [esi + 0x34], eax
mov edi, dword [0x47858c]
test edi, edi
jne 0x41b144
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0x25a2e3a
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x41b048
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x964fcd20
cmp cx, 2
jb 0x41b037
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x964fcd20
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x41b024
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x41b12b
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x41b100
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x41b0fd
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 0x41b0aa
add edx, dword [esi + 0x18]
mov eax, 0x964fcd20
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x41b096
jmp 0x41b0af
mov eax, 0x964fcd20
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x41b073
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 0x41b13e
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x41b13e
mov al, byte [edi]
mov ecx, 0x964fcd20
mov ebx, 0x964fcd20
cmp al, 0x2e
je 0x41b105
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x41b0e8
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x41b12b
mov al, byte [edi + 1]
test al, al
je 0x41b126
add edi, 2
mov ecx, 0x964fcd20
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x41b114
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x41b13e
cmp dword [eax + 0x18], 0
jne 0x41aff2
mov dword [0x47858c], edi
push 1
push dword [esi + 0x30]
call edi
mov dword [esi + 0x3c], eax
mov edi, dword [0x478590]
test edi, edi
jne 0x41b2c6
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xc5b53b15
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x41b1ca
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x9516e31d
cmp cx, 2
jb 0x41b1b9
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x9516e31d
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x41b1a6
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x41b2ad
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x41b282
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x41b27f
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 0x41b22c
add edx, dword [esi + 0x18]
mov eax, 0x9516e31d
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x41b218
jmp 0x41b231
mov eax, 0x9516e31d
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x41b1f5
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 0x41b2c0
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x41b2c0
mov al, byte [edi]
mov ecx, 0x9516e31d
mov ebx, 0x9516e31d
cmp al, 0x2e
je 0x41b287
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x41b26a
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x41b2ad
mov al, byte [edi + 1]
test al, al
je 0x41b2a8
add edi, 2
mov ecx, 0x9516e31d
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x41b296
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x41b2c0
cmp dword [eax + 0x18], 0
jne 0x41b174
mov dword [0x478590], edi
push 2
push dword [esi + 0x30]
call edi
mov dword [esi + 0xdc], eax
mov ebx, dword [0x478594]
test ebx, ebx
jne 0x41b44b
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0x8a92b5cd
xor edi, edi
mov dword [esi + 0x24], eax
test edi, edi
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], edi
mov dword [esi + 0x1c], eax
je 0x41b34f
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x24bcdafd
cmp cx, 2
jb 0x41b33e
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x24bcdafd
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x41b32b
mov edi, dword [esi + 0x20]
cmp edx, edi
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x41b432
mov ebx, dword [eax + 0x18]
mov eax, dword [ebx + 0x3c]
mov edx, dword [ebx + eax + 0x78]
test edx, edx
je 0x41b407
mov eax, dword [ebx + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [ebx + edx]
mov dword [esi + 0x10], eax
mov edi, dword [eax + 0x18]
lea eax, [ebx + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub edi, 1
jb 0x41b404
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 0x41b3b1
add edx, dword [esi + 0x18]
mov eax, 0x24bcdafd
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x41b39d
jmp 0x41b3b6
mov eax, 0x24bcdafd
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x41b37a
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 0x41b445
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, ebx
jbe 0x41b445
mov al, byte [ebx]
mov ecx, 0x24bcdafd
mov edi, 0x24bcdafd
cmp al, 0x2e
je 0x41b40c
movsx eax, al
xor eax, edi
imul edi, eax, 0x1000193
mov al, byte [ebx + 1]
inc ebx
jmp 0x41b3ef
mov edi, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x41b432
mov al, byte [ebx + 1]
test al, al
je 0x41b42d
add ebx, 2
mov ecx, 0x24bcdafd
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [ebx]
inc ebx
test al, al
jne 0x41b41b
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor ebx, ebx
cmp eax, dword [esi + 0x24]
je 0x41b445
cmp dword [eax + 0x18], 0
jne 0x41b2f9
mov dword [0x478594], ebx
push 1
push dword [esi + 0x30]
call ebx
mov dword [esi + 0x2c], eax
mov edi, dword [0x478598]
test edi, edi
jne 0x41b5d5
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xc10fa6f5
mov dword [esi + 0x24], eax
mov dword [esi + 0x1c], eax
xor eax, eax
test eax, eax
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], eax
je 0x41b4d1
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x6422ead5
cmp cx, 2
jb 0x41b4c3
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x6422ead5
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x41b4b0
mov eax, dword [esi + 0x20]
cmp edx, eax
mov ecx, dword [esi + 0xc]
jne 0x41b58c
mov eax, dword [esi + 0x1c]
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x41b589
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov eax, dword [eax + 0x18]
lea ebx, [edi + 1]
mov dword [esi + 0x18], ebx
mov dword [esi + 0x14], edx
sub eax, 1
jb 0x41b589
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 0x41b536
add edx, dword [esi + 0x18]
mov ebx, 0x6422ead5
movsx ecx, cl
xor ecx, ebx
imul ebx, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x41b522
jmp 0x41b53b
mov ebx, 0x6422ead5
mov ecx, dword [esi + 0xc]
cmp ebx, ecx
mov edx, dword [esi + 0x14]
jne 0x41b4ff
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 0x41b5cf
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x41b5cf
mov al, byte [edi]
mov ecx, 0x6422ead5
mov edx, 0x6422ead5
cmp al, 0x2e
je 0x41b591
movsx eax, al
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x41b574
mov eax, dword [esi + 0x20]
mov edi, dword [esi + 0x1c]
jmp 0x41b5b9
mov al, byte [edi + 1]
test al, al
je 0x41b5b2
add edi, 2
mov ecx, 0x6422ead5
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x41b5a0
mov eax, dword [esi + 0x24]
mov edi, dword [eax]
mov eax, edx
mov edx, dword [edi]
xor edi, edi
cmp edx, dword [esi + 0x24]
je 0x41b5cf
mov dword [esi + 0x1c], edx
cmp dword [edx + 0x18], 0
jne 0x41b47e
mov dword [0x478598], edi
push 2
push dword [esi + 0x30]
call edi
cmp eax, 0x1f
jne 0x41b5eb
cmp dword [esi + 0x2c], 0
je 0x41d4c6
push eax
push dword [esi + 0xdc]
lea eax, [esi + 0x2cc]
push eax
lea eax, [esi + 0x298]
push eax
call 0x410352
add esp, 0x10
xor ebx, ebx
mov dword [esi + 0x280], ebx
mov dword [esi + 0x290], ebx
mov eax, 0xf
mov dword [esi + 0x294], eax
mov byte [esi + 0x280], bl
mov edi, dword [esi + 0x34]
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ecx, [esi + 0x280]
push eax
push edi
call fcn.00450e50
mov dword [esi + 0x148], ebx
mov dword [esi + 0x158], ebx
mov eax, 0xf
mov dword [esi + 0x15c], eax
mov byte [esi + 0x148], bl
mov edi, dword [esi + 0x3c]
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ecx, [esi + 0x148]
push eax
push edi
call fcn.00450e50
lea eax, [esi + 0x132]
mov dword [eax + 0x10], ebx
xorps xmm0, xmm0
movups xmmword [eax], xmm0
mov word [esi + 0x130], 0x4d32
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 0x41b902
mov bl, byte [esi + eax + 0x130]
movzx edi, bl
mov dword [esi + 0x14], edi
lea edi, [ecx + 1]
mov dword [esi + 0x10], edi
cmp dword [esi + 0xc], edi
jae 0x41b74a
cmp ecx, eax
ja 0x41b90d
mov edx, dword [esi + 0xc]
lea edi, [edx + ecx]
cmp edi, eax
jbe 0x41b753
mov dword [esi + 0x18], edi
mov edi, dword [esi + 0xc]
lea edx, [ecx + 5]
cmp edi, edx
je 0x41b7ff
lea edx, [ecx + 9]
cmp edi, edx
je 0x41b821
lea edx, [ecx + 8]
cmp edi, edx
je 0x41b773
lea edx, [ecx + 6]
cmp dword [esi + 0xc], edx
jne 0x41b68e
lea edi, [eax + 0x4c0e6d78]
mov ebx, dword [esi + 0x14]
lea edx, [eax + ebx]
add edx, 0x4c0e6d78
and edi, ebx
mov byte [esi + 0xc], 0xb8
add edi, edi
sub edx, edi
lea edi, [eax - 0x76bdf99a]
and edi, ebx
add ebx, eax
add ebx, 0x89420666
add edi, edi
sub ebx, edi
add dl, byte [esi + 0xc]
add bl, dl
add bl, 0x36
mov byte [esi + eax + 0x130], bl
mov ebx, dword [esi + 0x18]
jmp 0x41b85a
jne 0x41b77b
mov edi, ecx
jmp 0x41b7e8
cmp edi, 0x10
je 0x41b783
mov dword [esi + 0x18], edi
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 0x10]
je 0x41b7ff
lea edi, [ecx + 2]
cmp dword [esi + 0xc], edi
jne 0x41b834
mov dword [esi + 0x10], ecx
jmp 0x41b821
lea edi, [ecx + 3]
cmp dword [esi + 0xc], edi
jne 0x41b7f3
lea edi, [eax - 0x3c0d2cae]
mov edx, dword [esi + 0x14]
and edi, edx
add edi, edi
lea ebx, [edx + eax]
add ebx, 0xc3f2d352
sub ebx, edi
add bl, 0xc2
mov byte [esi + eax + 0x130], bl
movzx edi, bl
not ecx
add ecx, eax
mov eax, ecx
sub eax, edi
lea ebx, [eax + 0x614b39c8]
and ebx, edx
add edx, eax
add edx, 0x614b39c8
add ebx, ebx
sub edx, ebx
add dl, 0x88
mov byte [esi + eax + 0x130], dl
mov eax, dword [esi + 0xc]
add edi, eax
sub ecx, edi
inc eax
mov dword [esi + 0xc], eax
mov bl, byte [esi + ecx + 0x12e]
add ecx, 0xfffffffe
mov eax, ecx
mov edi, dword [esi + 0x10]
movzx ecx, bl
add ecx, edi
add eax, ecx
mov ecx, edi
jmp 0x41b825
lea edi, [ecx + 7]
cmp dword [esi + 0xc], edi
jne 0x41b6c6
lea edi, [eax + 0x4e91397a]
mov ebx, dword [esi + 0x14]
lea ecx, [eax + ebx]
add ecx, 0x4e91397a
and edi, ebx
add edi, edi
sub ecx, edi
add cl, 0xaa
mov byte [esi + eax + 0x130], cl
dec eax
mov ecx, dword [esi + 0x10]
inc eax
cmp eax, 0x16
jb 0x41b6a1
jmp 0x41b909
lea edi, [ecx + 3]
cmp dword [esi + 0xc], edi
jne 0x41b866
mov ebx, dword [esi + 0xc]
lea edi, [eax - 0x21cac85a]
mov edx, dword [esi + 0x14]
add edx, eax
add edx, 0xde3537a6
and edi, dword [esi + 0x14]
add edi, edi
sub edx, edi
add dl, 0x76
mov dword [esi + 0xc], ebx
movzx edx, dl
not edx
add eax, edx
jmp 0x41b825
lea edi, [ecx + 7]
cmp dword [esi + 0xc], edi
je 0x41b783
lea edi, [eax - 0x62a7998a]
mov edx, dword [esi + 0x14]
add edx, eax
add edx, 0x9d586676
mov dword [esi + 0x1c], edx
and edi, dword [esi + 0x14]
add edi, edi
sub dword [esi + 0x1c], edi
mov edx, dword [esi + 0x1c]
add dl, 0xc6
mov dword [esi + 0x1c], edx
lea edi, [ecx + 8]
cmp dword [esi + 0xc], edi
je 0x41b74c
jbe 0x41b8c5
lea edi, [eax + 0x6650d1cc]
mov edx, dword [esi + 0x14]
lea ebx, [eax + edx]
add ebx, 0x6650d1cc
and edi, edx
add edi, edi
sub ebx, edi
add bl, 0x6c
mov dword [esi + 0x1c], ebx
jmp 0x41b8ea
lea edi, [ecx + 5]
cmp dword [esi + 0xc], edi
jne 0x41b8ea
lea edi, [eax - 0x398a60ac]
mov ebx, dword [esi + 0x14]
lea edx, [eax + ebx]
add edx, 0xc6759f54
and edi, ebx
mov byte [esi + 0xc], 0xb4
jmp 0x41b71b
cmp ecx, 9
ja 0x41b7ff
mov ebx, dword [esi + 0x1c]
mov byte [esi + eax + 0x130], bl
jmp 0x41b825
mov eax, 0x13d3dbe
jmp 0x41b912
xor eax, eax
jmp 0x41b912
mov eax, 0x164d748
add eax, esi
add eax, 0x130
mov dword [esi + 0x2c], eax
xor ebx, ebx
mov dword [esi + 0x40], ebx
mov dword [esi + 0x50], ebx
mov dword [esi + 0x54], 0xf
mov byte [esi + 0x40], bl
push 0x40
call fcn.004716fe
add esp, 4
mov dword [esi + 0x50], 0x32
mov dword [esi + 0x54], 0x3f
movaps xmm0, xmmword [str.________________]
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm0
movups xmmword [eax + 0x20], xmm0
mov word [eax + 0x30], 0x5f5f
mov byte [eax + 0x32], bl
mov dword [esi + 0x40], eax
lea eax, [esi + 0x9e]
xorps xmm0, xmm0
movups xmmword [eax + 0xc], xmm0
movups xmmword [eax], xmm0
mov word [esi + 0x9c], 0x508
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov ecx, dword [eax]
xor eax, eax
cmp edi, eax
ja 0x41bc5d
mov bl, byte [esi + eax + 0x9c]
mov dword [esi + 0x10], ecx
movzx ecx, bl
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x10]
lea edx, [ecx + 1]
mov dword [esi + 0x14], edx
cmp edi, edx
mov dword [esi + 0xc], edi
jae 0x41b9e0
cmp ecx, eax
ja 0x41bc68
mov edx, ebx
lea ebx, [edi + ecx]
cmp ebx, eax
mov dword [esi + 0x1c], ebx
jbe 0x41ba22
lea edi, [ecx + 0x10]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
jne 0x41ba9c
mov dword [esi + 0x14], ecx
jmp 0x41bb85
je 0x41ba92
lea edi, [ecx + 3]
cmp dword [esi + 0xc], edi
je 0x41ba2b
lea edi, [ecx + 5]
cmp dword [esi + 0xc], edi
jne 0x41bb76
lea edx, [eax + 0x47a80fd1]
mov edi, dword [esi + 0x18]
lea ebx, [eax + edi]
add ebx, 0x47a80fd1
and edx, edi
add edx, edx
sub ebx, edx
add bl, 0x49
mov edx, dword [esi + 0xc]
add edx, ecx
mov dword [esi + 0x1c], edx
jmp 0x41babf
cmp ebx, 1
jne 0x41baea
lea edi, [eax + 0x12b60c07]
mov edx, ecx
mov ecx, dword [esi + 0x18]
and edi, ecx
add edi, edi
lea ebx, [eax + ecx]
add ebx, 0x12b60c07
sub ebx, edi
mov edi, dword [esi + 0xc]
add bl, 0xcf
mov byte [esi + eax + 0x9c], bl
not edx
add edx, eax
movzx eax, bl
sub edx, eax
mov eax, edx
mov edx, dword [esi + 0x14]
mov dword [esi + 0x10], edx
lea edx, [eax + 0x487e5dc]
and edx, ecx
lea ebx, [eax + ecx]
add ebx, 0x487e5dc
add edx, edx
sub ebx, edx
add bl, 0xfc
mov byte [esi + eax + 0x9c], bl
sub eax, edi
inc edi
mov bl, byte [esi + eax + 0x9a]
add eax, 0xfffffffe
mov ecx, dword [esi + 0x10]
movzx edx, bl
add edx, ecx
jmp 0x41bbb6
lea edi, [ecx + 9]
cmp dword [esi + 0xc], edi
jne 0x41bb16
lea edx, [eax - 0x6ce94b7c]
mov edi, dword [esi + 0x18]
lea ebx, [eax + edi]
add ebx, 0x9316b484
and edx, edi
add edx, edx
sub ebx, edx
add bl, 0x64
lea edi, [eax + 0x2f12585d]
mov edx, dword [esi + 0x18]
and edi, edx
add edx, eax
add edx, 0x2f12585d
add edi, edi
sub edx, edi
add dl, bl
add dl, 0x75
mov byte [esi + eax + 0x9c], dl
mov edi, dword [esi + 0x1c]
jmp 0x41bbb1
cmp edi, dword [esi + 0x14]
jne 0x41bb40
lea edi, [eax + 0x4b6ea4b3]
mov ebx, dword [esi + 0x18]
lea ecx, [eax + ebx]
add ecx, 0x4b6ea4b3
and edi, ebx
add edi, edi
sub ecx, edi
mov edi, dword [esi + 0xc]
add cl, 0x1b
mov byte [esi + eax + 0x9c], cl
jmp 0x41bb85
lea edi, [ecx + 6]
cmp dword [esi + 0xc], edi
mov edx, ecx
mov ecx, dword [esi + 0x18]
jne 0x41bb8b
lea edx, [eax + 0x76ba682e]
and edx, ecx
lea ebx, [eax + ecx]
add ebx, 0x76ba682e
add edx, edx
sub ebx, edx
add bl, 0xbe
mov edi, dword [esi + 0x1c]
jmp 0x41bbae
lea edi, [ecx + 2]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
je 0x41bb85
lea edi, [ecx + 5]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
jne 0x41bbc7
lea edx, [eax - 0xb28e243]
mov ecx, dword [esi + 0x18]
lea ebx, [eax + ecx]
add ebx, 0xf4d71dbd
and edx, ecx
mov ecx, dword [esi + 0x10]
add edx, edx
sub ebx, edx
add bl, 0xd5
jmp 0x41bbb1
lea edi, [ecx + 7]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
jne 0x41b9b5
dec eax
mov ecx, dword [esi + 0x14]
jmp 0x41bbb8
lea edi, [edx + 4]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
jne 0x41bbda
lea edx, [eax + 0x5a5e1bd8]
lea ebx, [eax + ecx]
add ebx, 0x5a5e1bd8
and edx, ecx
add edx, edx
sub ebx, edx
add bl, 0x18
mov ecx, dword [esi + 0x10]
movzx edx, bl
not edx
add eax, edx
inc eax
cmp eax, 0x1e
jb 0x41b98d
jmp 0x41bc64
lea edi, [ecx + 6]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
jne 0x41bbed
mov ecx, dword [esi + 0x18]
jmp 0x41ba63
lea edi, [edx + 2]
cmp dword [esi + 0xc], edi
mov ecx, edx
je 0x41ba2b
jmp 0x41b97d
mov ebx, edx
lea edi, [ecx + 4]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
je 0x41ba92
test edi, edi
je 0x41bc2a
lea edi, [eax + 0x3d407e88]
mov edx, dword [esi + 0x18]
add edx, eax
add edx, 0x3d407e88
mov dword [esi + 0xc], edx
and edi, dword [esi + 0x18]
add edi, edi
mov edx, dword [esi + 0xc]
sub edx, edi
add bl, dl
add bl, 0x48
jmp 0x41babf
test ecx, ecx
jne 0x41baef
lea edx, [eax - 0xe2e262b]
mov edi, dword [esi + 0x18]
lea ecx, [eax + edi]
add ecx, 0xf1d1d9d5
and edx, edi
add edx, edx
sub ecx, edx
add cl, 0x2d
mov byte [esi + eax + 0x9c], cl
xor edi, edi
xor ecx, ecx
jmp 0x41bbb8
mov eax, 0xd034f1
jmp 0x41bc6d
xor eax, eax
jmp 0x41bc6d
mov eax, 0x17e5b1c
add eax, esi
add eax, 0x9c
mov dword [esi + 0x28], eax
mov dword [esi + 0xbc], 0xb48b9dda
mov dword [esi + 0xc0], 0x8985b2b7
mov dword [esi + 0xc4], 0x13f2d3b8
lea eax, [esi + 0xc8]
xorps xmm0, xmm0
movups xmmword [eax], xmm0
mov byte [eax + 0x10], 0
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov ebx, dword [eax]
xor eax, eax
cmp edi, eax
ja 0x41bea2
mov dl, byte [esi + eax + 0xbc]
mov dword [esi + 0x10], ebx
movzx ecx, dl
mov dword [esi + 0x14], ecx
mov ebx, dword [esi + 0x10]
lea ecx, [ebx + 1]
mov dword [esi + 0xc], edi
cmp edi, ecx
jb 0x41bcec
jne 0x41bce4
mov edi, dword [esi + 0xc]
jmp 0x41bd9b
lea edx, [ebx + 2]
cmp dword [esi + 0xc], edx
je 0x41bd33
cmp ebx, eax
ja 0x41bead
mov edi, dword [esi + 0xc]
lea edx, [edi + ebx]
cmp edx, eax
jbe 0x41bd2e
lea edx, [ebx + 3]
cmp edi, edx
je 0x41bdab
lea edx, [ebx + 0x10]
cmp edi, edx
je 0x41bdcf
lea edx, [ebx + 4]
cmp edi, edx
jne 0x41be09
mov edx, 0x833bbae0
mov ebx, 0x30
jmp 0x41be29
cmp edx, 0x10
jne 0x41bda4
lea edi, [eax + 0x3f31f9e]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x14]
and edi, ecx
add edi, edi
lea edx, [ecx + eax]
add edx, 0x3f31f9e
sub edx, edi
add dl, 0xae
mov byte [esi + eax + 0xbc], dl
not ebx
add ebx, eax
movzx eax, dl
sub ebx, eax
mov eax, ebx
mov edx, dword [esi + 0x18]
mov dword [esi + 0x10], edx
mov edi, dword [esi + 0xc]
lea edx, [eax + 0x5c828df8]
and edx, ecx
lea ebx, [eax + ecx]
add ebx, 0x5c828df8
add edx, edx
sub ebx, edx
add bl, 0x38
mov byte [esi + eax + 0xbc], bl
sub eax, edi
inc edi
mov dl, byte [esi + eax + 0xba]
add eax, 0xfffffffe
mov ebx, dword [esi + 0x10]
movzx edx, dl
add edx, ebx
add eax, edx
jmp 0x41bdd7
mov edi, dword [esi + 0xc]
cmp edi, ecx
jne 0x41bde6
lea edx, [eax - 0x5e4a99ca]
mov edi, dword [esi + 0x14]
mov ebx, ecx
lea ecx, [edi + eax]
add ecx, 0xa1b56636
and edx, edi
add edx, edx
sub ecx, edx
add cl, 0x86
mov byte [esi + eax + 0xbc], cl
mov ecx, ebx
dec eax
mov ebx, ecx
mov edi, dword [esi + 0xc]
inc eax
cmp eax, 0x1d
jb 0x41bcb5
jmp 0x41bea9
mov dword [esi + 0x18], edx
lea edx, [ebx + 2]
cmp edi, edx
je 0x41bdd1
lea edx, [ebx + 3]
mov edi, dword [esi + 0xc]
cmp edi, edx
jne 0x41be18
mov edx, 0x8fc79b3c
mov ebx, 0xf6
mov edi, dword [esi + 0x18]
jmp 0x41be29
lea edx, [ebx + 8]
cmp edi, edx
jne 0x41be47
mov ecx, dword [esi + 0x14]
jmp 0x41bd6c
lea edx, [ebx + 5]
cmp edi, edx
jne 0x41be6d
mov edx, 0x40e67804
mov ebx, 0xaa
add ebx, eax
mov ecx, dword [esi + 0x14]
and ebx, ecx
add ecx, eax
add ecx, edx
add ebx, ebx
sub ecx, ebx
not ecx
or ecx, 0xffffff00
add eax, ecx
mov ebx, dword [esi + 0x10]
jmp 0x41bdd7
lea edi, [ebx + 0x1000]
lea edx, [ebx + 0x1001]
add ebx, 0x1009
mov eax, 0
cmp edi, ebx
mov ebx, edx
jae 0x41bcb5
jmp 0x41bca5
lea edx, [ebx + 7]
cmp edi, edx
je 0x41bdcf
lea edi, [eax + 0x588f6e5a]
mov ecx, dword [esi + 0x14]
lea edx, [eax + ecx]
add edx, 0x588f6e5a
and edi, ecx
mov ebx, dword [esi + 0x10]
add edi, edi
sub edx, edi
add dl, 0x8a
mov byte [esi + eax + 0xbc], dl
jmp 0x41bdd4
mov eax, 0xed92d2
jmp 0x41beb2
xor eax, eax
jmp 0x41beb2
mov eax, 0x15e2478
add eax, esi
add eax, 0xbc
mov dword [esi + 0x24], eax
mov dword [esi + 0x160], 0xc2c9a57c
mov dword [esi + 0x164], 0x9fb6c3c1
mov byte [esi + 0x168], 0x7e
lea eax, [esi + 0x169]
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov word [eax + 8], 0
call fcn.0046d640
mov eax, dword [eax]
mov dword [esi + 0xc], eax
call fcn.0046d646
mov edx, dword [eax]
xor eax, eax
cmp dword [esi + 0xc], eax
ja 0x41c253
mov cl, byte [esi + eax + 0x160]
movzx edi, cl
lea ebx, [edx + 1]
mov dword [esi + 0x10], ebx
cmp dword [esi + 0xc], ebx
jae 0x41bf7f
cmp edx, eax
ja 0x41c25e
mov dword [esi + 0x14], edi
mov dword [esi + 0x18], ecx
lea ecx, [edx + 8]
cmp dword [esi + 0xc], ecx
jae 0x41c00e
mov edi, edx
mov edx, dword [esi + 0xc]
add edx, edi
cmp edx, eax
jbe 0x41c054
lea ecx, [edi + 0x10]
cmp dword [esi + 0xc], ecx
je 0x41c0b5
lea ecx, [edi + 9]
cmp dword [esi + 0xc], ecx
jne 0x41c0eb
mov dword [esi + 0x10], edi
lea ecx, [eax + 0x1536ccc]
mov edi, dword [esi + 0x14]
lea ebx, [eax + edi]
add ebx, 0x1536ccc
and ecx, edi
add ecx, ecx
sub ebx, ecx
add bl, 0x6c
jmp 0x41c1ed
jne 0x41bf85
mov edi, edx
jmp 0x41c000
mov dword [esi + 0x14], edi
lea edi, [edx + 2]
cmp dword [esi + 0xc], edi
jne 0x41c083
mov ecx, edx
lea edx, [eax + 0x7ccf28c5]
mov edi, dword [esi + 0x14]
and edx, edi
add edx, edx
lea ebx, [eax + edi]
add ebx, 0x7ccf28c5
sub ebx, edx
add bl, 0x9d
mov byte [esi + eax + 0x160], bl
movzx edx, bl
not ecx
add ecx, eax
mov eax, ecx
sub eax, edx
lea edi, [eax + 0x36333054]
mov ebx, dword [esi + 0x14]
and edi, ebx
add ebx, eax
add ebx, 0x36333054
add edi, edi
sub ebx, edi
add bl, 0xb4
mov byte [esi + eax + 0x160], bl
mov eax, dword [esi + 0xc]
add edx, eax
inc eax
mov dword [esi + 0xc], eax
sub ecx, edx
mov dl, byte [esi + ecx + 0x15e]
add ecx, 0xfffffffe
mov eax, ecx
mov ecx, edx
mov edi, dword [esi + 0x10]
movzx edx, cl
add edx, edi
add eax, edx
mov edx, edi
jmp 0x41c21d
mov edi, dword [esi + 0xc]
cmp edi, dword [esi + 0x10]
je 0x41c05c
mov edi, edx
add edx, 2
cmp dword [esi + 0xc], edx
je 0x41c0b5
lea edx, [edi + 4]
cmp dword [esi + 0xc], edx
jne 0x41c178
lea ecx, [eax - 0x1a1b0691]
mov ebx, dword [esi + 0x14]
lea edx, [eax + ebx]
add edx, 0xe5e4f96f
and ecx, ebx
add ecx, ecx
sub edx, ecx
mov ecx, edx
add cl, 0xf7
mov edx, edi
jmp 0x41c216
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 0x10]
jne 0x41c0ad
lea edi, [eax - 0x68c0f577]
mov ecx, dword [esi + 0x14]
lea edx, [ecx + eax]
add edx, 0x973f0a89
and edi, ecx
add edi, edi
sub edx, edi
add dl, 0x41
mov byte [esi + eax + 0x160], dl
mov edx, dword [esi + 0x10]
jmp 0x41c0b7
lea edi, [edx + 3]
cmp dword [esi + 0xc], edi
jne 0x41c0bd
lea ecx, [eax - 0x7b7bbbf9]
mov ebx, dword [esi + 0x14]
lea edi, [eax + ebx]
add edi, 0x84844407
and ecx, ebx
add ecx, ecx
sub edi, ecx
mov ecx, edi
add cl, 0xcf
jmp 0x41c216
lea edx, [edi + 2]
cmp dword [esi + 0xc], edx
jne 0x41c11b
mov edx, edi
dec eax
jmp 0x41c21d
lea edi, [edx + 5]
cmp dword [esi + 0xc], edi
jne 0x41c150
lea ecx, [eax - 0x8b3acdb]
mov ebx, dword [esi + 0x14]
lea edi, [eax + ebx]
add edi, 0xf74c5325
and ecx, ebx
add ecx, ecx
sub edi, ecx
mov ecx, edi
add cl, 0xfd
jmp 0x41c213
lea edx, [edi + 2]
cmp dword [esi + 0xc], edx
jne 0x41c199
lea ecx, [eax + 0x741b7bea]
mov ebx, dword [esi + 0x14]
lea edx, [eax + ebx]
add edx, 0x741b7bea
and ecx, ebx
add ecx, ecx
sub edx, ecx
mov ecx, edx
add cl, 0x9a
mov edx, edi
jmp 0x41c213
lea edx, [edi + 7]
cmp dword [esi + 0xc], edx
mov edx, edi
je 0x41bf94
cmp dword [esi + 0xc], ecx
je 0x41c18f
cmp dword [esi + 0xc], 3
ja 0x41c1ca
lea ecx, [edx + 3]
cmp dword [esi + 0xc], ecx
jne 0x41c229
mov dword [esi + 0xc], 3
jmp 0x41c0b7
lea edi, [edx + 6]
cmp dword [esi + 0xc], edi
jne 0x41c1b6
mov dword [esi + 0x10], edx
lea ecx, [eax + 0x6a146243]
mov edi, dword [esi + 0x14]
lea ebx, [eax + edi]
add ebx, 0x6a146243
and ecx, edi
add ecx, ecx
sub ebx, ecx
add bl, 0x2b
jmp 0x41c1ed
lea edx, [edi + 3]
cmp dword [esi + 0xc], edx
mov edx, edi
je 0x41bf94
cmp dword [esi + 0xc], ecx
jne 0x41bf35
mov edi, edx
mov ecx, dword [esi + 0x18]
jmp 0x41c000
lea edx, [edi + 4]
add edi, 7
mov eax, 0
mov dword [esi + 0xc], edx
cmp edx, ecx
mov edx, edi
jae 0x41befd
jmp 0x41beea
lea edi, [edx + 7]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0x14]
jne 0x41bf1b
jmp 0x41c0b7
mov dword [esi + 0x10], edx
lea edx, [eax + 0x50a31218]
mov edi, dword [esi + 0x14]
lea ecx, [eax + edi]
add ecx, 0x50a31218
and edx, edi
add edx, edx
sub ecx, edx
mov ebx, dword [esi + 0x18]
add bl, cl
add bl, 0x58
lea edx, [eax + 0xa0719a7]
and edx, edi
lea ecx, [edi + eax]
add ecx, 0xa0719a7
add edx, edx
sub ecx, edx
add cl, bl
add cl, 0x6f
mov byte [esi + eax + 0x160], cl
mov edx, dword [esi + 0x10]
mov ecx, ebx
add dword [esi + 0xc], edx
movzx ecx, cl
not ecx
add eax, ecx
inc eax
cmp eax, 0x13
jb 0x41befd
jmp 0x41c25a
mov dword [esi + 0x10], edx
lea edx, [eax - 0x469bf871]
mov edi, dword [esi + 0x14]
lea ecx, [eax + edi]
add ecx, 0xb964078f
and edx, edi
add edx, edx
sub ecx, edx
mov edx, dword [esi + 0x10]
add cl, 0x17
mov byte [esi + eax + 0x160], cl
jmp 0x41c21d
mov eax, 0x591ba3
jmp 0x41c263
xor eax, eax
jmp 0x41c263
mov eax, 0x1751414
add eax, esi
add eax, 0x160
mov dword [esi + 0x20], eax
xorps xmm0, xmm0
lea eax, [esi + 0x19e]
movups xmmword [eax + 9], xmm0
movups xmmword [eax], xmm0
mov dword [esi + 0x198], 0xa5c8c33d
mov word [esi + 0x19c], 0xe98a
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov ecx, edi
mov ebx, dword [eax]
xor eax, eax
cmp ecx, eax
ja 0x41c4f6
mov dl, byte [esi + eax + 0x198]
mov byte [esi + 0x10], dl
movzx edx, dl
lea edi, [ebx + 1]
cmp ecx, edi
mov dword [esi + 0xc], ecx
jae 0x41c2ea
cmp ebx, eax
ja 0x41c501
mov dword [esi + 0x14], edi
lea edi, [ecx + ebx]
mov dword [esi + 0x18], edi
cmp edi, eax
mov edi, ebx
mov ebx, ecx
jbe 0x41c313
lea ecx, [edi + 4]
cmp ebx, ecx
jne 0x41c358
mov ecx, ebx
mov ebx, edi
jmp 0x41c498
je 0x41c346
mov dword [esi + 0x14], edi
lea edi, [ebx + 2]
cmp ecx, edi
jne 0x41c3c1
lea ecx, [eax + 0x25]
and ecx, edx
add ecx, ecx
add edx, eax
sub edx, ecx
mov ecx, dword [esi + 0xc]
add edx, 0x2815e522
jmp 0x41c3e5
mov dword [esi + 0x1c], edi
lea ecx, [edi + 0xa]
cmp ebx, ecx
jbe 0x41c37f
lea ecx, [eax + 0x2c229889]
lea ebx, [eax + edx]
add ebx, 0x2c229889
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x41
mov edi, ebx
mov ebx, dword [esi + 0x1c]
mov ecx, dword [esi + 0x14]
cmp dword [esi + 0xc], ecx
jne 0x41c3f4
mov cl, byte [esi + 0x10]
movzx ecx, cl
add ecx, ebx
add eax, ecx
mov ecx, dword [esi + 0xc]
jmp 0x41c499
lea ecx, [edi + 2]
cmp dword [esi + 0xc], ecx
jne 0x41c290
mov ebx, edi
lea ecx, [eax + 0x98]
and ecx, edx
add ecx, ecx
add edx, eax
sub edx, ecx
mov ecx, dword [esi + 0xc]
add edx, 0x6bce8d70
jmp 0x41c3e5
mov edi, dword [esi + 0x14]
cmp ebx, edi
mov ebx, dword [esi + 0x1c]
je 0x41c474
lea ecx, [ebx + 3]
cmp dword [esi + 0xc], ecx
mov ecx, dword [esi + 0xc]
je 0x41c498
lea ecx, [ebx + 5]
cmp dword [esi + 0xc], ecx
jne 0x41c4b0
lea ecx, [eax + 0xeb]
and ecx, edx
add ecx, ecx
add edx, eax
sub edx, ecx
add edx, 0xca73cf7e
mov ecx, dword [esi + 0x18]
jmp 0x41c3e5
lea edi, [ebx + 3]
cmp ecx, edi
jne 0x41c466
lea ecx, [eax + 0x9f]
and ecx, edx
add ecx, ecx
add edx, eax
sub edx, ecx
mov ecx, dword [esi + 0xc]
add edx, 0x148c8946
add ecx, ebx
not edx
or edx, 0xffffff00
add eax, edx
jmp 0x41c499
lea ecx, [ebx + 3]
cmp dword [esi + 0xc], ecx
mov ecx, dword [esi + 0xc]
jne 0x41c4a5
lea edi, [eax + 0x6acb5f7f]
and edi, edx
add edi, edi
lea ecx, [eax + edx]
add ecx, 0x6acb5f7f
sub ecx, edi
add cl, 0x87
mov byte [esi + eax + 0x198], cl
not ebx
add ebx, eax
movzx eax, cl
sub ebx, eax
mov eax, ebx
mov ebx, dword [esi + 0x14]
lea ecx, [eax - 0x1ef94e44]
and ecx, edx
add edx, eax
add edx, 0xe106b1bc
add ecx, ecx
sub edx, ecx
add dl, 0xdc
mov byte [esi + eax + 0x198], dl
mov ecx, dword [esi + 0xc]
sub eax, ecx
inc ecx
mov dword [esi + 0xc], ecx
mov cl, byte [esi + eax + 0x196]
add eax, 0xfffffffe
jmp 0x41c349
lea edi, [ebx + 4]
cmp ecx, edi
mov edi, dword [esi + 0x14]
jne 0x41c2c1
mov ebx, edi
lea edi, [eax - 0x6e21e975]
lea ecx, [edx + eax]
add ecx, 0x91de168b
and edi, edx
add edi, edi
sub ecx, edi
add cl, 0x33
mov byte [esi + eax + 0x198], cl
mov ecx, dword [esi + 0xc]
dec eax
inc eax
cmp eax, 0x1f
jb 0x41c2a2
jmp 0x41c4fd
mov edx, edi
mov byte [esi + eax + 0x198], dl
jmp 0x41c499
lea ecx, [ebx + 4]
cmp dword [esi + 0xc], ecx
mov edi, dword [esi + 0xc]
je 0x41c403
lea ecx, [ebx + 7]
cmp edi, ecx
je 0x41c430
lea ecx, [ebx + 2]
cmp edi, ecx
je 0x41c346
lea ecx, [eax + 0x763b523d]
lea edi, [eax + edx]
add edi, 0x763b523d
and ecx, edx
add ecx, ecx
sub edi, ecx
mov ecx, edi
add cl, 0x55
mov edi, ecx
jmp 0x41c33a
mov eax, 0x569339
jmp 0x41c506
xor eax, eax
jmp 0x41c506
mov eax, 0x15b40fc
add eax, esi
add eax, 0x198
mov dword [esi + 0x18], 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 + 0x290]
mov eax, closesocket
sub eax, ecx
cmp eax, edi
jb 0x421d35
mov edx, dword [esi + 0x280]
mov eax, dword [esi + 0x294]
mov dword [esi + 0xe0], 0
mov dword [esi + 0x1c], ecx
add ecx, edi
mov dword [esi + 0x14], 0xf
lea ebx, [esi + 0xe0]
cmp ecx, 0x10
mov dword [esi + 0x10], ecx
jb 0x41c5b7
mov dword [esi + 0x34], eax
mov eax, ecx
or eax, 0xf
mov dword [esi + 0xc], edx
js 0x41c591
cmp eax, 0x17
mov ebx, 0x16
mov dword [esi + 0x14], eax
cmovae ebx, eax
lea eax, [ebx + 1]
cmp ebx, 0xfff
jae 0x41c59d
mov dword [esi + 0x14], ebx
push eax
call fcn.004716fe
jmp 0x41c5a3
mov dword [esi + 0x14], closesocket
mov eax, closesocket
push eax
call fcn.0040130b
add esp, 4
mov ebx, eax
mov dword [esi + 0xe0], eax
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x34]
cmp eax, 0x10
lea eax, [esi + 0x280]
cmovb edx, eax
mov dword [esi + 0xc], edx
mov dword [esi + 0xf0], ecx
mov eax, dword [esi + 0x14]
mov dword [esi + 0xf4], eax
push edi
push dword [esi + 0x18]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, ebx
push dword [esi + 0x1c]
push dword [esi + 0xc]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x10]
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 + 0xf0]
mov edi, dword [esi + 0xf4]
mov eax, edi
sub eax, ebx
cmp eax, ecx
jae 0x41c6f9
mov eax, closesocket
sub eax, ebx
cmp eax, ecx
jb 0x421d35
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 0x41c678
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 0x41c678
add edx, edi
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x41d3cb
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 + 0xf0], eax
mov dword [esi + 0xf4], edx
cmp edi, 0x10
jb 0x41c72d
mov eax, dword [esi + 0xe0]
push ebx
mov dword [esi + 0x18], 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 0x41c75a
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x421d3a
add edi, 0x24
mov ecx, edi
jmp 0x41c75d
mov edx, edi
mov edi, ecx
add edi, ebx
mov dword [esi + 0xf0], edi
lea eax, [esi + 0xe0]
cmp edx, 0x10
jb 0x41c716
mov eax, dword [esi + 0xe0]
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 0x41c76f
push ebx
lea eax, [esi + 0xe0]
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 0x41c769
mov eax, dword [esi + 0x18]
push ecx
push eax
call fcn.00471733
add esp, 8
mov edi, ebx
mov dword [esi + 0xe0], edi
movsd xmm0, qword [esi + 0xf0]
movsd qword [esi + 0x70], xmm0
movups xmm0, xmmword [esi + 0xe0]
movaps xmmword [esi + 0x60], xmm0
mov dword [esi + 0xf0], 0
mov dword [esi + 0xf4], 0xf
mov byte [esi + 0xe0], 0
mov ecx, dword [esi + 0x158]
cmp dword [esi + 0x15c], 0x10
lea edx, [esi + 0x148]
jb 0x41c7bd
mov edx, dword [esi + 0x148]
mov edi, dword [esi + 0x70]
mov eax, dword [esi + 0x74]
mov dword [esi + 0xc], eax
sub eax, edi
cmp eax, ecx
jae 0x41c8a4
mov eax, closesocket
sub eax, edi
cmp eax, ecx
jb 0x421d35
mov dword [esi + 0x1c], edx
mov dword [esi + 0x18], ecx
add ecx, edi
mov dword [esi + 0x10], ecx
or ecx, 0xf
mov dword [esi + 0x14], closesocket
mov eax, closesocket
js 0x41c82c
mov eax, dword [esi + 0xc]
mov edx, eax
shr edx, 1
mov ebx, edx
xor ebx, 0x7fffffff
cmp ebx, eax
mov eax, closesocket
jb 0x41c82c
add edx, dword [esi + 0xc]
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x41d3e9
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 + 0x70], eax
mov dword [esi + 0x74], edx
cmp dword [esi + 0xc], 0x10
jb 0x41c8d1
mov eax, dword [esi + 0x60]
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 + 0x18]
push dword [esi + 0x1c]
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 0x41c8fb
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x421d3a
mov ecx, dword [esi + 0xc]
add ecx, 0x24
jmp 0x41c8fe
lea ebx, [edi + ecx]
mov eax, ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x70], ebx
lea ebx, [esi + 0x60]
cmp dword [esi + 0xc], 0x10
jb 0x41c8bb
mov ebx, dword [esi + 0x60]
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 0x41c90d
push edi
lea eax, [esi + 0x60]
push eax
push ecx
mov ebx, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, ebx
push dword [esi + 0x18]
push dword [esi + 0x1c]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x10]
mov byte [ebx + eax], 0
jmp 0x41c90a
mov eax, dword [esi + 0x14]
push ecx
push eax
call fcn.00471733
add esp, 8
mov ebx, edi
mov dword [esi + 0x60], ebx
movsd xmm0, qword [esi + 0x70]
movsd qword [esi + 0x90], xmm0
movaps xmm0, xmmword [esi + 0x60]
movaps xmmword [esi + 0x80], xmm0
mov dword [esi + 0x70], 0
mov dword [esi + 0x74], 0xf
mov byte [esi + 0x60], 0
push dword [esi + 0x24]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ecx, eax
mov ebx, dword [esi + 0x90]
mov edi, dword [esi + 0x94]
mov eax, edi
sub eax, ebx
cmp eax, ecx
jae 0x41ca36
mov eax, closesocket
sub eax, ebx
cmp eax, ecx
jb 0x421d35
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 0x41c9b5
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 0x41c9b5
add edx, edi
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x41d407
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 + 0x90], eax
mov dword [esi + 0x94], edx
cmp edi, 0x10
jb 0x41ca6a
mov eax, dword [esi + 0x80]
push ebx
mov dword [esi + 0x18], 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 + 0x24]
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 0x41ca97
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x421d3a
add edi, 0x24
mov ecx, edi
jmp 0x41ca9a
mov edx, edi
mov edi, ecx
add edi, ebx
mov dword [esi + 0x90], edi
lea eax, [esi + 0x80]
cmp edx, 0x10
jb 0x41ca53
mov eax, dword [esi + 0x80]
add ebx, eax
push ecx
push dword [esi + 0x24]
push ebx
mov ebx, eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebx + edi], 0
jmp 0x41caac
push ebx
lea eax, [esi + 0x80]
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 + 0x24]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0xc]
mov byte [edi + eax], 0
jmp 0x41caa6
mov eax, dword [esi + 0x18]
push ecx
push eax
call fcn.00471733
add esp, 8
mov edi, ebx
mov dword [esi + 0x80], edi
movsd xmm0, qword [esi + 0x90]
movsd qword [esi + 0x120], xmm0
movaps xmm0, xmmword [esi + 0x80]
movaps xmmword [esi + 0x110], xmm0
mov dword [esi + 0x90], 0
mov dword [esi + 0x94], 0xf
mov byte [esi + 0x80], 0
mov ecx, dword [esi + 0x2a8]
cmp dword [esi + 0x2ac], 0x10
lea edx, [esi + 0x298]
jb 0x41cb00
mov edx, dword [esi + 0x298]
mov edi, dword [esi + 0x120]
mov eax, dword [esi + 0x124]
mov dword [esi + 0xc], eax
sub eax, edi
cmp eax, ecx
jae 0x41cbf6
mov eax, closesocket
sub eax, edi
cmp eax, ecx
jb 0x421d35
mov dword [esi + 0x1c], edx
mov dword [esi + 0x18], ecx
add ecx, edi
mov dword [esi + 0x10], ecx
or ecx, 0xf
mov dword [esi + 0x14], closesocket
mov eax, closesocket
js 0x41cb75
mov eax, dword [esi + 0xc]
mov edx, eax
shr edx, 1
mov ebx, edx
xor ebx, 0x7fffffff
cmp ebx, eax
mov eax, closesocket
jb 0x41cb75
add edx, dword [esi + 0xc]
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x41d425
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 + 0x120], eax
mov dword [esi + 0x124], edx
cmp dword [esi + 0xc], 0x10
jb 0x41cc2c
mov eax, dword [esi + 0x110]
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 + 0x18]
push dword [esi + 0x1c]
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 0x41cc59
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x421d3a
mov ecx, dword [esi + 0xc]
add ecx, 0x24
jmp 0x41cc5c
lea ebx, [edi + ecx]
mov eax, ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x120], ebx
lea ebx, [esi + 0x110]
cmp dword [esi + 0xc], 0x10
jb 0x41cc16
mov ebx, dword [esi + 0x110]
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 0x41cc6e
push edi
lea eax, [esi + 0x110]
push eax
push ecx
mov ebx, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, ebx
push dword [esi + 0x18]
push dword [esi + 0x1c]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x10]
mov byte [ebx + eax], 0
jmp 0x41cc68
mov eax, dword [esi + 0x14]
push ecx
push eax
call fcn.00471733
add esp, 8
mov ebx, edi
mov dword [esi + 0x110], ebx
movsd xmm0, qword [esi + 0x120]
movsd qword [esi + 0x270], xmm0
movaps xmm0, xmmword [esi + 0x110]
movaps xmmword [esi + 0x260], xmm0
mov dword [esi + 0x120], 0
mov dword [esi + 0x124], 0xf
mov byte [esi + 0x110], 0
push dword [esi + 0x28]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ecx, eax
mov ebx, dword [esi + 0x270]
mov edx, dword [esi + 0x274]
mov eax, edx
sub eax, ebx
cmp eax, ecx
jae 0x41cdb5
mov eax, closesocket
sub eax, ebx
cmp eax, ecx
jb 0x421d35
mov dword [esi + 0x18], 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 0x41cd2c
mov eax, edx
shr edx, 1
mov edi, edx
xor edi, 0x7fffffff
cmp edi, eax
mov eax, closesocket
mov edi, dword [esi + 0x10]
jb 0x41cd2c
add edx, dword [esi + 0xc]
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x41d43f
mov dword [esi + 0x14], edx
push eax
call fcn.0040130b
add esp, 4
mov ecx, eax
mov edx, dword [esi + 0x14]
mov dword [esi + 0x270], edi
mov dword [esi + 0x274], edx
mov edi, dword [esi + 0xc]
cmp edi, 0x10
jb 0x41cded
mov eax, dword [esi + 0x260]
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 + 0x18]
push dword [esi + 0x28]
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 0x41ce22
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
lea edi, [esi + 0x180]
jae 0x421d3a
add edx, 0x24
mov ecx, edx
jmp 0x41ce2b
mov edi, ecx
add edi, ebx
mov dword [esi + 0x270], edi
lea eax, [esi + 0x260]
cmp edx, 0x10
jb 0x41cdd0
mov eax, dword [esi + 0x260]
add ebx, eax
push ecx
push dword [esi + 0x28]
push ebx
mov ebx, eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebx + edi], 0
lea edi, [esi + 0x180]
jmp 0x41ce3b
push ebx
lea eax, [esi + 0x260]
push eax
push ecx
mov edi, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, edi
push dword [esi + 0x18]
push dword [esi + 0x28]
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 + 0x180]
jmp 0x41ce35
lea edi, [esi + 0x180]
mov eax, dword [esi + 0x14]
push ecx
push eax
call fcn.00471733
add esp, 8
mov dword [esi + 0x260], ebx
movsd xmm0, qword [esi + 0x270]
movsd qword [esi + 0x230], xmm0
movaps xmm0, xmmword [esi + 0x260]
movaps xmmword [esi + 0x220], xmm0
mov dword [esi + 0x270], 0
mov dword [esi + 0x274], 0xf
mov byte [esi + 0x260], 0
sub esp, 0xc
mov al, byte [esi + 0x240]
mov byte [esp], al
lea eax, [esi + 0x40]
mov dword [esp + 8], eax
lea eax, [esi + 0x220]
mov dword [esp + 4], eax
mov ecx, edi
call fcn.00451d58
push dword [esi + 0x2c]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ebx, dword [esi + 0x190]
mov edx, dword [esi + 0x194]
mov ecx, edx
sub ecx, ebx
cmp ecx, eax
jae 0x41cf97
mov ecx, closesocket
sub ecx, ebx
cmp ecx, eax
jb 0x421d35
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 0x41cf18
mov eax, edx
shr edx, 1
mov edi, edx
xor edi, 0x7fffffff
cmp edi, eax
mov eax, closesocket
mov edi, closesocket
jb 0x41cf18
add edx, dword [esi + 0x10]
cmp ecx, edx
mov edi, edx
cmovae edi, ecx
lea eax, [edi + 1]
cmp eax, 0x1000
jb 0x41d459
push eax
call fcn.0040130b
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x190], eax
mov dword [esi + 0x194], edi
mov eax, dword [esi + 0x10]
cmp eax, 0x10
jb 0x41cfc5
mov edx, dword [esi + 0x180]
push ebx
mov dword [esi + 0x18], 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 + 0x2c]
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 0x41cff7
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x421d3a
add edx, 0x24
mov ecx, edx
jmp 0x41cffa
mov ecx, edi
mov edi, eax
add edi, ebx
mov dword [esi + 0x190], edi
cmp edx, 0x10
jb 0x41cfae
mov ecx, dword [esi + 0x180]
add ebx, ecx
push eax
push dword [esi + 0x2c]
push ebx
mov ebx, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebx + edi], 0
jmp 0x41d00a
push ebx
lea eax, [esi + 0x180]
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 + 0x2c]
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 0x41d004
mov eax, dword [esi + 0x18]
push ecx
push eax
call fcn.00471733
add esp, 8
mov dword [esi + 0x180], ebx
movsd xmm0, qword [esi + 0x190]
movsd qword [esi + 0x250], xmm0
movups xmm0, xmmword [esi + 0x180]
movaps xmmword [esi + 0x240], xmm0
mov dword [esi + 0x190], 0
mov dword [esi + 0x194], 0xf
mov byte [esi + 0x180], 0
mov eax, dword [esi + 0x254]
mov dword [esi + 0x14], eax
cmp eax, 0x10
mov edi, dword [esi + 0x240]
lea eax, [esi + 0x240]
cmovae eax, edi
mov dword [esi + 0x10], eax
mov ebx, dword [esi + 0x108]
mov ecx, dword [esi + 0x10c]
mov eax, ecx
sub eax, ebx
mov edx, dword [esi + 0x250]
cmp eax, edx
mov dword [esi + 0xc], edi
jae 0x41d168
mov dword [esi + 0x18], ecx
mov eax, closesocket
sub eax, ebx
cmp eax, edx
jb 0x421d35
mov dword [esi + 0x20], edx
lea ecx, [ebx + edx]
mov dword [esi + 0x1c], ecx
or ecx, 0xf
mov dword [esi + 0x24], closesocket
mov eax, closesocket
js 0x41d0e0
mov dword [esi + 0x28], ebx
mov ebx, dword [esi + 0x18]
mov edx, ebx
shr edx, 1
mov edi, edx
xor edi, 0x7fffffff
cmp edi, ebx
mov ebx, dword [esi + 0x28]
jb 0x41d0e0
add edx, dword [esi + 0x18]
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x41d468
mov dword [esi + 0x24], edx
push eax
call fcn.0040130b
add esp, 4
mov ecx, eax
mov edx, dword [esi + 0x24]
mov edi, dword [esi + 0x1c]
mov dword [esi + 0x108], edi
mov dword [esi + 0x10c], edx
cmp dword [esi + 0x18], 0x10
jb 0x41d19b
mov eax, dword [esi + 0xf8]
push ebx
mov dword [esi + 0x24], 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 + 0x10]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ebx, edi
mov eax, dword [esi + 0x1c]
mov byte [edi + eax], 0
mov eax, dword [esi + 0x18]
lea ecx, [eax + 1]
cmp ecx, 0x1000
jb 0x41d1cd
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
mov edi, dword [esi + 0xc]
jae 0x421d3a
mov ecx, dword [esi + 0x18]
add ecx, 0x24
jmp 0x41d1d3
mov eax, ebx
add ebx, edx
mov dword [esi + 0x108], ebx
lea edi, [esi + 0xf8]
cmp ecx, 0x10
jb 0x41d183
mov edi, dword [esi + 0xf8]
add eax, edi
push edx
push dword [esi + 0x10]
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [edi + ebx], 0
mov edi, dword [esi + 0xc]
jmp 0x41d1e3
push ebx
lea eax, [esi + 0xf8]
push eax
push ecx
mov dword [esi + 0x18], ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, dword [esi + 0x18]
push dword [esi + 0x20]
push dword [esi + 0x10]
push ebx
call sub.VCRUNTIME140.dll_memcpy
mov ebx, dword [esi + 0x18]
add esp, 0xc
mov byte [ebx + edi], 0
mov edi, dword [esi + 0xc]
jmp 0x41d1dd
mov edi, dword [esi + 0xc]
mov eax, dword [esi + 0x24]
push ecx
push eax
call fcn.00471733
add esp, 8
mov dword [esi + 0xf8], ebx
mov edx, dword [esi + 0x14]
cmp edx, 0x10
jb 0x41d218
lea ecx, [edx + 1]
cmp ecx, 0x1000
jb 0x41d20e
mov eax, dword [edi - 4]
add edi, 0xfffffffc
sub edi, eax
cmp edi, 0x20
jae 0x421d3a
add edx, 0x24
mov ecx, edx
mov edi, eax
push ecx
push edi
call fcn.00471733
add esp, 8
mov dword [esi + 0x250], 0
mov dword [esi + 0x254], 0xf
mov byte [esi + 0x240], 0
mov eax, dword [esi + 0x194]
cmp eax, 0x10
jb 0x41d271
mov ecx, dword [esi + 0x180]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x41d267
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x421d3a
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
mov dword [esi + 0x190], 0
mov dword [esi + 0x194], 0xf
mov byte [esi + 0x180], 0
mov eax, dword [esi + 0x234]
cmp eax, 0x10
jb 0x41d2ca
mov ecx, dword [esi + 0x220]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x41d2c0
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x421d3a
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 0x41d302
mov ecx, dword [esi + 0x40]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x41d2f8
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x421d3a
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
inc dword [0x4784f8]
mov eax, dword [esi + 0x15c]
cmp eax, 0x10
jb 0x41d346
mov ecx, dword [esi + 0x148]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x41d33c
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x421d3a
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
mov eax, dword [esi + 0x294]
cmp eax, 0x10
jb 0x41d384
mov ecx, dword [esi + 0x280]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x41d37a
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x421d3a
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
mov eax, dword [esi + 0x2ac]
cmp eax, 0x10
jb 0x41d4c6
mov ecx, dword [esi + 0x298]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x41d3bc
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x421d3a
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.00471733
add esp, 8
jmp 0x41d4c6
test eax, eax
je 0x41d480
push eax
mov dword [esi + 0x10], edx
call fcn.004716fe
mov edx, dword [esi + 0x10]
add esp, 4
mov ecx, eax
jmp 0x41c686
test eax, eax
je 0x41d48a
push eax
mov dword [esi + 0x14], edx
call fcn.004716fe
mov edx, dword [esi + 0x14]
add esp, 4
mov ecx, eax
jmp 0x41c83a
test eax, eax
je 0x41d494
push eax
mov dword [esi + 0x10], edx
call fcn.004716fe
mov edx, dword [esi + 0x10]
add esp, 4
mov ecx, eax
jmp 0x41c9c3
test eax, eax
je 0x41d49e
push eax
mov dword [esi + 0x14], edx
call fcn.004716fe
mov edx, dword [esi + 0x14]
add esp, 4
mov ecx, eax
jmp 0x41cb83
test eax, eax
je 0x41d4a8
push eax
mov dword [esi + 0x14], edx
call fcn.004716fe
mov edx, dword [esi + 0x14]
add esp, 4
mov ecx, eax
jmp 0x41cd3a
test eax, eax
je 0x41d4b2
push eax
call fcn.004716fe
jmp 0x41cf1e
test eax, eax
je 0x41d4bc
push eax
mov edi, edx
call fcn.004716fe
mov edx, edi
add esp, 4
mov ecx, eax
jmp 0x41d0ee
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x41c686
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x41c83a
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x41c9c3
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x41cb83
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x41cd3a
xor ecx, ecx
xor edi, edi
dec edi
jmp 0x41cf23
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x41d0ee
mov edi, dword [0x478584]
test edi, edi
jne 0x41d63e
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xc938de0c
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x41d542
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0xea599f68
cmp cx, 2
jb 0x41d531
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0xea599f68
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x41d51e
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x41d625
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x41d5fa
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x41d5f7
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 0x41d5a4
add edx, dword [esi + 0x18]
mov eax, 0xea599f68
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x41d590
jmp 0x41d5a9
mov eax, 0xea599f68
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x41d56d
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 0x41d638
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x41d638
mov al, byte [edi]
mov ecx, 0xea599f68
mov ebx, 0xea599f68
cmp al, 0x2e
je 0x41d5ff
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x41d5e2
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x41d625
mov al, byte [edi + 1]
test al, al
je 0x41d620
add edi, 2
mov ecx, 0xea599f68
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x41d60e
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x41d638
cmp dword [eax + 0x18], 0
jne 0x41d4ec
mov dword [0x478584], edi
push dword [esi + 0x30]
call edi
cmp eax, 0x64
je 0x41ae4a
cmp dword [esi + 0x10c], 0x10
jb 0x420e0a
mov eax, dword [esi + 0xf8]
jmp 0x420e10
mov eax, 0x14fdb70
lea edi, [esi + eax]
add edi, 0x198
xor eax, eax
lea ebx, [esi + 0x298]
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 + 0x2c], ebx
mov ecx, ebx
push eax
push edi
call fcn.00450e50
xor eax, eax
mov dword [esi + 0x30], eax
mov edx, dword [0x4785d0]
test edx, edx
jne 0x41d825
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax]
xor eax, eax
mov edi, 0xa71711bd
mov dword [esi + 0x24], ecx
mov dword [esi + 0x1c], ecx
test eax, eax
mov dword [esi + 0x20], eax
mov dword [esi + 0xc], edi
je 0x41d71f
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x73b8b57b
cmp cx, 2
jb 0x41d711
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x73b8b57b
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x41d6fe
mov eax, dword [esi + 0x20]
cmp edx, eax
mov edi, dword [esi + 0xc]
jne 0x41d7dc
mov eax, dword [esi + 0x1c]
mov edx, dword [eax + 0x18]
mov eax, dword [edx + 0x3c]
mov ebx, dword [edx + eax + 0x78]
test ebx, ebx
je 0x41d7d9
mov eax, dword [edx + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edx + ebx]
mov dword [esi + 0x10], eax
mov eax, dword [eax + 0x18]
lea ecx, [edx + 1]
mov dword [esi + 0x18], ecx
mov dword [esi + 0x14], ebx
sub eax, 1
jb 0x41d7d9
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 0x41d784
add ebx, dword [esi + 0x18]
mov edi, 0x73b8b57b
movsx ecx, cl
xor ecx, edi
imul edi, ecx, 0x1000193
mov cl, byte [ebx]
inc ebx
test cl, cl
jne 0x41d770
jmp 0x41d789
mov edi, 0x73b8b57b
mov ecx, dword [esi + 0xc]
cmp edi, ecx
mov edi, ecx
mov ebx, dword [esi + 0x14]
jne 0x41d74d
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 0x41d81f
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edx
jbe 0x41d81f
mov al, byte [edx]
mov edi, 0x73b8b57b
mov ecx, 0x73b8b57b
cmp al, 0x2e
je 0x41d7e1
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edx + 1]
inc edx
jmp 0x41d7c4
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x1c]
jmp 0x41d809
mov al, byte [edx + 1]
test al, al
je 0x41d802
add edx, 2
mov edi, 0x73b8b57b
movsx eax, al
xor eax, edi
imul edi, eax, 0x1000193
mov al, byte [edx]
inc edx
test al, al
jne 0x41d7f0
mov eax, dword [esi + 0x24]
mov edx, dword [eax]
mov eax, ecx
mov ecx, dword [edx]
xor edx, edx
cmp ecx, dword [esi + 0x24]
je 0x41d81f
mov dword [esi + 0x1c], ecx
cmp dword [ecx + 0x18], 0
jne 0x41d6cc
mov dword [0x4785d0], edx
cmp dword [esi + 0x2c4], 0x10
jb 0x41d836
mov eax, dword [esi + 0x2b0]
jmp 0x41d83c
lea eax, [esi + 0x2b0]
lea ecx, [esi + 0x38]
push ecx
push eax
call edx
test eax, eax
jne 0x41db6a
mov ebx, dword [0x4785d4]
test ebx, ebx
jne 0x41d9c3
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0x477accd8
xor edi, edi
mov dword [esi + 0x24], eax
test edi, edi
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], edi
mov dword [esi + 0x1c], eax
je 0x41d8c7
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x34c28bfa
cmp cx, 2
jb 0x41d8b6
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x34c28bfa
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x41d8a3
mov edi, dword [esi + 0x20]
cmp edx, edi
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x41d9aa
mov ebx, dword [eax + 0x18]
mov eax, dword [ebx + 0x3c]
mov edx, dword [ebx + eax + 0x78]
test edx, edx
je 0x41d97f
mov eax, dword [ebx + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [ebx + edx]
mov dword [esi + 0x10], eax
mov edi, dword [eax + 0x18]
lea eax, [ebx + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub edi, 1
jb 0x41d97c
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 0x41d929
add edx, dword [esi + 0x18]
mov eax, 0x34c28bfa
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x41d915
jmp 0x41d92e
mov eax, 0x34c28bfa
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x41d8f2
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 0x41d9bd
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, ebx
jbe 0x41d9bd
mov al, byte [ebx]
mov ecx, 0x34c28bfa
mov edi, 0x34c28bfa
cmp al, 0x2e
je 0x41d984
movsx eax, al
xor eax, edi
imul edi, eax, 0x1000193
mov al, byte [ebx + 1]
inc ebx
jmp 0x41d967
mov edi, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x41d9aa
mov al, byte [ebx + 1]
test al, al
je 0x41d9a5
add ebx, 2
mov ecx, 0x34c28bfa
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [ebx]
inc ebx
test al, al
jne 0x41d993
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor ebx, ebx
cmp eax, dword [esi + 0x24]
je 0x41d9bd
cmp dword [eax + 0x18], 0
jne 0x41d871
mov dword [0x4785d4], ebx
cmp dword [esi + 0x2ac], 0x10
jb 0x41d9d5
mov eax, dword [esi + 0x298]
mov dword [esi + 0x2c], eax
lea eax, [esi + 0x30]
push 0
push eax
push 0xffffffffffffffff
push dword [esi + 0x2c]
push dword [esi + 0x38]
call ebx
test eax, eax
je 0x420c6c
mov edi, dword [0x4785d8]
test edi, edi
jne 0x41db65
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xb04dc63a
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x41da69
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x795763b8
cmp cx, 2
jb 0x41da58
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x795763b8
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x41da45
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x41db4c
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x41db21
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x41db1e
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 0x41dacb
add edx, dword [esi + 0x18]
mov eax, 0x795763b8
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x41dab7
jmp 0x41dad0
mov eax, 0x795763b8
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x41da94
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 0x41db5f
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x41db5f
mov al, byte [edi]
mov ecx, 0x795763b8
mov ebx, 0x795763b8
cmp al, 0x2e
je 0x41db26
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x41db09
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x41db4c
mov al, byte [edi + 1]
test al, al
je 0x41db47
add edi, 2
mov ecx, 0x795763b8
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x41db35
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x41db5f
cmp dword [eax + 0x18], 0
jne 0x41da13
mov dword [0x4785d8], edi
push dword [esi + 0x38]
call edi
mov eax, dword [esi + 0x2ac]
cmp eax, 0x10
jb 0x41adbb
mov ecx, dword [esi + 0x298]
jmp 0x41ad8e
mov edi, dword [0x4785e0]
test edi, edi
jne 0x41dcfc
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xe34b328d
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x41dc00
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x29469a75
cmp cx, 2
jb 0x41dbef
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x29469a75
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x41dbdc
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x41dce3
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x41dcb8
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x41dcb5
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 0x41dc62
add edx, dword [esi + 0x18]
mov eax, 0x29469a75
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x41dc4e
jmp 0x41dc67
mov eax, 0x29469a75
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x41dc2b
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 0x41dcf6
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x41dcf6
mov al, byte [edi]
mov ecx, 0x29469a75
mov ebx, 0x29469a75
cmp al, 0x2e
je 0x41dcbd
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x41dca0
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x41dce3
mov al, byte [edi + 1]
test al, al
je 0x41dcde
add edi, 2
mov ecx, 0x29469a75
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x41dccc
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x41dcf6
cmp dword [eax + 0x18], 0
jne 0x41dbaa
mov dword [0x4785e0], edi
push 0
push dword [esi + 0x30]
call edi
mov dword [esi + 0x34], eax
mov edi, dword [0x4785e4]
test edi, edi
jne 0x41de7e
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xc681629
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x41dd82
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0xfcc2801
cmp cx, 2
jb 0x41dd71
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0xfcc2801
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x41dd5e
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x41de65
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x41de3a
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x41de37
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 0x41dde4
add edx, dword [esi + 0x18]
mov eax, 0xfcc2801
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x41ddd0
jmp 0x41dde9
mov eax, 0xfcc2801
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x41ddad
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 0x41de78
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x41de78
mov al, byte [edi]
mov ecx, 0xfcc2801
mov ebx, 0xfcc2801
cmp al, 0x2e
je 0x41de3f
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x41de22
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x41de65
mov al, byte [edi + 1]
test al, al
je 0x41de60
add edi, 2
mov ecx, 0xfcc2801
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x41de4e
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x41de78
cmp dword [eax + 0x18], 0
jne 0x41dd2c
mov dword [0x4785e4], edi
push 1
push dword [esi + 0x30]
call edi
mov dword [esi + 0x3c], eax
mov edi, dword [0x4785e8]
test edi, edi
jne 0x41e000
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xe7987ee9
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x41df04
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0xb62fd541
cmp cx, 2
jb 0x41def3
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0xb62fd541
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x41dee0
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x41dfe7
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x41dfbc
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x41dfb9
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 0x41df66
add edx, dword [esi + 0x18]
mov eax, 0xb62fd541
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x41df52
jmp 0x41df6b
mov eax, 0xb62fd541
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x41df2f
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 0x41dffa
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x41dffa
mov al, byte [edi]
mov ecx, 0xb62fd541
mov ebx, 0xb62fd541
cmp al, 0x2e
je 0x41dfc1
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x41dfa4
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x41dfe7
mov al, byte [edi + 1]
test al, al
je 0x41dfe2
add edi, 2
mov ecx, 0xb62fd541
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x41dfd0
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x41dffa
cmp dword [eax + 0x18], 0
jne 0x41deae
mov dword [0x4785e8], edi
push 2
push dword [esi + 0x30]
call edi
mov dword [esi + 0xdc], eax
mov ebx, dword [0x4785ec]
test ebx, ebx
jne 0x41e185
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0x126b1a85
xor edi, edi
mov dword [esi + 0x24], eax
test edi, edi
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], edi
mov dword [esi + 0x1c], eax
je 0x41e089
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x2bedb765
cmp cx, 2
jb 0x41e078
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x2bedb765
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x41e065
mov edi, dword [esi + 0x20]
cmp edx, edi
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x41e16c
mov ebx, dword [eax + 0x18]
mov eax, dword [ebx + 0x3c]
mov edx, dword [ebx + eax + 0x78]
test edx, edx
je 0x41e141
mov eax, dword [ebx + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [ebx + edx]
mov dword [esi + 0x10], eax
mov edi, dword [eax + 0x18]
lea eax, [ebx + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub edi, 1
jb 0x41e13e
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 0x41e0eb
add edx, dword [esi + 0x18]
mov eax, 0x2bedb765
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x41e0d7
jmp 0x41e0f0
mov eax, 0x2bedb765
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x41e0b4
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 0x41e17f
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, ebx
jbe 0x41e17f
mov al, byte [ebx]
mov ecx, 0x2bedb765
mov edi, 0x2bedb765
cmp al, 0x2e
je 0x41e146
movsx eax, al
xor eax, edi
imul edi, eax, 0x1000193
mov al, byte [ebx + 1]
inc ebx
jmp 0x41e129
mov edi, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x41e16c
mov al, byte [ebx + 1]
test al, al
je 0x41e167
add ebx, 2
mov ecx, 0x2bedb765
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [ebx]
inc ebx
test al, al
jne 0x41e155
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor ebx, ebx
cmp eax, dword [esi + 0x24]
je 0x41e17f
cmp dword [eax + 0x18], 0
jne 0x41e033
mov dword [0x4785ec], ebx
push 1
push dword [esi + 0x30]
call ebx
mov dword [esi + 0x2c], eax
mov edi, dword [0x4785f0]
test edi, edi
jne 0x41e30f
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xef61eed1
mov dword [esi + 0x24], eax
mov dword [esi + 0x1c], eax
xor eax, eax
test eax, eax
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], eax
je 0x41e20b
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x2fb8c731
cmp cx, 2
jb 0x41e1fd
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x2fb8c731
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x41e1ea
mov eax, dword [esi + 0x20]
cmp edx, eax
mov ecx, dword [esi + 0xc]
jne 0x41e2c6
mov eax, dword [esi + 0x1c]
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x41e2c3
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov eax, dword [eax + 0x18]
lea ebx, [edi + 1]
mov dword [esi + 0x18], ebx
mov dword [esi + 0x14], edx
sub eax, 1
jb 0x41e2c3
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 0x41e270
add edx, dword [esi + 0x18]
mov ebx, 0x2fb8c731
movsx ecx, cl
xor ecx, ebx
imul ebx, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x41e25c
jmp 0x41e275
mov ebx, 0x2fb8c731
mov ecx, dword [esi + 0xc]
cmp ebx, ecx
mov edx, dword [esi + 0x14]
jne 0x41e239
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 0x41e309
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x41e309
mov al, byte [edi]
mov ecx, 0x2fb8c731
mov edx, 0x2fb8c731
cmp al, 0x2e
je 0x41e2cb
movsx eax, al
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x41e2ae
mov eax, dword [esi + 0x20]
mov edi, dword [esi + 0x1c]
jmp 0x41e2f3
mov al, byte [edi + 1]
test al, al
je 0x41e2ec
add edi, 2
mov ecx, 0x2fb8c731
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x41e2da
mov eax, dword [esi + 0x24]
mov edi, dword [eax]
mov eax, edx
mov edx, dword [edi]
xor edi, edi
cmp edx, dword [esi + 0x24]
je 0x41e309
mov dword [esi + 0x1c], edx
cmp dword [edx + 0x18], 0
jne 0x41e1b8
mov dword [0x4785f0], edi
push 2
push dword [esi + 0x30]
call edi
cmp eax, 0x1f
jne 0x41e325
cmp dword [esi + 0x2c], 0
je 0x420c6c
push eax
push dword [esi + 0xdc]
lea eax, [esi + 0x2cc]
push eax
lea eax, [esi + 0x280]
push eax
call 0x410352
add esp, 0x10
xor ebx, ebx
mov dword [esi + 0x148], ebx
mov dword [esi + 0x158], ebx
mov eax, 0xf
mov dword [esi + 0x15c], eax
mov byte [esi + 0x148], bl
mov edi, dword [esi + 0x34]
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ecx, [esi + 0x148]
push eax
push edi
call fcn.00450e50
mov dword [esi + 0x240], ebx
mov dword [esi + 0x250], ebx
mov eax, 0xf
mov dword [esi + 0x254], eax
mov byte [esi + 0x240], bl
mov edi, dword [esi + 0x3c]
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ecx, [esi + 0x240]
push eax
push edi
call fcn.00450e50
lea eax, [esi + 0xbe]
mov dword [eax + 0x14], ebx
mov dword [eax + 0x10], ebx
xorps xmm0, xmm0
movups xmmword [eax], xmm0
mov word [esi + 0xbc], 0x10a
mov dword [esi + 0x18], eax
call fcn.0046d640
mov eax, dword [eax]
mov dword [esi + 0xc], eax
call fcn.0046d646
mov edi, dword [eax]
xor eax, eax
mov ecx, dword [esi + 0x18]
cmp dword [esi + 0xc], eax
ja 0x41e8c3
movzx edx, byte [esi + eax + 0xbc]
lea ebx, [edi + 1]
cmp dword [esi + 0xc], ebx
mov dword [esi + 0x10], edi
jae 0x41e486
lea edi, [eax - 0x245bc400]
lea ecx, [eax + edx]
add ecx, 0xdba43c00
and edi, edx
add edi, edi
sub ecx, edi
mov edi, dword [esi + 0x10]
cmp edi, eax
ja 0x41e8ce
mov dword [esi + 0x18], ecx
lea ecx, [edi + 4]
mov dword [esi + 0x1c], ecx
cmp dword [esi + 0xc], ecx
jae 0x41e531
mov dword [esi + 0x14], ebx
lea ebx, [eax + 0x478ec00]
lea edi, [eax + edx]
add edi, 0x478ec00
and ebx, edx
add ebx, ebx
sub edi, ebx
mov dword [esi + 0x18], edi
mov edi, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
lea ebx, [ecx + edi]
cmp ebx, eax
jbe 0x41e571
lea ebx, [edi + 0x10]
cmp ecx, ebx
jne 0x41e61a
lea ecx, [eax + 0x6091c800]
lea edi, [eax + edx]
add edi, 0x6091c800
and ecx, edx
mov ebx, dword [esi + 0x14]
jmp 0x41e54b
jne 0x41e4a2
lea edi, [eax - 0x6d134c00]
lea ecx, [eax + edx]
add ecx, 0x92ecb400
and edi, edx
add edi, edi
sub ecx, edi
jmp 0x41e527
mov dword [esi + 0x14], ebx
mov ebx, edi
add edi, 2
cmp dword [esi + 0xc], edi
jne 0x41e5ca
lea edi, [eax + 0x17da400]
lea ecx, [eax + edx]
add ecx, 0x17da400
and edi, edx
add edi, edi
sub ecx, edi
lea edi, [eax - 0x325aec00]
and edi, edx
add edi, edi
lea ebx, [edx + eax]
add ebx, 0xcda51400
sub ebx, edi
mov byte [esi + eax + 0xbc], bl
mov edi, dword [esi + 0x10]
not edi
add edi, eax
movzx eax, bl
sub edi, eax
mov eax, edi
mov edi, dword [esi + 0x14]
mov dword [esi + 0x10], edi
lea edi, [eax - 0x56b6b000]
and edi, edx
add edx, eax
add edx, 0xa9495000
add edi, edi
sub edx, edi
mov byte [esi + eax + 0xbc], dl
mov edx, dword [esi + 0xc]
sub eax, edx
inc edx
mov dword [esi + 0xc], edx
movzx edx, byte [esi + eax + 0xba]
add eax, 0xfffffffe
mov edi, dword [esi + 0x10]
add edx, edi
jmp 0x41e7cf
cmp dword [esi + 0xc], ebx
jne 0x41e5ea
lea ecx, [eax - 0x443e9c00]
lea edi, [eax + edx]
add edi, 0xbbc16400
and ecx, edx
add ecx, ecx
sub edi, ecx
lea ecx, [eax + 0x5f142400]
and ecx, edx
add edx, eax
add edx, 0x5f142400
add ecx, ecx
sub edx, ecx
mov byte [esi + eax + 0xbc], dl
mov ecx, edi
jmp 0x41e612
lea ebx, [edi + 8]
mov dword [esi + 0x1c], ebx
cmp ecx, ebx
jae 0x41e643
lea edi, [eax - 0x245bc400]
lea ecx, [eax + edx]
add ecx, 0xdba43c00
and edi, edx
add edi, edi
sub ecx, edi
mov ebx, dword [esi + 0x14]
mov edi, dword [esi + 0x10]
add edi, 0x10
cmp dword [esi + 0xc], edi
jbe 0x41e6a2
lea edi, [eax + 0x5a9b3800]
lea ecx, [eax + edx]
add ecx, 0x5a9b3800
and edi, edx
add edi, edi
sub ecx, edi
mov byte [esi + eax + 0xbc], cl
mov edi, dword [esi + 0x10]
jmp 0x41e7d1
lea edi, [ebx + 5]
cmp dword [esi + 0xc], edi
jne 0x41e663
lea edi, [eax + 0x700e9400]
lea ecx, [eax + edx]
add ecx, 0x700e9400
jmp 0x41e73f
mov dword [esi + 0x14], ebx
mov ecx, dword [esi + 0xc]
lea ebx, [edi + 3]
cmp ecx, ebx
jne 0x41e683
mov ebx, edi
lea edi, [eax + 0x2a525400]
and edi, edx
lea ecx, [eax + edx]
add ecx, 0x2a525400
add edi, edi
sub ecx, edi
dec eax
mov edi, ebx
jmp 0x41e7d1
mov ecx, dword [esi + 0x1c]
cmp dword [esi + 0xc], ecx
mov ebx, dword [esi + 0x14]
jne 0x41e6bf
lea ecx, [eax + 0x17da4000]
lea edi, [eax + edx]
add edi, 0x17da4000
and ecx, edx
add ecx, ecx
sub edi, ecx
jmp 0x41e56a
mov ebx, dword [esi + 0x14]
cmp dword [esi + 0xc], ebx
jne 0x41e6dc
lea edi, [eax + 0x8f1d800]
lea ecx, [eax + edx]
add ecx, 0x8f1d800
jmp 0x41e497
lea edi, [ebx + 3]
cmp dword [esi + 0xc], edi
jne 0x41e701
lea edi, [eax + 0x27570c00]
lea ecx, [eax + edx]
add ecx, 0x27570c00
jmp 0x41e7a1
lea ebx, [edi + 2]
cmp ecx, ebx
jne 0x41e724
lea edi, [eax - 0x1e653400]
lea ecx, [eax + edx]
add ecx, 0xe19acc00
jmp 0x41e7a1
cmp dword [esi + 0xc], ebx
jne 0x41e747
lea ecx, [eax + 0xd6ac400]
lea edi, [eax + edx]
add edi, 0xd6ac400
jmp 0x41e549
add edi, 8
cmp dword [esi + 0xc], edi
jne 0x41e76c
lea edi, [eax + 0x3db3a800]
lea ecx, [eax + edx]
add ecx, 0x3db3a800
jmp 0x41e73f
mov ecx, edi
add edi, 2
cmp dword [esi + 0xc], edi
jne 0x41e786
mov dword [esi + 0x14], ebx
lea edi, [eax + 0x7782c800]
lea ecx, [eax + edx]
add ecx, 0x7782c800
jmp 0x41e4c2
lea edi, [ebx + 8]
cmp dword [esi + 0xc], edi
mov ebx, dword [esi + 0x14]
jne 0x41e419
lea ecx, [eax + 0x4d307400]
lea edi, [eax + edx]
add edi, 0x4d307400
jmp 0x41e549
mov ebx, dword [esi + 0x1c]
cmp dword [esi + 0xc], ebx
jne 0x41e7e0
lea edi, [eax - 0x671cbc00]
lea ecx, [eax + edx]
add ecx, 0x98e34400
and edi, edx
add edi, edi
sub ecx, edi
jmp 0x41e7c4
mov ebx, dword [esi + 0x10]
lea edi, [ebx + 2]
cmp dword [esi + 0xc], edi
jne 0x41e805
lea edi, [eax + 0x7bfbb400]
and edi, edx
lea ecx, [eax + edx]
add ecx, 0x7bfbb400
jmp 0x41e60e
cmp dword [esi + 0xc], ebx
jne 0x41e8a7
lea edi, [eax - 0xb03e000]
lea ecx, [eax + edx]
add ecx, 0xf4fc2000
jmp 0x41e7fa
lea edi, [ecx + 3]
cmp dword [esi + 0xc], edi
jne 0x41e826
lea edi, [eax - 0x62a3d000]
lea ecx, [eax + edx]
add ecx, 0x9d5c3000
and edi, edx
add edi, edi
sub ecx, edi
lea edi, [eax + 0x165c9c00]
and edi, edx
add edx, eax
add edx, 0x165c9c00
add edi, edi
sub edx, edi
add dl, cl
mov byte [esi + eax + 0xbc], dl
mov edi, dword [esi + 0x10]
add dword [esi + 0xc], edi
movzx edx, cl
not edx
add eax, edx
inc eax
cmp eax, 0x1a
jb 0x41e3e4
jmp 0x41e8ca
lea ebx, [edi + 5]
cmp ecx, ebx
jne 0x41e454
lea edi, [eax + 0x502bbc00]
lea ecx, [eax + edx]
add ecx, 0x502bbc00
and edi, edx
add edi, edi
sub ecx, edi
mov edi, dword [esi + 0x10]
jmp 0x41e7ca
lea edi, [ebx + 3]
cmp dword [esi + 0xc], edi
jne 0x41e842
lea edi, [eax - 0x5e2ae400]
lea ecx, [eax + edx]
add ecx, 0xa1d51c00
and edi, edx
add edi, edi
sub ecx, edi
mov edi, ebx
jmp 0x41e7ca
lea edi, [ecx + 5]
cmp dword [esi + 0xc], edi
jne 0x41e864
lea ecx, [eax + 0xbed2000]
lea edi, [eax + edx]
add edi, 0xbed2000
jmp 0x41e638
lea edi, [ebx + 5]
cmp dword [esi + 0xc], edi
jne 0x41e887
lea edi, [eax + 0x10660c00]
lea ecx, [eax + edx]
add ecx, 0x10660c00
and edi, edx
add edi, edi
sub ecx, edi
jmp 0x41e4f8
mov ecx, dword [esi + 0x1c]
cmp dword [esi + 0xc], ecx
mov ecx, dword [esi + 0x18]
jne 0x41e597
lea ecx, [eax - 0x3cca6800]
lea edi, [eax + edx]
add edi, 0xc3359800
jmp 0x41e549
mov edi, dword [esi + 0x1c]
cmp dword [esi + 0xc], edi
jne 0x41e5bb
lea edi, [eax - 0x38517c00]
lea ecx, [eax + edx]
add ecx, 0xc7ae8400
jmp 0x41e497
lea ecx, [eax + edx]
add ecx, 0x650ab400
add eax, 0x650ab400
and eax, edx
add eax, eax
sub ecx, eax
mov dword [esi + 0x18], ecx
jmp 0x41e3ce
mov eax, 0x17c8c00
jmp 0x41e8d3
xor eax, eax
jmp 0x41e8d3
mov eax, 0x1585000
add eax, esi
add eax, 0xbc
mov dword [esi + 0x34], eax
xor ebx, ebx
mov dword [esi + 0x220], ebx
mov dword [esi + 0x230], ebx
mov dword [esi + 0x234], 0xf
mov byte [esi + 0x220], bl
push 0x40
call fcn.004716fe
add esp, 4
mov dword [esi + 0x230], 0x32
mov dword [esi + 0x234], 0x3f
movaps xmm0, xmmword [str.________________]
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm0
movups xmmword [eax + 0x20], xmm0
mov word [eax + 0x30], 0x5f5f
mov byte [eax + 0x32], bl
mov dword [esi + 0x220], eax
lea eax, [esi + 0x112]
mov dword [eax + 0x12], ebx
mov dword [eax + 0xe], ebx
xorps xmm0, xmm0
movups xmmword [eax], xmm0
mov word [esi + 0x110], 0x2d32
mov dword [esi + 0x18], eax
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov eax, dword [eax]
xor ecx, ecx
mov edx, 0x121a6ae
cmp edi, ecx
ja 0x41f1f3
mov dword [esi + 0x14], edi
movzx ebx, byte [esi + ecx + 0x110]
mov dword [esi + 0x10], eax
lea eax, [ecx + 0x4e606126]
lea edi, [ecx + ebx]
add edi, 0x4e606126
and eax, ebx
add eax, eax
sub edi, eax
lea eax, [ecx + 0x6de7f81e]
lea edx, [ecx + ebx]
add edx, 0x6de7f81e
and eax, ebx
add eax, eax
sub edx, eax
lea eax, [ecx + 0x54d33b0a]
and eax, ebx
add eax, eax
mov dword [esi + 0xc], ecx
mov dword [esi + 0x1c], ebx
add ecx, ebx
add ecx, 0x54d33b0a
sub ecx, eax
mov eax, edi
mov edi, dword [esi + 0x10]
add al, 0xf6
add dl, 0x2e
mov dword [esi + 0x20], edx
add cl, 0xba
mov dword [esi + 0x28], ecx
mov dword [esi + 0x24], eax
lea ebx, [edi + 1]
mov edx, eax
mov ecx, edx
cmp dword [esi + 0x14], ebx
mov dword [esi + 0x10], edi
jb 0x41ea0e
je 0x41ed64
lea eax, [edi + 2]
mov edx, dword [esi + 0x14]
cmp edx, eax
je 0x41ed8c
lea eax, [edi + 4]
mov ecx, dword [esi + 0x18]
cmp edx, eax
je 0x41edae
cmp edi, dword [esi + 0xc]
ja 0x41f1ea
mov dword [esi + 0x18], ebx
lea ebx, [edi + 5]
mov eax, dword [esi + 0x20]
mov ch, al
mov edx, dword [esi + 0x14]
mov dword [esi + 0x2c], ebx
cmp edx, ebx
jb 0x41ea70
mov ebx, dword [esi + 0x18]
cmp edx, ebx
je 0x41edd4
lea eax, [edi + 2]
cmp edx, eax
je 0x41ee28
lea eax, [edi + 4]
cmp edx, eax
je 0x41ee4c
lea eax, [edi + 6]
cmp edx, eax
je 0x41eeaa
lea eax, [edi + 3]
cmp edx, eax
je 0x41eecc
lea eax, [edi + 9]
mov ch, cl
cmp edx, eax
je 0x41ef3b
lea eax, [edx + edi]
cmp eax, dword [esi + 0xc]
jbe 0x41ec3a
lea eax, [edi + 0x5a]
cmp edx, eax
je 0x41ec77
lea eax, [edi + 0x7a]
cmp edx, eax
mov edi, edx
je 0x41ec9a
cmp edi, dword [esi + 0x18]
je 0x41ecc0
mov edx, dword [esi + 0x10]
lea eax, [edx + 3]
cmp edi, eax
je 0x41ed0a
add edx, 0x55
mov edi, edx
lea edx, [edi - 0x51]
lea eax, [edi - 0x4c]
cmp edx, eax
jb 0x41f1c5
lea eax, [edi - 0x4a]
cmp edx, eax
jb 0x41f19a
lea eax, [edi - 0x48]
cmp edx, eax
jb 0x41eb0b
lea eax, [edi - 0x45]
cmp edx, eax
jb 0x41eb2d
lea edx, [edi - 0x46]
lea eax, [edi - 0x36]
cmp edx, eax
ja 0x41eb69
lea eax, [edi - 0x38]
cmp edx, eax
ja 0x41eb92
lea eax, [edi - 0x20]
cmp edx, eax
ja 0x41ebbe
cmp edx, edi
ja 0x41ebea
add edi, 0x97
jmp 0x41eab0
mov eax, edi
add edi, 0xffffffb2
add eax, 0xffffffaf
mov ecx, dword [esi + 0x28]
mov dword [esi + 0x18], ecx
mov dword [esi + 0x14], eax
cmp eax, dword [esi + 0xc]
mov eax, dword [esi + 0x24]
jbe 0x41e9dd
jmp 0x420c1c
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 0x64970686]
mov ebx, dword [esi + 0x1c]
add ebx, ecx
add ebx, 0x64970686
and eax, dword [esi + 0x1c]
add eax, eax
sub ebx, eax
mov eax, edi
add eax, 0xffffffb2
add bl, 0x56
mov edi, edx
cmp eax, 0xfff
ja 0x41ec13
mov byte [esi + ecx + 0x110], bl
jmp 0x41ef29
mov ecx, dword [esi + 0xc]
lea eax, [ecx - 0x76c65170]
mov edx, dword [esi + 0x1c]
lea ebx, [ecx + edx]
add ebx, 0x8939ae90
and eax, edx
add eax, eax
sub ebx, eax
lea eax, [edi - 0x40]
add bl, 0x10
add edi, 0xffffffba
jmp 0x41ef25
mov edx, dword [esi + 0xc]
lea eax, [edx + 0x25fa70dc]
mov ecx, dword [esi + 0x1c]
lea ebx, [edx + ecx]
add ebx, 0x25fa70dc
and eax, ecx
add eax, eax
sub ebx, eax
lea eax, [edi - 0x40]
mov dword [esi + 0x18], eax
add bl, 0xfc
add edi, 0xffffffba
jmp 0x41eeee
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 0x5f7bf574]
mov edx, dword [esi + 0x1c]
and eax, edx
lea ebx, [ecx + edx]
add ebx, 0x5f7bf574
add eax, eax
sub ebx, eax
lea eax, [edi - 0x40]
mov dword [esi + 0x10], eax
add bl, 0xd4
add edi, 0xffffffba
jmp 0x41ee6f
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 0x6f3fc0f0]
mov ebx, dword [esi + 0x1c]
add ebx, ecx
add ebx, 0x6f3fc0f0
and eax, dword [esi + 0x1c]
add eax, eax
sub ebx, eax
add edi, 0xffffffc0
add bl, 0x70
mov dword [esi + 0x14], edx
jmp 0x41edf2
mov dword [esi + 0x14], edi
mov edi, eax
lea eax, [ecx + 0x3a66b524]
mov edx, dword [esi + 0x1c]
lea ebx, [ecx + edx]
add ebx, 0x3a66b524
and eax, edx
add eax, eax
sub ebx, eax
add bl, bl
add bl, 8
jmp 0x41edf2
mov bl, ch
lea ecx, [edi + 0xa]
cmp edx, ecx
mov edi, edx
jae 0x41ee7e
cmp eax, 0x42
mov ecx, dword [esi + 0xc]
jne 0x41ef63
lea eax, [ecx + 0x73e839bc]
mov edx, dword [esi + 0x1c]
lea ebx, [ecx + edx]
add ebx, 0x73e839bc
and eax, edx
add eax, eax
sub ebx, eax
sub bl, dl
add bl, 0xdc
jmp 0x41ed28
mov ecx, dword [esi + 0xc]
lea eax, [ecx - 0x529641ac]
mov edx, dword [esi + 0x1c]
lea ebx, [ecx + edx]
add ebx, 0xad69be54
and eax, edx
add eax, eax
sub ebx, eax
add bl, 0xb4
jmp 0x41edf2
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 0x4a2a80a0]
mov edx, dword [esi + 0x1c]
lea ebx, [ecx + edx]
add ebx, 0x4a2a80a0
and eax, edx
add eax, eax
sub ebx, eax
add bl, 0xa0
mov eax, dword [esi + 0x18]
jmp 0x41ee22
mov ecx, dword [esi + 0xc]
lea eax, [ecx - 0x7c53fac8]
mov edx, dword [esi + 0x1c]
lea ebx, [ecx + edx]
add ebx, 0x83ac0538
and eax, edx
add eax, eax
sub ebx, eax
add bl, 0x78
mov eax, dword [esi + 0xc]
lea ecx, [eax + 0x2587d896]
and ecx, edx
mov eax, dword [esi + 0xc]
add eax, edx
add eax, 0x2587d896
add ecx, ecx
sub eax, ecx
mov ecx, dword [esi + 0xc]
add al, bl
add al, 0xe6
mov byte [esi + ecx + 0x110], al
jmp 0x41ee6c
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 0x59ee4c1c]
mov edx, dword [esi + 0x1c]
lea ebx, [ecx + edx]
add ebx, 0x59ee4c1c
and eax, edx
add eax, eax
sub ebx, eax
add bl, 0x3c
mov eax, dword [esi + 0xc]
lea ecx, [eax - 0x3db7651e]
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x1c]
add eax, edx
add eax, 0xc2489ae2
and ecx, edx
add ecx, ecx
sub eax, ecx
mov ecx, dword [esi + 0xc]
add al, 0xd2
mov byte [esi + ecx + 0x110], al
movzx eax, al
sub ecx, eax
mov eax, dword [esi + 0x10]
not eax
add ecx, eax
mov dword [esi + 0xc], ecx
jmp 0x41eeee
mov ecx, dword [esi + 0xc]
lea eax, [ecx - 0x14dedc8e]
mov edx, dword [esi + 0x1c]
lea ebx, [ecx + edx]
add ebx, 0xeb212372
and eax, edx
add eax, eax
sub ebx, eax
mov eax, edi
add bl, 0xe2
mov edi, dword [esi + 0x14]
jmp 0x41ef25
mov ebx, dword [esi + 0xc]
lea eax, [ebx - 0x781e1a42]
mov ecx, dword [esi + 0x1c]
add ebx, ecx
add ebx, 0x87e1e5be
and eax, ecx
add eax, eax
sub ebx, eax
add bl, 0xce
jmp 0x41eee9
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 0x5e242ca2]
mov edx, dword [esi + 0x1c]
lea ebx, [ecx + edx]
add ebx, 0x5e242ca2
and eax, edx
add eax, eax
sub ebx, eax
add bl, 0x92
mov edi, dword [esi + 0x14]
jmp 0x41ee6c
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 0xaa8ba6a]
mov edx, dword [esi + 0x1c]
lea ebx, [ecx + edx]
add ebx, 0xaa8ba6a
and eax, edx
add eax, eax
sub ebx, eax
add bl, 0x1a
lea eax, [ecx - 0x7738e9b6]
mov edx, dword [esi + 0x1c]
and eax, edx
mov ecx, dword [esi + 0xc]
add ecx, edx
add ecx, 0x88c7164a
add eax, eax
sub ecx, eax
add cl, 0xfa
mov eax, dword [esi + 0xc]
mov byte [esi + eax + 0x110], cl
mov ecx, dword [esi + 0xc]
inc edi
mov eax, edi
mov edi, dword [esi + 0x14]
dec ecx
jmp 0x41ef29
mov ecx, dword [esi + 0xc]
lea edi, [ecx - 0x5896834a]
mov eax, ebx
mov ebx, dword [esi + 0x1c]
add ebx, ecx
add ebx, 0xa7697cb6
and edi, dword [esi + 0x1c]
add edi, edi
sub ebx, edi
add bl, 6
mov edi, edx
jmp 0x41ee22
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 0x7dabc39a]
mov edi, dword [esi + 0x1c]
lea ebx, [ecx + edi]
add ebx, 0x7dabc39a
and eax, edi
add eax, eax
sub ebx, eax
add bl, 0xca
mov edi, edx
add edi, dword [esi + 0x10]
movzx eax, bl
not eax
add ecx, eax
mov eax, dword [esi + 0x10]
jmp 0x41ef29
cmp edi, dword [esi + 0x18]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x1c]
jne 0x41efc7
lea eax, [ecx - 0x24300fc4]
lea ebx, [ecx + edx]
add ebx, 0xdbcff03c
and eax, edx
add eax, eax
sub ebx, eax
add bl, 0x5c
mov eax, dword [esi + 0x10]
jmp 0x41ef25
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 0x1a6c85e6]
mov edi, dword [esi + 0x1c]
lea ebx, [ecx + edi]
add ebx, 0x1a6c85e6
and eax, edi
add eax, eax
sub ebx, eax
add bl, 0xb6
mov edi, edx
jmp 0x41ee6f
mov ebx, dword [esi + 0xc]
lea eax, [ebx + 0x53ee0a7e]
mov ecx, dword [esi + 0x1c]
add ebx, ecx
add ebx, 0x53ee0a7e
and eax, ecx
add eax, eax
sub ebx, eax
add bl, 0x8e
mov dword [esi + 0x18], edi
mov edi, edx
mov edx, dword [esi + 0xc]
lea eax, [edx + 0x10a8fc08]
mov ecx, dword [esi + 0x1c]
and eax, ecx
add ecx, edx
add ecx, 0x10a8fc08
add eax, eax
sub ecx, eax
add cl, 0xc8
mov byte [esi + edx + 0x110], cl
mov ecx, edx
sub ecx, edi
inc edi
movzx edx, byte [esi + ecx + 0x10e]
add ecx, 0xfffffffe
mov eax, dword [esi + 0x18]
add edx, eax
add ecx, edx
inc ecx
mov dword [esi + 0x18], ebx
cmp ecx, 0x18
jb 0x41e968
jmp 0x41f1f1
mov ecx, dword [esi + 0xc]
lea eax, [ecx - 0xf513336]
mov edi, dword [esi + 0x1c]
lea ebx, [ecx + edi]
add ebx, 0xf0aeccca
and eax, edi
add eax, eax
sub ebx, eax
mov eax, dword [esi + 0x10]
add bl, 0x7a
mov edi, edx
mov edx, dword [esi + 0x1c]
jmp 0x41ef25
mov eax, dword [esi + 0x10]
add eax, 0x40
cmp edi, eax
jbe 0x41efe9
lea eax, [ecx - 0x5308d9f2]
mov ebx, dword [esi + 0x1c]
lea edx, [ecx + ebx]
add edx, 0xacf7260e
and eax, ebx
add eax, eax
sub edx, eax
add dl, 0x9e
cmp edi, 0x1ff
ja 0x41f04a
mov eax, dword [esi + 0x10]
add eax, 0x80
cmp edi, eax
jbe 0x41f097
lea eax, [ecx + 0x1adf1e2c]
mov edx, dword [esi + 0x1c]
lea ebx, [ecx + edx]
add ebx, 0x1adf1e2c
and eax, edx
add eax, eax
sub ebx, eax
add bl, 0xcc
mov eax, dword [esi + 0x10]
jmp 0x41eb52
cmp edi, dword [esi + 0x2c]
jne 0x41f011
lea eax, [ecx - 0x146c4448]
lea ebx, [ecx + edx]
add ebx, 0xeb93bbb8
and eax, edx
add eax, eax
sub ebx, eax
add bl, 0xf8
jmp 0x41ecde
cmp edi, dword [esi + 0x18]
jne 0x41f06c
lea eax, [ecx + 0x49b7e85a]
mov edx, dword [esi + 0x1c]
lea ebx, [ecx + edx]
add ebx, 0x49b7e85a
and eax, edx
add eax, eax
sub ebx, eax
add bl, 0x8a
mov edi, dword [esi + 0x10]
jmp 0x41edf2
mov ecx, dword [esi + 0x10]
add ecx, 6
mov edx, ebx
mov dword [esi + 0x24], edx
cmp edi, ecx
jne 0x41ec49
mov ecx, dword [esi + 0xc]
lea eax, [ecx - 0x77ab81fc]
mov edx, dword [esi + 0x1c]
and eax, edx
lea ebx, [ecx + edx]
add ebx, 0x88547e04
add eax, eax
sub ebx, eax
add bl, 0xe4
mov eax, dword [esi + 0x10]
jmp 0x41ee22
lea eax, [ecx - 0x28d88890]
mov edx, dword [esi + 0x1c]
lea ebx, [ecx + edx]
add ebx, 0xd7277770
and eax, edx
add eax, eax
sub ebx, eax
add bl, dl
add bl, 0xf0
jmp 0x41ecde
mov edx, dword [esi + 0x10]
lea eax, [edx + 2]
cmp edi, eax
jne 0x41f0bc
lea eax, [ecx - 0x7cc6930e]
mov ebx, dword [esi + 0x1c]
and eax, ebx
add ebx, ecx
add ebx, 0x83396cf2
add eax, eax
sub ebx, eax
add bl, 0x62
mov eax, edx
jmp 0x41ee22
cmp edi, dword [esi + 0x18]
jne 0x41f0ea
lea eax, [ecx - 0x48601f88]
mov edx, dword [esi + 0x1c]
lea ebx, [ecx + edx]
add ebx, 0xb79fe078
and eax, edx
add eax, eax
sub ebx, eax
add bl, 0xb8
jmp 0x41eea5
lea eax, [edx + 3]
cmp edi, eax
mov edx, dword [esi + 0x24]
jne 0x41ef88
lea eax, [ecx + 0x597bb3d6]
mov edx, dword [esi + 0x1c]
lea ebx, [ecx + edx]
add ebx, 0x597bb3d6
and eax, edx
add eax, eax
sub ebx, eax
add bl, 0x26
jmp 0x41ee6f
mov eax, dword [esi + 0x10]
add eax, 2
cmp edi, eax
jne 0x41f114
lea eax, [ecx - 0xede9af0]
mov edx, dword [esi + 0x1c]
lea ebx, [ecx + edx]
add ebx, 0xf1216510
and eax, edx
add eax, eax
sub ebx, eax
add bl, 0x90
jmp 0x41ed28
cmp edi, dword [esi + 0x2c]
jne 0x41f139
lea eax, [ecx - 0x389c540c]
mov edx, dword [esi + 0x1c]
lea ebx, [ecx + edx]
add ebx, 0xc763abf4
and eax, edx
add eax, eax
sub ebx, eax
add bl, 0x54
jmp 0x41ecde
mov ebx, edi
mov edi, dword [esi + 0x10]
lea eax, [edi + 4]
cmp ebx, eax
jne 0x41f165
lea eax, [ecx + 0x64246e40]
mov edx, dword [esi + 0x1c]
and eax, edx
lea ebx, [ecx + edx]
add ebx, 0x64246e40
add eax, eax
sub ebx, eax
add bl, 0x40
jmp 0x41ee1d
lea eax, [edi + 6]
cmp dword [esi + 0x14], eax
jne 0x41f18d
lea eax, [ecx - 0x625a0d28]
mov edx, dword [esi + 0x1c]
lea ebx, [ecx + edx]
add ebx, 0x9da5f2d8
and eax, edx
add eax, eax
sub ebx, eax
add bl, 0x18
jmp 0x41f009
mov ebx, edx
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x14]
jmp 0x41eb52
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x1c]
lea edx, [eax + ecx]
add edx, 0xb81278be
add eax, 0xb81278be
and eax, ecx
add eax, eax
sub edx, eax
add dl, 0xce
mov dword [esi + 0x18], edx
lea eax, [edi - 0x4e]
add edi, 0xffffffaf
jmp 0x41e966
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x1c]
lea edx, [eax + ecx]
add edx, 0x1b51b672
add eax, 0x1b51b672
and eax, ecx
add eax, eax
sub edx, eax
add dl, 0xe2
mov dword [esi + 0x18], edx
jmp 0x41e958
mov edx, 0x1414588
jmp 0x41f1f3
xor edx, edx
lea eax, [esi + edx]
add eax, 0x110
mov dword [esi + 0x2c], eax
mov dword [esi + 0x9c], 0xe8fb8942
mov dword [esi + 0xa0], 0xe5e1dae7
mov dword [esi + 0xa4], 0x53b29bec
lea eax, [esi + 0xa8]
xorps xmm0, xmm0
movups xmmword [eax], xmm0
mov byte [eax + 0x10], 0
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov ebx, dword [eax]
xor eax, eax
cmp edi, eax
ja 0x41f5c2
mov dl, byte [esi + eax + 0x9c]
movzx ecx, dl
mov dword [esi + 0xc], ecx
lea ecx, [ebx + 1]
cmp edi, ecx
jae 0x41f282
cmp ebx, eax
ja 0x41f5cd
mov dword [esi + 0x18], edx
mov dword [esi + 0x10], ecx
lea ecx, [edi + ebx]
lea edx, [ebx + 3]
mov dword [esi + 0x14], ecx
cmp ecx, eax
jbe 0x41f2c2
cmp edi, edx
jne 0x41f354
mov ecx, ebx
jmp 0x41f497
je 0x41f42c
mov dword [esi + 0x10], ecx
mov ecx, ebx
add ebx, 2
cmp edi, ebx
je 0x41f3fc
lea ebx, [ecx + 3]
cmp edi, ebx
jne 0x41f38f
lea ebx, [eax + 0x1116db54]
mov edx, dword [esi + 0xc]
and ebx, edx
add edx, eax
add edx, 0x1116db54
add ebx, ebx
sub edx, ebx
add dl, 0xb4
jmp 0x41f3b6
mov dword [esi + 0x20], edx
cmp edi, edx
jae 0x41f380
mov dword [esi + 0x1c], ebx
lea ebx, [eax + 0x573b6db4]
mov ecx, dword [esi + 0xc]
lea edx, [eax + ecx]
add edx, 0x573b6db4
and ebx, ecx
add ebx, ebx
sub edx, ebx
add dl, 0x14
mov dword [esi + 0x24], edx
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x18]
cmp dword [esi + 0x14], 6
je 0x41f3cc
mov ebx, dword [esi + 0x1c]
add ebx, 6
mov dword [esi + 0x10], ebx
cmp edi, dword [esi + 0x10]
jbe 0x41f436
lea ebx, [eax - 0x36d6dc1c]
mov dword [esi + 0x10], ebx
mov ebx, dword [esi + 0xc]
add ebx, eax
add ebx, 0xc92923e4
mov dword [esi + 0x24], ebx
mov ebx, dword [esi + 0x10]
and ebx, dword [esi + 0xc]
add ebx, ebx
sub dword [esi + 0x24], ebx
mov ebx, dword [esi + 0x24]
add bl, 0xc4
mov dword [esi + 0x24], ebx
cmp edi, 9
ja 0x41f4c3
cmp edi, ecx
jne 0x41f55d
mov ebx, dword [esi + 0x1c]
jmp 0x41f42c
mov edx, dword [esi + 0xc]
lea ecx, [ebx + 8]
cmp edi, ecx
jne 0x41f22c
lea ecx, [eax - 0x79124a70]
mov edi, edx
add edx, eax
add edx, 0x86edb590
and ecx, edi
add ecx, ecx
sub edx, ecx
add dl, 0x10
jmp 0x41f4e3
mov ecx, dword [esi + 0x10]
cmp edi, ecx
jne 0x41f3bd
mov edx, dword [esi + 0x18]
jmp 0x41f42c
lea ebx, [ecx + 5]
cmp edi, ebx
jne 0x41f465
lea ebx, [eax - 0x40724944]
mov edx, dword [esi + 0xc]
and ebx, edx
add edx, eax
add edx, 0xbf8db6bc
add ebx, ebx
sub edx, ebx
add dl, 0xdc
add edi, ecx
mov ebx, ecx
jmp 0x41f509
mov dword [esi + 0x1c], ebx
cmp edi, dword [esi + 0x20]
mov edx, dword [esi + 0x18]
jne 0x41f49c
lea ebx, [eax + 0x75d6da3c]
and ebx, dword [esi + 0xc]
add ebx, ebx
mov edx, dword [esi + 0xc]
add edx, eax
add edx, 0x75d6da3c
sub edx, ebx
add dl, 0x5c
mov byte [esi + eax + 0x9c], dl
mov ebx, dword [esi + 0x1c]
not ebx
add ebx, eax
movzx eax, dl
sub ebx, eax
mov eax, ebx
mov ebx, ecx
mov edx, dword [esi + 0xc]
lea ecx, [eax - 0x32edb810]
and ecx, edx
add edx, eax
add edx, 0xcd1247f0
add ecx, ecx
sub edx, ecx
add dl, 0x70
mov byte [esi + eax + 0x9c], dl
sub eax, edi
inc edi
mov dl, byte [esi + eax + 0x9a]
add eax, 0xfffffffe
movzx ecx, dl
add ecx, ebx
jmp 0x41f50e
cmp edi, ecx
mov ebx, dword [esi + 0x1c]
je 0x41f475
cmp edi, dword [esi + 0x20]
jne 0x41f58f
mov edx, dword [esi + 0xc]
lea ecx, [eax - 0x200db7ac]
and ecx, edx
add edx, eax
add edx, 0xdff24854
add ecx, ecx
sub edx, ecx
add dl, 0xb4
jmp 0x41f509
lea ebx, [ecx + 7]
cmp edi, ebx
mov ebx, ecx
mov ecx, dword [esi + 0x10]
jne 0x41f258
lea ebx, [eax + 0x18e9236c]
mov edx, dword [esi + 0xc]
add edx, eax
add edx, 0x18e9236c
and ebx, dword [esi + 0xc]
add ebx, ebx
sub edx, ebx
add dl, 0xc
mov byte [esi + eax + 0x9c], dl
dec eax
mov ebx, ecx
jmp 0x41f510
mov ebx, dword [esi + 0x1c]
add ebx, 5
cmp edi, ebx
jne 0x41f51f
lea ecx, [eax - 0x47edb770]
mov edi, dword [esi + 0xc]
lea edx, [eax + edi]
add edx, 0xb8124890
and ecx, edi
add ecx, ecx
sub edx, ecx
add dl, 0x10
jmp 0x41f4e0
lea edi, [eax + 0x70249120]
mov ebx, dword [esi + 0xc]
lea ecx, [eax + ebx]
add ecx, 0x70249120
and edi, ebx
add edi, edi
sub ecx, edi
add dl, cl
add dl, 0x20
mov ebx, dword [esi + 0x1c]
lea edi, [eax - 0x38a0012c]
mov ecx, dword [esi + 0xc]
and edi, ecx
add ecx, eax
add ecx, 0xc75ffed4
add edi, edi
sub ecx, edi
add cl, dl
add cl, 0x34
mov byte [esi + eax + 0x9c], cl
mov edi, dword [esi + 0x14]
movzx ecx, dl
not ecx
add eax, ecx
inc eax
cmp eax, 0x1d
jb 0x41f23c
jmp 0x41f5c9
mov ebx, dword [esi + 0x1c]
add ebx, 2
cmp edi, ebx
je 0x41f497
lea ebx, [eax + 0x27dfffc4]
mov dword [esi + 0x28], ebx
mov ebx, dword [esi + 0xc]
add ebx, eax
add ebx, 0x27dfffc4
mov dword [esi + 0x24], ebx
mov ebx, dword [esi + 0x28]
and ebx, dword [esi + 0xc]
add ebx, ebx
sub dword [esi + 0x24], ebx
mov ebx, dword [esi + 0x24]
add bl, 0xa4
mov dword [esi + 0x24], ebx
jmp 0x41f2f4
cmp edi, dword [esi + 0x20]
je 0x41f3cc
mov edx, dword [esi + 0xc]
mov ebx, dword [esi + 0x1c]
lea ecx, [ebx + 2]
cmp edi, ecx
jne 0x41f5a8
lea ecx, [eax - 0x551b6eb8]
and ecx, edx
add edx, eax
add edx, 0xaae49148
add ecx, ecx
sub edx, ecx
add dl, 8
jmp 0x41f509
add ebx, 2
cmp edi, ebx
je 0x41f3cc
cmp edi, dword [esi + 0x10]
jne 0x41f33b
jmp 0x41f34c
lea ecx, [ebx + 5]
cmp edi, ecx
je 0x41f27b
mov ecx, dword [esi + 0x24]
mov byte [esi + eax + 0x9c], cl
jmp 0x41f510
mov eax, 0xe922a4
jmp 0x41f5d2
xor eax, eax
jmp 0x41f5d2
mov eax, 0x16db4f0
add eax, esi
add eax, 0x9c
mov dword [esi + 0x28], eax
mov dword [esi + 0x198], 0x3a31d59c
mov dword [esi + 0x19c], 0xff964b39
mov byte [esi + 0x1a0], 0xde
lea eax, [esi + 0x1a1]
xor ecx, ecx
mov dword [eax + 0xf], ecx
mov dword [eax + 0x13], ecx
xorps xmm0, xmm0
movups xmmword [eax], xmm0
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov ecx, dword [eax]
xor eax, eax
cmp edi, eax
ja 0x41f7ef
mov dl, byte [esi + eax + 0x198]
mov byte [esi + 0x10], dl
movzx edx, dl
lea ebx, [ecx + 1]
mov dword [esi + 0xc], ebx
cmp edi, ebx
jae 0x41f67d
cmp ecx, eax
ja 0x41f7fa
lea ebx, [edi + ecx]
cmp ebx, eax
jbe 0x41f689
mov dword [esi + 0x10], ebx
mov ebx, edi
lea edi, [ecx + 8]
cmp ebx, edi
mov edi, ebx
je 0x41f77e
mov ebx, edi
lea edi, [ecx + 2]
cmp ebx, edi
jne 0x41f60b
lea edi, [eax + 0x32]
and edi, edx
add edi, edi
add edx, eax
sub edx, edi
add edx, 0x93ad6ad4
mov edi, dword [esi + 0x10]
jmp 0x41f765
jne 0x41f6ce
mov edx, ecx
mov bl, byte [esi + 0x10]
jmp 0x41f73c
cmp ebx, 8
je 0x41f6d9
cmp edi, dword [esi + 0xc]
je 0x41f77e
mov dword [esi + 0x14], edi
lea edi, [ecx + 2]
cmp dword [esi + 0x14], edi
mov edi, dword [esi + 0x14]
je 0x41f7a4
lea edi, [ecx + 3]
cmp dword [esi + 0x14], edi
jne 0x41f7b1
lea edi, [eax + 0xdd]
and edi, edx
add edi, edi
add edx, eax
sub edx, edi
add edx, 0xbed2a6d2
jmp 0x41f763
mov ebx, edi
lea edi, [ecx + 2]
cmp ebx, edi
mov edi, ebx
jne 0x41f747
mov dword [esi + 0x14], edi
lea edi, [eax - 0x623987d7]
and edi, edx
add edi, edi
lea ebx, [edx + eax]
add ebx, 0x9dc67829
sub ebx, edi
add bl, 0xe1
mov byte [esi + eax + 0x198], bl
movzx edi, bl
not ecx
add ecx, eax
mov eax, ecx
sub eax, edi
lea ebx, [eax - 0x6324891c]
and ebx, edx
add edx, eax
add edx, 0x9cdb76e4
add ebx, ebx
sub edx, ebx
add dl, 0xc4
mov byte [esi + eax + 0x198], dl
add edi, dword [esi + 0x14]
sub ecx, edi
mov edi, dword [esi + 0x14]
inc edi
mov bl, byte [esi + ecx + 0x196]
add ecx, 0xfffffffe
mov eax, ecx
mov edx, dword [esi + 0xc]
movzx ecx, bl
add ecx, edx
add eax, ecx
mov ecx, edx
jmp 0x41f7a5
mov ebx, edi
lea edi, [ecx + 3]
cmp ebx, edi
jne 0x41f771
lea edi, [eax + 9]
and edi, edx
add edi, edi
add edx, eax
sub edx, edi
add edx, 0xf5e6f2ca
add ebx, ecx
mov edi, ebx
not edx
or edx, 0xffffff00
add eax, edx
jmp 0x41f7a5
lea edi, [ecx + 9]
cmp ebx, edi
mov edi, ebx
jne 0x41f63a
mov ebx, edi
lea edi, [eax - 0x5e8d82c3]
lea ecx, [eax + edx]
add ecx, 0xa1727d3d
and edi, edx
add edi, edi
sub ecx, edi
mov edi, ebx
add cl, 0x55
mov byte [esi + eax + 0x198], cl
mov ecx, dword [esi + 0xc]
dec eax
inc eax
cmp eax, 0x20
jb 0x41f61b
jmp 0x41f7f6
lea edi, [ecx + 9]
cmp dword [esi + 0x14], edi
mov edi, dword [esi + 0x14]
je 0x41f67f
lea edi, [ecx + 4]
cmp dword [esi + 0x14], edi
mov edi, dword [esi + 0x14]
je 0x41f7a4
lea edi, [eax - 0xeb0145]
lea ebx, [eax + edx]
add ebx, 0xff14febb
and edi, edx
add edi, edi
sub ebx, edi
mov edi, dword [esi + 0x14]
add bl, 0xe3
mov byte [esi + eax + 0x198], bl
jmp 0x41f7a5
mov eax, 0x130245f
jmp 0x41f7ff
xor eax, eax
jmp 0x41f7ff
mov eax, 0x15b25a4
add eax, esi
add eax, 0x198
mov dword [esi + 0x24], eax
xorps xmm0, xmm0
lea eax, [esi + 0x20a]
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0
mov dword [esi + 0x204], 0xa5c8c33d
mov word [esi + 0x208], 0xe98a
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov ecx, edi
mov edi, dword [eax]
xor eax, eax
cmp ecx, eax
ja 0x41fcd2
mov dword [esi + 0x10], ebx
movzx edx, byte [esi + eax + 0x204]
lea ebx, [edi + 1]
mov dword [esi + 0x14], ebx
cmp ecx, ebx
mov dword [esi + 0xc], ecx
jae 0x41f8ed
cmp edi, eax
ja 0x41fcdd
lea ecx, [eax + 0xff0ae81]
lea ebx, [eax + edx]
add ebx, 0xff0ae81
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x79
mov dword [esi + 0x10], ebx
mov ecx, edi
mov edi, dword [esi + 0xc]
lea ebx, [edi + ecx]
mov dword [esi + 0x1c], ebx
cmp ebx, eax
ja 0x41fcb7
mov dword [esi + 0x18], ecx
lea ebx, [ecx + 5]
cmp edi, ebx
jae 0x41f93e
mov dword [esi + 0x20], ebx
lea ecx, [eax + 0x49e6e3bd]
lea ebx, [eax + edx]
add ebx, 0x49e6e3bd
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0xd5
cmp dword [esi + 0x1c], 0x10
jne 0x41f961
lea ecx, [eax - 0x6665b3be]
lea ebx, [eax + edx]
add ebx, 0x999a4c42
and ecx, edx
add ecx, ecx
sub ebx, ecx
sub bl, dl
add bl, 0x32
jmp 0x41fa0d
jne 0x41f90f
lea ecx, [eax - 0x224b54c9]
lea ebx, [eax + edx]
add ebx, 0xddb4ab37
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x7f
mov ecx, dword [esi + 0xc]
jmp 0x41fa6c
lea ecx, [edi + 2]
mov ebx, edi
mov edi, dword [esi + 0xc]
cmp edi, ecx
jne 0x41f9ba
lea ecx, [eax + 0x718272b1]
mov edi, ebx
lea ebx, [eax + edx]
add ebx, 0x718272b1
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x29
jmp 0x41fa3d
cmp edi, dword [esi + 0x14]
jne 0x41f9e7
lea ecx, [eax + 0x1fe15d02]
lea ebx, [eax + edx]
add ebx, 0x1fe15d02
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0xf2
jmp 0x41f9b0
mov ecx, dword [esi + 0x18]
add ecx, 0xa
mov edi, dword [esi + 0xc]
cmp edi, ecx
jbe 0x41fa7f
lea ecx, [eax - 0x63fbbbf7]
lea ebx, [eax + edx]
add ebx, 0x9c044409
and ecx, edx
add ecx, ecx
sub ebx, ecx
mov ecx, dword [esi + 0xc]
add bl, 0xc1
cmp ecx, dword [esi + 0x14]
mov edi, ecx
jne 0x41fb23
lea ecx, [eax + 0x3fc2ba04]
lea ebx, [eax + edx]
add ebx, 0x3fc2ba04
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0xe4
mov ecx, edi
mov edi, dword [esi + 0x18]
jmp 0x41fa6c
lea ecx, [ebx + 4]
cmp edi, ecx
jne 0x41fac7
lea ecx, [eax + 0x54875813]
mov edi, ebx
lea ebx, [eax + edx]
add ebx, 0x54875813
and ecx, edx
add ecx, ecx
sub ebx, ecx
mov ecx, dword [esi + 0xc]
add bl, 0x7b
jmp 0x41fc75
mov ecx, dword [esi + 0x18]
add ecx, 2
cmp edi, ecx
jne 0x41fafc
lea ecx, [eax + 0x477cebf6]
lea ebx, [eax + edx]
add ebx, 0x477cebf6
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x46
lea edi, [eax - 0x1c7ed001]
and edi, edx
add edi, edi
lea ecx, [edx + eax]
add ecx, 0xe3812fff
sub ecx, edi
add cl, 7
mov byte [esi + eax + 0x204], cl
mov edi, dword [esi + 0x18]
not edi
add edi, eax
movzx eax, cl
sub edi, eax
mov eax, edi
mov edi, dword [esi + 0x14]
lea ecx, [eax + 0x2d6813bc]
and ecx, edx
add edx, eax
add edx, 0x2d6813bc
add ecx, ecx
sub edx, ecx
add dl, 0xdc
mov byte [esi + eax + 0x204], dl
mov ecx, dword [esi + 0xc]
sub eax, ecx
inc ecx
movzx edx, byte [esi + eax + 0x202]
add eax, 0xfffffffe
add edx, edi
add eax, edx
inc eax
cmp eax, 0x1a
jb 0x41f841
jmp 0x41fcd9
mov ecx, edi
cmp edi, dword [esi + 0x14]
jne 0x41fb4a
lea ecx, [eax + 0x2fd20b83]
lea ebx, [eax + edx]
add ebx, 0x2fd20b83
and ecx, edx
add ecx, ecx
sub ebx, ecx
lea ecx, [eax - 0x441a5ef5]
and ecx, edx
add edx, eax
add edx, 0xbbe5a10b
add ecx, ecx
sub edx, ecx
add bl, 0x6b
add dl, 0xb3
mov byte [esi + eax + 0x204], dl
mov ecx, edi
jmp 0x41fc75
cmp ebx, eax
ja 0x41fcdd
lea ecx, [ebx + 6]
cmp edi, ecx
mov edi, ebx
mov ebx, dword [esi + 0x10]
jne 0x41f885
lea ecx, [eax - 0x793ca4a3]
lea ebx, [eax + edx]
add ebx, 0x86c35b5d
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x75
jmp 0x41fbea
mov ecx, dword [esi + 0x18]
add ecx, 3
cmp edi, ecx
jne 0x41fb7b
lea ecx, [eax - 0x24b54c90]
lea ebx, [eax + edx]
add ebx, 0xdb4ab370
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0xf0
jmp 0x41fbe7
mov ecx, dword [esi + 0x18]
add ecx, 2
cmp edi, ecx
jne 0x41fb9d
lea ecx, [eax - 0x71062814]
and ecx, edx
lea ebx, [eax + edx]
add ebx, 0x8ef9d7ec
add ecx, ecx
sub ebx, ecx
add bl, 0x8c
jmp 0x41fbe1
mov ecx, dword [esi + 0x18]
add ecx, 3
cmp edi, ecx
jne 0x41fbf9
lea ecx, [eax + 0x576d9a77]
lea ebx, [eax + edx]
add ebx, 0x576d9a77
and ecx, edx
add ecx, ecx
sub ebx, ecx
mov ecx, dword [esi + 0xc]
add bl, 0xbf
mov edi, dword [esi + 0x18]
jmp 0x41fc75
cmp edi, ebx
jne 0x41fc18
lea ecx, [eax + 0x6f187aea]
and ecx, edx
lea ebx, [eax + edx]
add ebx, 0x6f187aea
add ecx, ecx
sub ebx, ecx
add bl, 0x9a
jmp 0x41fbe1
mov ecx, edi
cmp edi, dword [esi + 0x20]
jne 0x41fc4c
lea ecx, [eax + 0x22c79f66]
lea ebx, [eax + edx]
add ebx, 0x22c79f66
and ecx, edx
add ecx, ecx
sub ebx, ecx
lea edi, [eax + 0x4fb36885]
and edi, edx
lea ecx, [eax + edx]
add ecx, 0x4fb36885
add edi, edi
sub ecx, edi
add bl, 0x36
add cl, bl
add cl, 0x5d
mov byte [esi + eax + 0x204], cl
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0xc], ecx
mov edi, dword [esi + 0x18]
movzx ecx, bl
not ecx
add eax, ecx
mov ecx, dword [esi + 0xc]
jmp 0x41fa70
cmp edi, dword [esi + 0x20]
jne 0x41fc7b
lea ecx, [eax + 0x12d6f0e5]
lea ebx, [eax + edx]
add ebx, 0x12d6f0e5
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0xbd
jmp 0x41fbe7
mov dword [esi + 0x20], ebx
mov ecx, dword [esi + 0x18]
add ecx, 7
cmp edi, ecx
mov ebx, dword [esi + 0x10]
jne 0x41f8c4
lea ecx, [eax + 0x2a81d158]
and ecx, edx
lea ebx, [eax + edx]
add ebx, 0x2a81d158
add ecx, ecx
sub ebx, ecx
add bl, 0x98
mov edi, dword [esi + 0x14]
mov ecx, dword [esi + 0xc]
jmp 0x41fc75
mov edi, dword [esi + 0x18]
lea ecx, [edi + 4]
cmp dword [esi + 0xc], ecx
mov ecx, dword [esi + 0xc]
jne 0x41fcab
lea ecx, [eax - 0x496a9920]
lea ebx, [eax + edx]
add ebx, 0xb69566e0
and ecx, edx
add ecx, ecx
sub ebx, ecx
mov ecx, dword [esi + 0xc]
add bl, 0xe0
dec eax
jmp 0x41fa70
mov ecx, dword [esi + 0x18]
add ecx, 6
cmp edi, ecx
mov ecx, edi
jne 0x41f98d
lea ecx, [eax - 0x31bfb8ad]
lea ebx, [eax + edx]
add ebx, 0xce404753
and ecx, edx
add ecx, ecx
sub ebx, ecx
mov ecx, dword [esi + 0xc]
add bl, 0xbb
jmp 0x41f9b2
mov byte [esi + eax + 0x204], bl
jmp 0x41fa70
lea ebx, [eax + edx]
add ebx, 0xd12689b7
add eax, 0xd12689b7
and eax, edx
add eax, eax
sub ebx, eax
dec bl
jmp 0x41f82f
mov eax, 0x147e6b9
jmp 0x41fce2
mov eax, 0x16102fc
add eax, esi
add eax, 0x204
mov dword [esi + 0x18], 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 + 0x158]
mov eax, closesocket
sub eax, ecx
cmp eax, edi
jb 0x421d35
mov edx, dword [esi + 0x148]
mov eax, dword [esi + 0x15c]
mov dword [esi + 0x160], 0
mov dword [esi + 0x1c], ecx
add ecx, edi
mov dword [esi + 0x14], 0xf
lea ebx, [esi + 0x160]
cmp ecx, 0x10
mov dword [esi + 0x10], ecx
jb 0x41fd93
mov dword [esi + 0x20], eax
mov eax, ecx
or eax, 0xf
mov dword [esi + 0xc], edx
js 0x41fd6d
cmp eax, 0x17
mov ebx, 0x16
mov dword [esi + 0x14], eax
cmovae ebx, eax
lea eax, [ebx + 1]
cmp ebx, 0xfff
jae 0x41fd79
mov dword [esi + 0x14], ebx
push eax
call fcn.004716fe
jmp 0x41fd7f
mov dword [esi + 0x14], closesocket
mov eax, closesocket
push eax
call fcn.0040130b
add esp, 4
mov ebx, eax
mov dword [esi + 0x160], eax
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x20]
cmp eax, 0x10
lea eax, [esi + 0x148]
cmovb edx, eax
mov dword [esi + 0xc], edx
mov dword [esi + 0x170], ecx
mov eax, dword [esi + 0x14]
mov dword [esi + 0x174], eax
push edi
push dword [esi + 0x18]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, ebx
push dword [esi + 0x1c]
push dword [esi + 0xc]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x10]
mov byte [ebx + eax], 0
push dword [esi + 0x24]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ecx, eax
mov ebx, dword [esi + 0x170]
mov edi, dword [esi + 0x174]
mov eax, edi
sub eax, ebx
cmp eax, ecx
jae 0x41fed5
mov eax, closesocket
sub eax, ebx
cmp eax, ecx
jb 0x421d35
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 0x41fe54
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 0x41fe54
add edx, edi
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x420b67
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 + 0x170], eax
mov dword [esi + 0x174], edx
cmp edi, 0x10
jb 0x41ff09
mov eax, dword [esi + 0x160]
push ebx
mov dword [esi + 0x18], 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 + 0x24]
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 0x41ff36
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x421d3a
add edi, 0x24
mov ecx, edi
jmp 0x41ff39
mov edx, edi
mov edi, ecx
add edi, ebx
mov dword [esi + 0x170], edi
lea eax, [esi + 0x160]
cmp edx, 0x10
jb 0x41fef2
mov eax, dword [esi + 0x160]
add ebx, eax
push ecx
push dword [esi + 0x24]
push ebx
mov ebx, eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebx + edi], 0
jmp 0x41ff4b
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 + 0x14]
push dword [esi + 0x24]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0xc]
mov byte [edi + eax], 0
jmp 0x41ff45
mov eax, dword [esi + 0x18]
push ecx
push eax
call fcn.00471733
add esp, 8
mov edi, ebx
mov dword [esi + 0x160], edi
movsd xmm0, qword [esi + 0x170]
movsd qword [esi + 0x140], xmm0
movups xmm0, xmmword [esi + 0x160]
movaps xmmword [esi + 0x130], xmm0
mov dword [esi + 0x170], 0
mov dword [esi + 0x174], 0xf
mov byte [esi + 0x160], 0
mov ecx, dword [esi + 0x250]
cmp dword [esi + 0x254], 0x10
lea edx, [esi + 0x240]
jb 0x41ff9f
mov edx, dword [esi + 0x240]
mov edi, dword [esi + 0x140]
mov eax, dword [esi + 0x144]
mov dword [esi + 0xc], eax
sub eax, edi
cmp eax, ecx
jae 0x420095
mov eax, closesocket
sub eax, edi
cmp eax, ecx
jb 0x421d35
mov dword [esi + 0x1c], edx
mov dword [esi + 0x18], ecx
add ecx, edi
mov dword [esi + 0x10], ecx
or ecx, 0xf
mov dword [esi + 0x14], closesocket
mov eax, closesocket
js 0x420014
mov eax, dword [esi + 0xc]
mov edx, eax
shr edx, 1
mov ebx, edx
xor ebx, 0x7fffffff
cmp ebx, eax
mov eax, closesocket
jb 0x420014
add edx, dword [esi + 0xc]
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x420b85
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 + 0x140], eax
mov dword [esi + 0x144], edx
cmp dword [esi + 0xc], 0x10
jb 0x4200cb
mov eax, dword [esi + 0x130]
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 + 0x18]
push dword [esi + 0x1c]
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 0x4200f8
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x421d3a
mov ecx, dword [esi + 0xc]
add ecx, 0x24
jmp 0x4200fb
lea ebx, [edi + ecx]
mov eax, ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x140], ebx
lea ebx, [esi + 0x130]
cmp dword [esi + 0xc], 0x10
jb 0x4200b5
mov ebx, dword [esi + 0x130]
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 0x42010d
push edi
lea eax, [esi + 0x130]
push eax
push ecx
mov ebx, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, ebx
push dword [esi + 0x18]
push dword [esi + 0x1c]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x10]
mov byte [ebx + eax], 0
jmp 0x420107
mov eax, dword [esi + 0x14]
push ecx
push eax
call fcn.00471733
add esp, 8
mov ebx, edi
mov dword [esi + 0x130], ebx
movsd xmm0, qword [esi + 0x140]
movsd qword [esi + 0xf0], xmm0
movaps xmm0, xmmword [esi + 0x130]
movaps xmmword [esi + 0xe0], xmm0
mov dword [esi + 0x140], 0
mov dword [esi + 0x144], 0xf
mov byte [esi + 0x130], 0
push dword [esi + 0x28]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ecx, eax
mov ebx, dword [esi + 0xf0]
mov edi, dword [esi + 0xf4]
mov eax, edi
sub eax, ebx
cmp eax, ecx
jae 0x420245
mov eax, closesocket
sub eax, ebx
cmp eax, ecx
jb 0x421d35
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 0x4201c4
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 0x4201c4
add edx, edi
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x420ba3
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 + 0xf0], eax
mov dword [esi + 0xf4], edx
cmp edi, 0x10
jb 0x420279
mov eax, dword [esi + 0xe0]
push ebx
mov dword [esi + 0x18], 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 + 0x28]
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 0x4202a6
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x421d3a
add edi, 0x24
mov ecx, edi
jmp 0x4202a9
mov edx, edi
mov edi, ecx
add edi, ebx
mov dword [esi + 0xf0], edi
lea eax, [esi + 0xe0]
cmp edx, 0x10
jb 0x420262
mov eax, dword [esi + 0xe0]
add ebx, eax
push ecx
push dword [esi + 0x28]
push ebx
mov ebx, eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebx + edi], 0
jmp 0x4202bb
push ebx
lea eax, [esi + 0xe0]
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 + 0x28]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0xc]
mov byte [edi + eax], 0
jmp 0x4202b5
mov eax, dword [esi + 0x18]
push ecx
push eax
call fcn.00471733
add esp, 8
mov edi, ebx
mov dword [esi + 0xe0], edi
movsd xmm0, qword [esi + 0xf0]
movsd qword [esi + 0x70], xmm0
movaps xmm0, xmmword [esi + 0xe0]
movaps xmmword [esi + 0x60], xmm0
mov dword [esi + 0xf0], 0
mov dword [esi + 0xf4], 0xf
mov byte [esi + 0xe0], 0
mov ecx, dword [esi + 0x290]
cmp dword [esi + 0x294], 0x10
lea edx, [esi + 0x280]
jb 0x420309
mov edx, dword [esi + 0x280]
mov edi, dword [esi + 0x70]
mov eax, dword [esi + 0x74]
mov dword [esi + 0xc], eax
sub eax, edi
cmp eax, ecx
jae 0x4203f0
mov eax, closesocket
sub eax, edi
cmp eax, ecx
jb 0x421d35
mov dword [esi + 0x1c], edx
mov dword [esi + 0x18], ecx
add ecx, edi
mov dword [esi + 0x10], ecx
or ecx, 0xf
mov dword [esi + 0x14], closesocket
mov eax, closesocket
js 0x420378
mov eax, dword [esi + 0xc]
mov edx, eax
shr edx, 1
mov ebx, edx
xor ebx, 0x7fffffff
cmp ebx, eax
mov eax, closesocket
jb 0x420378
add edx, dword [esi + 0xc]
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x420bc1
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 + 0x70], eax
mov dword [esi + 0x74], edx
cmp dword [esi + 0xc], 0x10
jb 0x42041d
mov eax, dword [esi + 0x60]
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 + 0x18]
push dword [esi + 0x1c]
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 0x420447
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x421d3a
mov ecx, dword [esi + 0xc]
add ecx, 0x24
jmp 0x42044a
lea ebx, [edi + ecx]
mov eax, ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x70], ebx
lea ebx, [esi + 0x60]
cmp dword [esi + 0xc], 0x10
jb 0x420407
mov ebx, dword [esi + 0x60]
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 0x420459
push edi
lea eax, [esi + 0x60]
push eax
push ecx
mov ebx, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, ebx
push dword [esi + 0x18]
push dword [esi + 0x1c]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x10]
mov byte [ebx + eax], 0
jmp 0x420456
mov eax, dword [esi + 0x14]
push ecx
push eax
call fcn.00471733
add esp, 8
mov ebx, edi
mov dword [esi + 0x60], ebx
movsd xmm0, qword [esi + 0x70]
movsd qword [esi + 0x90], xmm0
movaps xmm0, xmmword [esi + 0x60]
movaps xmmword [esi + 0x80], xmm0
mov dword [esi + 0x70], 0
mov dword [esi + 0x74], 0xf
mov byte [esi + 0x60], 0
push dword [esi + 0x2c]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ecx, eax
mov ebx, dword [esi + 0x90]
mov edx, dword [esi + 0x94]
mov eax, edx
sub eax, ebx
cmp eax, ecx
jae 0x42058e
mov eax, closesocket
sub eax, ebx
cmp eax, ecx
jb 0x421d35
mov dword [esi + 0x18], 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 0x420508
mov eax, edx
shr edx, 1
mov edi, edx
xor edi, 0x7fffffff
cmp edi, eax
mov eax, closesocket
mov edi, dword [esi + 0x10]
jb 0x420508
add edx, dword [esi + 0xc]
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x420bdb
mov dword [esi + 0x14], edx
push eax
call fcn.0040130b
add esp, 4
mov ecx, eax
mov edx, dword [esi + 0x14]
mov dword [esi + 0x90], edi
mov dword [esi + 0x94], edx
mov edi, dword [esi + 0xc]
cmp edi, 0x10
jb 0x4205c3
mov eax, dword [esi + 0x80]
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 + 0x18]
push dword [esi + 0x2c]
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 0x4205f5
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
lea edi, [esi + 0x40]
jae 0x421d3a
add edx, 0x24
mov ecx, edx
jmp 0x4205fb
mov edi, ecx
add edi, ebx
mov dword [esi + 0x90], edi
lea eax, [esi + 0x80]
cmp edx, 0x10
jb 0x4205a9
mov eax, dword [esi + 0x80]
add ebx, eax
push ecx
push dword [esi + 0x2c]
push ebx
mov ebx, eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebx + edi], 0
lea edi, [esi + 0x40]
jmp 0x42060b
push ebx
lea eax, [esi + 0x80]
push eax
push ecx
mov edi, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, edi
push dword [esi + 0x18]
push dword [esi + 0x2c]
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 + 0x40]
jmp 0x420605
lea edi, [esi + 0x40]
mov eax, dword [esi + 0x14]
push ecx
push eax
call fcn.00471733
add esp, 8
mov dword [esi + 0x80], ebx
movsd xmm0, qword [esi + 0x90]
movsd qword [esi + 0x270], xmm0
movaps xmm0, xmmword [esi + 0x80]
movaps xmmword [esi + 0x260], xmm0
mov dword [esi + 0x90], 0
mov dword [esi + 0x94], 0xf
mov byte [esi + 0x80], 0
sub esp, 0xc
mov al, byte [esi + 0x180]
mov byte [esp], al
lea eax, [esi + 0x220]
mov dword [esp + 8], eax
lea eax, [esi + 0x260]
mov dword [esp + 4], eax
mov ecx, edi
call fcn.00451d58
push dword [esi + 0x34]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ebx, dword [esi + 0x50]
mov edx, dword [esi + 0x54]
mov ecx, edx
sub ecx, ebx
cmp ecx, eax
jae 0x420757
mov ecx, closesocket
sub ecx, ebx
cmp ecx, eax
jb 0x421d35
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 0x4206e5
mov eax, edx
shr edx, 1
mov edi, edx
xor edi, 0x7fffffff
cmp edi, eax
mov eax, closesocket
mov edi, closesocket
jb 0x4206e5
add edx, dword [esi + 0x10]
cmp ecx, edx
mov edi, edx
cmovae edi, ecx
lea eax, [edi + 1]
cmp eax, 0x1000
jb 0x420bf5
push eax
call fcn.0040130b
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], edi
mov eax, dword [esi + 0x10]
cmp eax, 0x10
jb 0x42077f
mov edx, dword [esi + 0x40]
push ebx
mov dword [esi + 0x18], 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 + 0x34]
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 0x4207ae
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x421d3a
mov ecx, edi
mov edi, eax
add edi, ebx
mov dword [esi + 0x50], edi
cmp edx, 0x10
jb 0x420768
mov ecx, dword [esi + 0x40]
add ebx, ecx
push eax
push dword [esi + 0x34]
push ebx
mov ebx, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebx + edi], 0
jmp 0x4207be
push ebx
lea eax, [esi + 0x40]
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 + 0x34]
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 0x4207bb
mov eax, dword [esi + 0x18]
push ecx
push eax
call fcn.00471733
add esp, 8
mov dword [esi + 0x40], ebx
movsd xmm0, qword [esi + 0x50]
movsd qword [esi + 0x190], xmm0
movups xmm0, xmmword [esi + 0x40]
movaps xmmword [esi + 0x180], xmm0
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 0xf
mov byte [esi + 0x40], 0
mov eax, dword [esi + 0x194]
mov dword [esi + 0x10], eax
cmp eax, 0x10
mov edi, dword [esi + 0x180]
lea eax, [esi + 0x180]
cmovae eax, edi
mov dword [esi + 0x14], eax
mov ebx, dword [esi + 0x108]
mov ecx, dword [esi + 0x10c]
mov eax, ecx
sub eax, ebx
mov edx, dword [esi + 0x190]
cmp eax, edx
mov dword [esi + 0xc], edi
jae 0x42090d
mov dword [esi + 0x18], ecx
mov eax, closesocket
sub eax, ebx
cmp eax, edx
jb 0x421d35
mov dword [esi + 0x24], edx
lea ecx, [ebx + edx]
mov dword [esi + 0x1c], ecx
or ecx, 0xf
mov dword [esi + 0x20], closesocket
mov eax, closesocket
js 0x420885
mov eax, ebx
add ebx, edx
mov dword [esi + 0x108], ebx
lea edi, [esi + 0xf8]
cmp ecx, 0x10
jb 0x420928
mov edi, dword [esi + 0xf8]
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 0x420988
test eax, eax
je 0x420c26
push eax
mov dword [esi + 0x10], edx
call fcn.004716fe
mov edx, dword [esi + 0x10]
add esp, 4
mov ecx, eax
jmp 0x41fe62
test eax, eax
je 0x420c30
push eax
mov dword [esi + 0x14], edx
call fcn.004716fe
mov edx, dword [esi + 0x14]
add esp, 4
mov ecx, eax
jmp 0x420022
test eax, eax
je 0x420c3a
push eax
mov dword [esi + 0x10], edx
call fcn.004716fe
mov edx, dword [esi + 0x10]
add esp, 4
mov ecx, eax
jmp 0x4201d2
test eax, eax
je 0x420c44
push eax
mov dword [esi + 0x14], edx
call fcn.004716fe
mov edx, dword [esi + 0x14]
add esp, 4
mov ecx, eax
jmp 0x420386
test eax, eax
je 0x420c4e
push eax
mov dword [esi + 0x14], edx
call fcn.004716fe
mov edx, dword [esi + 0x14]
add esp, 4
mov ecx, eax
jmp 0x420516
test eax, eax
je 0x420c58
mov edx, 0x121a6ae
jmp 0x41f1f3
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x41fe62
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x420022
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x4201d2
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x420386
xor ecx, ecx
xor edx, edx
dec edx
jmp 0x420516
mov edi, dword [0x4785dc]
test edi, edi
jne 0x420de4
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xa919895
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x420ce8
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x92e6ec45
cmp cx, 2
jb 0x420cd7
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x92e6ec45
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x420cc4
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x420dcb
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x420da0
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x420d9d
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 0x420d4a
add edx, dword [esi + 0x18]
mov eax, 0x92e6ec45
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x420d36
jmp 0x420d4f
mov eax, 0x92e6ec45
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x420d13
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 0x420dde
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x420dde
mov al, byte [edi]
mov ecx, 0x92e6ec45
mov ebx, 0x92e6ec45
cmp al, 0x2e
je 0x420da5
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x420d88
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x420dcb
mov al, byte [edi + 1]
test al, al
je 0x420dc6
add edi, 2
mov ecx, 0x92e6ec45
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x420db4
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x420dde
cmp dword [eax + 0x18], 0
jne 0x420c92
mov dword [0x4785dc], edi
push dword [esi + 0x30]
call edi
cmp eax, 0x64
je 0x41db84
cmp dword [esi + 0x10c], 0x10
jb 0x4211f8
mov eax, dword [esi + 0xf8]
jmp 0x4211fe
lea eax, [esi + 0xf8]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x108]
mov dword [esi + 0x1c], eax
mov dword [esi + 0x198], 0x70716010
mov dword [esi + 0x19c], 0x63746a73
mov dword [esi + 0x1a0], 0x737e277b
mov word [esi + 0x1a4], 0xcd78
xor eax, eax
mov dword [esi + 0x1aa], eax
mov dword [esi + 0x1a6], eax
mov dword [esi + 0x1ad], eax
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov ecx, dword [eax]
xor eax, eax
cmp edi, eax
ja 0x4211e7
mov dl, byte [esi + eax + 0x198]
movzx ebx, dl
mov dword [esi + 0x14], ebx
lea ebx, [ecx + 1]
mov dword [esi + 0x10], ebx
cmp edi, ebx
mov dword [esi + 0xc], edi
jae 0x420ed4
cmp ecx, eax
ja 0x42160d
lea edi, [ecx + 0x10]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
jae 0x420f54
mov ebx, ecx
mov ecx, edi
add edi, ebx
cmp edi, eax
jbe 0x420f95
lea edx, [ebx + 5]
cmp ecx, edx
je 0x4210e8
mov edi, ecx
mov ecx, ebx
lea edx, [ebx + 2]
cmp edi, edx
mov ebx, dword [esi + 0x14]
je 0x420ee9
mov edx, ebx
mov ebx, ecx
add ecx, 0xa
cmp edi, ecx
je 0x420f1b
jmp 0x420e57
jne 0x420eda
mov ebx, ecx
jmp 0x420f46
lea edi, [ecx + 2]
cmp dword [esi + 0xc], edi
mov ebx, dword [esi + 0x14]
jne 0x420ffa
lea edi, [eax - 0x281f3ba0]
and edi, ebx
add edi, edi
lea edx, [eax + ebx]
add edx, 0xd7e0c460
sub edx, edi
mov edi, dword [esi + 0xc]
add dl, 0x60
mov byte [esi + eax + 0x198], dl
not ecx
add ecx, eax
movzx eax, dl
sub ecx, eax
mov eax, ecx
mov edx, ebx
mov ebx, dword [esi + 0x10]
lea ecx, [eax - 0x155b5680]
and ecx, edx
add edx, eax
add edx, 0xeaa4a980
add ecx, ecx
sub edx, ecx
xor dl, 0x80
mov byte [esi + eax + 0x198], dl
sub eax, edi
inc edi
mov dl, byte [esi + eax + 0x196]
add eax, 0xfffffffe
movzx ecx, dl
add ecx, ebx
add eax, ecx
mov ecx, ebx
jmp 0x42116f
cmp edi, dword [esi + 0x10]
je 0x4210e8
lea edi, [ecx + 2]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
je 0x42103f
lea edi, [ecx + 5]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
jne 0x421113
mov dword [esi + 0x18], ecx
lea edx, [eax + 0x45b8bee0]
mov ebx, dword [esi + 0x14]
lea ecx, [eax + ebx]
add ecx, 0x45b8bee0
jmp 0x421159
lea edi, [ebx + 8]
cmp ecx, edi
jbe 0x421025
lea edi, [eax + 0x78ad98a0]
mov ecx, dword [esi + 0x14]
add ecx, eax
add ecx, 0x78ad98a0
and edi, dword [esi + 0x14]
add edi, edi
sub ecx, edi
add cl, 0xa0
mov dword [esi + 0x24], ecx
lea edi, [ebx + 5]
mov ecx, ebx
mov ebx, edi
mov edi, dword [esi + 0xc]
cmp edi, ebx
jbe 0x42109b
mov dword [esi + 0x18], ecx
lea ecx, [eax + 0x2bf6440]
mov ebx, dword [esi + 0x14]
lea edx, [eax + ebx]
add edx, 0x2bf6440
and ecx, ebx
add ecx, ecx
sub edx, ecx
add dl, 0x40
mov byte [esi + eax + 0x198], dl
jmp 0x42116c
lea edi, [ecx + 4]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
jne 0x421047
mov dword [esi + 0x18], ecx
lea edx, [eax - 0x319527a0]
lea ecx, [eax + ebx]
add ecx, 0xce6ad860
and edx, ebx
add edx, edx
sub ecx, edx
add cl, 0x60
jmp 0x421162
cmp ecx, dword [esi + 0x10]
je 0x4210e8
mov ecx, ebx
lea edi, [ebx + 3]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
jne 0x421139
mov dword [esi + 0x10], ecx
jmp 0x42110d
lea edi, [ecx + 5]
cmp dword [esi + 0xc], edi
jne 0x4210dc
mov dword [esi + 0x18], ecx
lea edx, [eax - 0xc0d5d60]
lea ecx, [eax + ebx]
add ecx, 0xf3f2a2a0
and edx, ebx
mov byte [esi + 0x10], 0xa0
add edx, edx
sub ecx, edx
lea edi, [eax - 0x4da705e0]
and edi, ebx
lea edx, [ebx + eax]
add edx, 0xb258fa20
add edi, edi
sub edx, edi
add cl, byte [esi + 0x10]
add dl, cl
add dl, 0x20
mov byte [esi + eax + 0x198], dl
mov edi, dword [esi + 0xc]
jmp 0x421162
cmp edi, dword [esi + 0x10]
mov ebx, dword [esi + 0x14]
je 0x420ed6
lea edx, [ecx + 2]
cmp edi, edx
je 0x420ee9
mov ebx, ecx
add ecx, 3
cmp edi, ecx
mov dword [esi + 0x18], ebx
jne 0x4211a5
lea edx, [eax - 0x1c11de40]
mov ebx, dword [esi + 0x14]
lea ecx, [eax + ebx]
add ecx, 0xe3ee21c0
and edx, ebx
mov byte [esi + 0x10], 0xc0
jmp 0x42106b
lea edi, [ecx + 9]
cmp dword [esi + 0xc], edi
jne 0x420e89
lea edi, [eax - 0x732ed020]
mov ecx, dword [esi + 0x14]
lea edx, [eax + ecx]
add edx, 0x8cd12fe0
and edi, ecx
add edi, edi
sub edx, edi
mov edi, dword [esi + 0xc]
add dl, 0xe0
mov byte [esi + eax + 0x198], dl
dec eax
mov ecx, dword [esi + 0x10]
jmp 0x42116f
lea edi, [ecx + 3]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
jne 0x420ea0
mov dword [esi + 0x18], ecx
lea edx, [eax + 0x6b408920]
mov ebx, dword [esi + 0x14]
lea ecx, [eax + ebx]
add ecx, 0x6b408920
jmp 0x42119a
lea edi, [ecx + 2]
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
jne 0x42117b
mov dword [esi + 0x18], ecx
lea edx, [eax + 0x34548be0]
mov ebx, dword [esi + 0x14]
lea ecx, [eax + ebx]
add ecx, 0x34548be0
and edx, ebx
add edx, edx
sub ecx, edx
add cl, 0xe0
add edi, dword [esi + 0x18]
movzx ecx, cl
not ecx
add eax, ecx
mov ecx, dword [esi + 0x18]
inc eax
cmp eax, 0x19
jb 0x420e67
jmp 0x4211f1
lea ebx, [ecx + 5]
mov dword [esi + 0x28], ebx
cmp edi, ebx
mov ebx, dword [esi + 0x14]
jne 0x4211bb
mov dword [esi + 0x18], ecx
lea edx, [eax + 0x59dc5620]
lea ecx, [eax + ebx]
add ecx, 0x59dc5620
and edx, ebx
add edx, edx
sub ecx, edx
add cl, 0x20
jmp 0x421165
lea ecx, [ebx + 6]
cmp edi, ecx
mov edx, dword [esi + 0x24]
jne 0x420fee
mov ecx, dword [esi + 0x18]
jmp 0x42103f
lea edi, [eax + 0x12c3e520]
mov ebx, dword [esi + 0x14]
add ebx, eax
add ebx, 0x12c3e520
mov dword [esi + 0x24], ebx
and edi, dword [esi + 0x14]
add edi, edi
mov ebx, dword [esi + 0x24]
sub ebx, edi
add bl, 0x20
mov dword [esi + 0x24], ebx
mov ebx, dword [esi + 0x28]
jmp 0x420fc5
mov eax, 0xe1d6a0
jmp 0x421612
xor eax, eax
jmp 0x421612
lea eax, [esi + 0xf8]
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x108]
mov dword [esi + 0x20], eax
mov dword [esi + 0xbc], 0x6e6d9ab6
mov dword [esi + 0xc0], 0x9b6e6c73
mov dword [esi + 0xc4], 0x7b64af6b
mov word [esi + 0xc8], 0xf566
xor eax, eax
mov dword [esi + 0xce], eax
mov dword [esi + 0xca], eax
mov word [esi + 0xd2], 0
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov edx, edi
mov eax, dword [eax]
mov dword [esi + 0xc], eax
xor eax, eax
lea edi, [esi + 0x198]
cmp edx, eax
ja 0x4215f2
mov bl, byte [esi + eax + 0xbc]
movzx edi, bl
mov dword [esi + 0x14], edi
mov ecx, dword [esi + 0xc]
lea edi, [ecx + 1]
mov dword [esi + 0x10], edi
cmp edx, edi
jae 0x4212e4
cmp dword [esi + 0xc], eax
ja 0x42199d
mov ecx, dword [esi + 0xc]
lea edi, [ecx + 0xa]
cmp edx, edi
jae 0x421376
mov ecx, dword [esi + 0xc]
lea edi, [edx + ecx]
cmp edi, eax
jbe 0x4213ad
mov ecx, dword [esi + 0xc]
lea edi, [ecx + 6]
cmp edx, edi
je 0x421550
cmp edx, dword [esi + 0x10]
jne 0x42150d
mov dword [esi + 0x18], edx
lea edi, [eax + 0xf6a24ca]
mov ecx, dword [esi + 0x14]
lea edx, [eax + ecx]
add edx, 0xf6a24ca
and edi, ecx
add edi, edi
sub edx, edi
add dl, 0x7a
jmp 0x4214b7
jne 0x4212eb
mov edi, dword [esi + 0xc]
jmp 0x421361
mov ecx, dword [esi + 0xc]
lea edi, [ecx + 2]
cmp edx, edi
jne 0x421430
lea edi, [eax - 0x6fda53cb]
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x14]
and edi, edx
add edi, edi
lea ebx, [eax + edx]
add ebx, 0x9025ac35
sub ebx, edi
add bl, 0x8d
mov byte [esi + eax + 0xbc], bl
movzx edi, bl
not ecx
add ecx, eax
mov eax, ecx
sub eax, edi
lea ebx, [eax - 0x4d02a5ec]
and ebx, edx
add edx, eax
add edx, 0xb2fd5a14
add ebx, ebx
sub edx, ebx
add dl, 0x74
mov byte [esi + eax + 0xbc], dl
mov edx, dword [esi + 0x18]
add edi, edx
sub ecx, edi
inc edx
mov bl, byte [esi + ecx + 0xba]
add ecx, 0xfffffffe
mov eax, ecx
mov edi, dword [esi + 0x10]
movzx ecx, bl
add ecx, edi
add eax, ecx
mov dword [esi + 0xc], edi
lea edi, [esi + 0x198]
jmp 0x42155d
cmp edx, dword [esi + 0x10]
je 0x42152e
mov ecx, dword [esi + 0xc]
lea edi, [ecx + 2]
cmp edx, edi
jne 0x4214e3
mov dword [esi + 0x18], edx
lea ebx, [eax - 0xd914dbd]
mov edi, dword [esi + 0x14]
lea edx, [eax + edi]
add edx, 0xf26eb243
and ebx, edi
mov byte [esi + 0x10], 0x2b
jmp 0x42148d
mov ecx, dword [esi + 0xc]
lea edi, [ecx + 9]
cmp edx, edi
jbe 0x42145b
lea edi, [eax + 0x4d646e23]
mov ecx, dword [esi + 0x14]
mov byte [esi + 0x24], bl
lea ebx, [eax + ecx]
add ebx, 0x4d646e23
mov dword [esi + 0x18], ebx
and edi, ecx
add edi, edi
sub dword [esi + 0x18], edi
mov ebx, dword [esi + 0x18]
add bl, 0xb
mov dword [esi + 0x18], ebx
mov bl, byte [esi + 0x24]
cmp edx, dword [esi + 0x10]
je 0x4212e6
mov ecx, dword [esi + 0xc]
lea edi, [ecx + 2]
cmp edx, edi
je 0x4212f9
mov edi, edx
mov ecx, dword [esi + 0xc]
lea edx, [ecx + 5]
cmp edi, edx
jne 0x4215d3
mov dword [esi + 0x18], edi
lea edi, [eax - 0x7a7d83dc]
mov ebx, dword [esi + 0x14]
lea edx, [eax + ebx]
add edx, 0x85827c24
and edi, ebx
add edi, edi
sub edx, edi
add dl, 4
jmp 0x4214b7
mov ecx, dword [esi + 0xc]
lea edi, [ecx + 5]
cmp edx, edi
jne 0x4214d1
mov dword [esi + 0x18], edx
lea ebx, [eax - 0x3b0c2bad]
mov edi, dword [esi + 0x14]
lea edx, [eax + edi]
add edx, 0xc4f3d453
and ebx, edi
mov byte [esi + 0x10], 0xbb
jmp 0x42148d
cmp edx, dword [esi + 0x10]
je 0x42152e
mov ecx, dword [esi + 0xc]
lea edi, [ecx + 3]
cmp edx, edi
jne 0x42158d
mov dword [esi + 0x18], edx
lea ebx, [eax + 0x6421dd1b]
mov edi, dword [esi + 0x14]
lea edx, [eax + edi]
add edx, 0x6421dd1b
and ebx, edi
mov byte [esi + 0x10], 0x43
add ebx, ebx
sub edx, ebx
lea edi, [eax + 0x4a765077]
mov ebx, dword [esi + 0x14]
and edi, ebx
add ebx, eax
add ebx, 0x4a765077
add edi, edi
sub ebx, edi
add dl, byte [esi + 0x10]
add bl, dl
add bl, 0xbf
mov byte [esi + eax + 0xbc], bl
lea edi, [esi + 0x198]
mov ebx, dword [esi + 0x18]
add ebx, dword [esi + 0xc]
movzx edx, dl
not edx
add eax, edx
mov edx, ebx
jmp 0x42155d
mov ecx, dword [esi + 0xc]
lea edi, [ecx + 3]
cmp edx, edi
jne 0x421520
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x10], ecx
jmp 0x421550
mov ecx, dword [esi + 0xc]
lea edi, [ecx + 3]
cmp edx, edi
jne 0x42156c
mov dword [esi + 0x18], edx
lea edi, [eax + 0x381e0e01]
mov ebx, dword [esi + 0x14]
lea edx, [eax + ebx]
add edx, 0x381e0e01
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0xf9
jmp 0x4214b7
mov ecx, dword [esi + 0xc]
lea edi, [ecx + 0x10]
cmp edx, edi
je 0x4212f9
jmp 0x421248
mov ecx, dword [esi + 0xc]
lea edi, [ecx + 8]
cmp edx, edi
jne 0x421285
lea edi, [eax + 0x4c6f4b9]
mov ebx, dword [esi + 0x14]
lea ecx, [eax + ebx]
add ecx, 0x4c6f4b9
and edi, ebx
add edi, edi
sub ecx, edi
add cl, 0xf1
mov byte [esi + eax + 0xbc], cl
lea edi, [esi + 0x198]
dec eax
mov ecx, dword [esi + 0x10]
mov dword [esi + 0xc], ecx
inc eax
cmp eax, 0x18
jb 0x421263
jmp 0x4215fc
mov ecx, dword [esi + 0xc]
lea edi, [ecx + 4]
cmp edx, edi
je 0x4212f9
mov ecx, dword [esi + 0xc]
lea edi, [ecx + 7]
cmp edx, edi
jne 0x42129c
jmp 0x4212e6
mov ecx, dword [esi + 0xc]
lea edi, [ecx + 7]
cmp edx, edi
je 0x4212f9
mov ecx, dword [esi + 0xc]
lea edi, [ecx + 2]
cmp edx, edi
je 0x4212e6
lea edi, [eax + 0x22d7addf]
mov ecx, dword [esi + 0x14]
add ecx, eax
add ecx, 0x22d7addf
mov dword [esi + 0x18], ecx
and edi, dword [esi + 0x14]
add edi, edi
sub dword [esi + 0x18], edi
mov ecx, dword [esi + 0x18]
add cl, 0xe7
mov dword [esi + 0x18], ecx
jmp 0x4213e6
mov ecx, dword [esi + 0xc]
lea edx, [ecx + 7]
cmp edi, edx
mov edx, edi
je 0x4214db
mov ebx, dword [esi + 0x18]
mov byte [esi + eax + 0xbc], bl
jmp 0x42136b
mov eax, 0x1407fb3
jmp 0x4219a8
xor eax, eax
jmp 0x4219a8
mov eax, 0x130dab6
jmp 0x41325c
mov eax, 0x15df180
add eax, esi
add eax, 0x198
lea edi, [esi + 0xbc]
mov ecx, edi
push eax
call fcn.0040cc1c
push edi
push dword [ebp + 0xc]
lea ebx, [esi + 0x9c]
push ebx
call fcn.00421deb
add esp, 0xc
mov ecx, edi
call fcn.0040cc4e
mov eax, ebx
cmp dword [esi + 0xb0], 0x10
jb 0x421652
mov eax, dword [esi + 0x9c]
push dword [esi + 0x1c]
push dword [esi + 0x20]
push eax
push dword [ebp + 0x18]
call fcn.00471674
add esp, 0x10
cmp dword [esi + 0x10c], 0x10
jb 0x421675
mov eax, dword [esi + 0xf8]
jmp 0x42167b
lea eax, [esi + 0xf8]
mov dword [esi + 0x108], 0
mov byte [eax], 0
mov edi, dword [0x47859c]
test edi, edi
jne 0x421800
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0x3d860f7e
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x421704
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x95c0c9a2
cmp cx, 2
jb 0x4216f3
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x95c0c9a2
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x4216e0
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x4217e7
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x4217bc
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x4217b9
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 0x421766
add edx, dword [esi + 0x18]
mov eax, 0x95c0c9a2
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x421752
jmp 0x42176b
mov eax, 0x95c0c9a2
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x42172f
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 0x4217fa
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x4217fa
mov al, byte [edi]
mov ecx, 0x95c0c9a2
mov ebx, 0x95c0c9a2
cmp al, 0x2e
je 0x4217c1
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x4217a4
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x4217e7
mov al, byte [edi + 1]
test al, al
je 0x4217e2
add edi, 2
mov ecx, 0x95c0c9a2
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x4217d0
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x4217fa
cmp dword [eax + 0x18], 0
jne 0x4216ae
mov dword [0x47859c], edi
push dword [esi + 0x30]
call edi
mov edi, dword [0x4785a0]
test edi, edi
jne 0x42197d
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xf0e34ba1
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x421881
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x1cf47669
cmp cx, 2
jb 0x421870
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x1cf47669
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x42185d
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x421964
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x421939
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x421936
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 0x4218e3
add edx, dword [esi + 0x18]
mov eax, 0x1cf47669
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x4218cf
jmp 0x4218e8
mov eax, 0x1cf47669
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x4218ac
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 0x421977
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x421977
mov al, byte [edi]
mov ecx, 0x1cf47669
mov ebx, 0x1cf47669
cmp al, 0x2e
je 0x42193e
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x421921
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x421964
mov al, byte [edi + 1]
test al, al
je 0x42195f
add edi, 2
mov ecx, 0x1cf47669
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x42194d
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x421977
cmp dword [eax + 0x18], 0
jne 0x42182b
mov dword [0x4785a0], edi
push dword [esi + 0x38]
call edi
lea ecx, [esi + 0x9c]
call fcn.0040cc4e
lea ecx, [esi + 0x204]
call fcn.0040cc4e
jmp 0x411640
mov eax, 0x168d1d4
lea edi, [esi + 0x198]
add eax, esi
add eax, 0xbc
lea ebx, [esi + 0x9c]
mov ecx, ebx
push eax
call fcn.0040cc1c
push ebx
push dword [ebp + 0xc]
push edi
call fcn.00421deb
add esp, 0xc
mov ecx, ebx
call fcn.0040cc4e
cmp dword [esi + 0x1ac], 0x10
jb 0x4219e0
mov edi, dword [esi + 0x198]
push dword [esi + 0x20]
push dword [esi + 0x1c]
push edi
push dword [ebp + 0x18]
call fcn.00471674
add esp, 0x10
cmp dword [esi + 0x10c], 0x10
jb 0x421a03
mov eax, dword [esi + 0xf8]
jmp 0x421a09
lea eax, [esi + 0xf8]
mov dword [esi + 0x108], 0
mov byte [eax], 0
mov edi, dword [0x4785f4]
test edi, edi
jne 0x421b8e
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0x8ee4fd9e
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x421a92
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x922f3202
cmp cx, 2
jb 0x421a81
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x922f3202
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x421a6e
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x421b75
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x421b4a
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x421b47
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 0x421af4
add edx, dword [esi + 0x18]
mov eax, 0x922f3202
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x421ae0
jmp 0x421af9
mov eax, 0x922f3202
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x421abd
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 0x421b88
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x421b88
mov al, byte [edi]
mov ecx, 0x922f3202
mov ebx, 0x922f3202
cmp al, 0x2e
je 0x421b4f
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x421b32
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x421b75
mov al, byte [edi + 1]
test al, al
je 0x421b70
add edi, 2
mov ecx, 0x922f3202
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x421b5e
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x421b88
cmp dword [eax + 0x18], 0
jne 0x421a3c
mov dword [0x4785f4], edi
push dword [esi + 0x30]
call edi
mov edi, dword [0x4785f8]
test edi, edi
jne 0x421d0b
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xffb51008
xor ebx, ebx
mov dword [esi + 0x24], eax
test ebx, ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], eax
je 0x421c0f
mov ecx, dword [eax + 0x2c]
add ecx, 0xfffffff8
mov edx, 0x89fb1a12
cmp cx, 2
jb 0x421bfe
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x30]
movzx edi, cx
shr edi, 1
add edi, edi
mov edx, 0x89fb1a12
xor ecx, ecx
movsx ebx, byte [eax + ecx]
xor ebx, edx
imul edx, ebx, 0x1000193
add ecx, 2
cmp edi, ecx
jne 0x421beb
mov ebx, dword [esi + 0x20]
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
jne 0x421cf2
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
test edx, edx
je 0x421cc7
mov eax, dword [edi + eax + 0x7c]
mov dword [esi + 0x28], eax
lea eax, [edi + edx]
mov dword [esi + 0x10], eax
mov ebx, dword [eax + 0x18]
lea eax, [edi + 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
sub ebx, 1
jb 0x421cc4
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 0x421c71
add edx, dword [esi + 0x18]
mov eax, 0x89fb1a12
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x421c5d
jmp 0x421c76
mov eax, 0x89fb1a12
mov ecx, dword [esi + 0xc]
cmp eax, ecx
mov edx, dword [esi + 0x14]
jne 0x421c3a
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 0x421d05
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x28]
cmp eax, edi
jbe 0x421d05
mov al, byte [edi]
mov ecx, 0x89fb1a12
mov ebx, 0x89fb1a12
cmp al, 0x2e
je 0x421ccc
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x421caf
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
jmp 0x421cf2
mov al, byte [edi + 1]
test al, al
je 0x421ced
add edi, 2
mov ecx, 0x89fb1a12
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x421cdb
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
xor edi, edi
cmp eax, dword [esi + 0x24]
je 0x421d05
cmp dword [eax + 0x18], 0
jne 0x421bb9
mov dword [0x4785f8], edi
push dword [esi + 0x38]
call edi
lea ecx, [esi + 0x198]
call fcn.0040cc4e
lea ecx, [esi + 0x298]
call fcn.0040cc4e
jmp 0x41adbb
mov eax, 0x916506
jmp 0x41a87c
call fcn.00401301
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
lea eax, [esi + 0x9c]
lea ecx, [esi + 0x204]
push eax
push ecx
push str.exists
call fcn.0044f0d3