Function at 0x41d420
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
lea eax, [ebp - 0x20]
push edi
push esi
sub esp, 0x170
mov byte [0x698fc1], 1
mov dword [esp], eax
call fcn.0049a5e8
call fcn.00419dc4
mov dword [ebp - 0x3c], eax
mov eax, dword [0x697658]
test eax, eax
jne 0x41d7af
mov dword [ebp - 0x50], 0
mov eax, 0x6975dc
mov dword [ebp - 0x13c], eax
mov esi, dword [ebp - 0x13c]
mov eax, dword [0x697638]
mov edi, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
mov edx, eax
neg edx
add eax, edi
dec eax
and ecx, edx
and eax, edx
cmp ecx, eax
jae 0x41d4b4
mov edi, dword [esi + 0x1c]
test edi, edi
jne 0x41d7ca
cmp dword [ebp - 0x50], 1
jne 0x41d4b4
mov ecx, dword [ebp - 0x13c]
mov edx, dword [ecx + 0x18]
mov eax, dword [ecx + 0x10]
sub eax, edx
shr eax, 2
jmp 0x41d4b2
mov dword [edx], 0
add edx, 4
dec eax
jne 0x41d4a8
inc dword [ebp - 0x50]
add dword [ebp - 0x13c], 0x20
cmp dword [ebp - 0x50], 1
jbe 0x41d464
mov eax, dword [0x4f99c0]
mov edx, 7
lea esi, [ebx - 4]
mov dword [0x4f99c0], edx
mov ecx, dword [0x4f9db8]
mov edx, dword [0x4f99c4]
mov dword [ebp - 0x44], eax
mov eax, 7
mov dword [0x4f99c4], eax
mov eax, 0x4fa001
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x4c], ecx
mov dword [0x4f9db8], eax
mov eax, dword [esi]
test eax, eax
je 0x41d51c
test eax, eax
js 0x41d81a
call fcn.0041af28
sub esi, 4
mov eax, dword [esi]
test eax, eax
jne 0x41d506
mov eax, dword [0x697658]
test eax, eax
je 0x41d616
mov dword [ebp - 0x58], 0
mov eax, 0x6975dc
mov dword [ebp - 0x138], eax
mov esi, dword [ebp - 0x138]
mov eax, dword [ebp - 0x138]
mov esi, dword [esi + 0x10]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x5c], esi
cmp esi, eax
mov dword [ebp - 0x60], eax
jae 0x41d602
mov edx, dword [ebp - 0x138]
mov eax, dword [edx + 0x1c]
test eax, eax
je 0x41d876
mov dword [ebp - 0x64], eax
mov esi, dword [0x697638]
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x120], esi
mov eax, esi
neg eax
and dword [ebp - 0x5c], eax
mov edx, dword [ebp - 0x120]
add dword [ebp - 0x5c], edx
cmp dword [ecx + 0xc], 1
ja 0x41d5d5
mov edi, dword [ecx + 0x10]
test edi, edi
je 0x41d5ac
mov esi, dword [ecx + 0x14]
mov eax, dword [esi + 4]
add esi, 8
call fcn.0041af28
dec edi
jne 0x41d59e
add dword [ebp - 0x64], 0x18
mov edx, dword [ebp - 0x60]
cmp dword [ebp - 0x5c], edx
jae 0x41d602
mov eax, dword [0x697638]
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x120], eax
mov edx, dword [ebp - 0x120]
add dword [ebp - 0x5c], edx
cmp dword [ecx + 0xc], 1
jbe 0x41d594
mov eax, 0x41b194
mov dword [esp + 8], eax
mov esi, dword [ebp - 0x60]
mov dword [esp + 4], esi
mov eax, dword [ebp - 0x5c]
mov dword [esp], eax
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x58]
call fcn.0041a92c
add dword [ebp - 0x64], 0x18
mov edx, dword [ebp - 0x60]
cmp dword [ebp - 0x5c], edx
jb 0x41d5b8
inc dword [ebp - 0x58]
add dword [ebp - 0x138], 0x20
cmp dword [ebp - 0x58], 1
jbe 0x41d53b
cmp dword [section..data], 0
mov dword [ebp - 0x68], 0x4f1000
je 0x41d660
mov ecx, dword [ebp - 0x68]
cmp byte [ecx + 0x14], 0
je 0x41d653
mov eax, dword [ecx + 8]
mov eax, dword [eax]
test eax, eax
je 0x41d653
mov esi, dword [ecx + 4]
mov edi, eax
mov eax, dword [esi + 8]
call fcn.0041af28
mov eax, dword [esi + 0xc]
add esi, 0x20
call fcn.0041af28
dec edi
jne 0x41d63d
add dword [ebp - 0x68], 0x2c
mov esi, dword [ebp - 0x68]
mov edi, dword [esi]
test edi, edi
jne 0x41d626
mov esi, 0x4fa000
mov edi, 0x6d9
lea esi, [esi]
mov eax, dword [esi + 8]
call fcn.0041af28
mov eax, dword [esi + 0xc]
call fcn.0041af28
mov eax, dword [esi + 0x10]
call fcn.0041af28
mov eax, dword [esi + 0x14]
call fcn.0041af28
mov eax, dword [esi + 0x18]
call fcn.0041af28
mov eax, dword [esi + 0x1c]
add esi, 0x20
call fcn.0041af28
dec edi
jne 0x41d670
cmp dword [section..data], 0
mov dword [ebp - 0x6c], 0x4f1000
je 0x41d6e9
mov eax, dword [ebp - 0x6c]
cmp byte [eax + 0x14], 0
je 0x41d6dc
mov edx, eax
mov eax, dword [eax + 0x10]
mov eax, dword [eax]
test eax, eax
je 0x41d6dc
mov edi, dword [edx + 0xc]
mov esi, eax
mov eax, dword [edi]
add edi, 4
call fcn.0041af28
dec esi
jne 0x41d6cf
add dword [ebp - 0x6c], 0x2c
mov ecx, dword [ebp - 0x6c]
mov esi, dword [ecx]
test esi, esi
jne 0x41d6b6
mov edi, 0x698ff0
mov esi, 5
mov eax, dword [edi]
add edi, 4
call fcn.0041af28
dec esi
jne 0x41d6f3
mov esi, dword [0x6971f4]
jmp 0x41d712
mov eax, dword [esi + 4]
call fcn.0041af28
mov esi, dword [esi]
test esi, esi
jne 0x41d708
mov eax, dword [ebp - 0x44]
mov esi, dword [0x697668]
cmp eax, 7
mov dword [ebp - 0x128], esi
mov edi, esi
mov dword [ebp - 0x70], eax
je 0x41d8f2
test byte [ebp - 0x70], 1
je 0x41d767
mov eax, dword [ebp - 0x70]
not eax
test al, 7
je 0x41d767
mov eax, dword [ebp - 0x70]
and eax, 0xfffffffc
mov ecx, dword [eax]
test ecx, ecx
js 0x41d767
mov dword [edi], eax
mov edx, dword [ebp - 0x70]
mov dword [edi + 8], 0xffffffff
mov dword [edi + 0xc], 0
mov dword [edi + 4], edx
add edi, 0x10
mov dword [ebp - 0x14c], edi
mov eax, dword [ebp - 0x70]
and eax, 3
cmp eax, 1
jne case.0x41d7a8.51
mov ecx, dword [ebp - 0x70]
mov edx, dword [ecx + 3]
movsx esi, dl
cmp esi, 0x1b
ja 0x41d799
mov ecx, esi
shl eax, cl
test eax, 0xffe0606
jne case.0x41d7a8.51
movsx eax, dl
sub eax, 0x32
cmp eax, 0x13
ja case.0x41d7a8.51
jmp dword [eax*4 + 0x50de64]
mov eax, dword [0x6975f4]
mov esi, dword [0x697614]
mov dword [0x6975dc], eax
mov dword [0x697600], esi
jmp 0x41d4c4
mov dword [esp], 3
mov esi, eax
sub esi, ecx
mov eax, ecx
mov edx, esi
call fcn.0041a124
mov eax, dword [ebp - 0x13c]
mov ecx, dword [0x697648]
mov edi, dword [eax + 0x1c]
shr esi, cl
mov dword [ebp - 0x54], esi
mov esi, dword [edi + 0xc]
test esi, esi
jne 0x41d82d
mov esi, dword [edi + 0x10]
test esi, esi
je 0x41d85b
mov edx, dword [edi + 0x14]
mov ecx, edx
mov dword [ebp - 0x12c], edx
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
add ecx, 8
dec esi
mov dword [edx], eax
jne 0x41d80b
jmp 0x41d836
test eax, 0x40000000
jne 0x41d513
sub esi, 8
jmp 0x41d500
mov ecx, dword [edi + 0x14]
mov dword [ebp - 0x12c], ecx
mov dword [edi + 0xc], 3
mov ecx, dword [ebp - 0x12c]
test ecx, ecx
jne 0x41d866
mov dword [edi + 0x14], 0
add edi, 0x18
dec dword [ebp - 0x54]
jne 0x41d7f2
jmp 0x41d48f
mov esi, dword [edi + 0x14]
mov dword [ebp - 0x12c], esi
jmp 0x41d836
mov eax, dword [ebp - 0x12c]
mov dword [esp], eax
call sub.msvcrt.dll_free
jmp 0x41d847
mov eax, 0x41b194
mov edx, esi
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0x60]
mov dword [esp], ecx
mov eax, dword [ebp - 0x58]
call fcn.0041a788
jmp 0x41d602
mov esi, dword [ebp - 0x70]
mov edx, dword [esi + 0xf]
test dl, 1
je case.0x41d7a8.50
mov eax, edx
not eax
test al, 7
je case.0x41d7a8.50
mov eax, edx
and eax, 0xfffffffc
mov edx, dword [eax]
test edx, edx
js case.0x41d7a8.50
mov dword [edi], eax
mov dword [edi + 4], esi
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
add edi, 0x10
mov dword [ebp - 0x14c], edi
mov edx, dword [ebp - 0x70]
mov edi, dword [ebp - 0x14c]
mov edx, dword [edx + 7]
mov dword [ebp - 0x70], edx
cmp edx, 7
jne 0x41d733
mov ecx, dword [0x697668]
mov dword [ebp - 0x128], ecx
mov edx, dword [ebp - 0x128]
mov ecx, dword [ebp - 0x128]
sub edi, edx
mov dword [ebp - 0x80], edi
sub ecx, 0x10
sar dword [ebp - 0x80], 4
mov esi, dword [ebp - 0x80]
cmp esi, 1
mov dword [0x697698], esi
jbe 0x41dae0
shr esi, 1
mov dword [ebp - 0x84], esi
je 0x41d9c8
mov esi, dword [ebp - 0x84]
lea edi, [esi + esi]
cmp edi, dword [ebp - 0x80]
ja 0x41d9bc
jae 0x41d94f
mov eax, esi
shl eax, 5
mov edx, dword [eax + ecx]
mov eax, dword [eax + ecx + 0x10]
cmp edx, eax
adc edi, 0
mov edx, esi
shl edx, 4
mov esi, edi
shl esi, 4
mov eax, dword [edx + ecx]
cmp eax, dword [esi + ecx]
jae 0x41d9b2
mov dword [ebp - 0x18], eax
mov eax, dword [edx + ecx + 4]
mov dword [ebp - 0x14], eax
mov eax, dword [edx + ecx + 8]
mov dword [ebp - 0x10], eax
mov eax, dword [edx + ecx + 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [esi + ecx]
mov dword [edx + ecx], eax
mov eax, dword [esi + ecx + 4]
mov dword [edx + ecx + 4], eax
mov eax, dword [esi + ecx + 8]
mov dword [edx + ecx + 8], eax
mov eax, dword [esi + ecx + 0xc]
mov dword [edx + ecx + 0xc], eax
mov eax, dword [ebp - 0x18]
mov dword [esi + ecx], eax
mov eax, dword [ebp - 0x14]
mov dword [esi + ecx + 4], eax
mov eax, dword [ebp - 0x10]
mov dword [esi + ecx + 8], eax
mov eax, dword [ebp - 0xc]
mov dword [esi + ecx + 0xc], eax
mov esi, edi
lea edi, [esi + esi]
cmp edi, dword [ebp - 0x80]
jbe 0x41d93c
dec dword [ebp - 0x84]
jne 0x41d92a
mov eax, dword [ebp - 0x80]
dec eax
mov dword [ebp - 0x88], eax
je 0x41dae0
mov edx, dword [ebp - 0x128]
mov esi, dword [ebp - 0x128]
mov eax, dword [edx]
mov dword [ebp - 0x18], eax
mov eax, dword [edx + 4]
mov dword [ebp - 0x14], eax
mov eax, dword [edx + 8]
mov dword [ebp - 0x10], eax
mov eax, dword [edx + 0xc]
mov edx, dword [ebp - 0x88]
mov dword [ebp - 0xc], eax
shl edx, 4
mov eax, dword [edx + esi]
mov dword [esi], eax
mov eax, dword [edx + esi + 4]
mov dword [esi + 4], eax
mov eax, dword [edx + esi + 8]
mov dword [esi + 8], eax
mov eax, dword [edx + esi + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x18]
mov dword [edx + esi], eax
mov eax, dword [ebp - 0x14]
mov dword [edx + esi + 4], eax
mov eax, dword [ebp - 0x10]
mov dword [edx + esi + 8], eax
mov eax, dword [ebp - 0xc]
mov dword [edx + esi + 0xc], eax
mov esi, 1
lea edi, [esi + esi]
cmp edi, dword [ebp - 0x88]
ja 0x41dad4
jae 0x41da60
mov eax, esi
shl eax, 5
mov edx, dword [eax + ecx]
mov eax, dword [eax + ecx + 0x10]
cmp edx, eax
adc edi, 0
mov edx, esi
shl edx, 4
mov esi, edi
shl esi, 4
mov eax, dword [edx + ecx]
cmp eax, dword [esi + ecx]
jae 0x41dac3
mov dword [ebp - 0x18], eax
mov eax, dword [edx + ecx + 4]
mov dword [ebp - 0x14], eax
mov eax, dword [edx + ecx + 8]
mov dword [ebp - 0x10], eax
mov eax, dword [edx + ecx + 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [esi + ecx]
mov dword [edx + ecx], eax
mov eax, dword [esi + ecx + 4]
mov dword [edx + ecx + 4], eax
mov eax, dword [esi + ecx + 8]
mov dword [edx + ecx + 8], eax
mov eax, dword [esi + ecx + 0xc]
mov dword [edx + ecx + 0xc], eax
mov eax, dword [ebp - 0x18]
mov dword [esi + ecx], eax
mov eax, dword [ebp - 0x14]
mov dword [esi + ecx + 4], eax
mov eax, dword [ebp - 0x10]
mov dword [esi + ecx + 8], eax
mov eax, dword [ebp - 0xc]
mov dword [esi + ecx + 0xc], eax
mov esi, edi
lea edi, [esi + esi]
cmp edi, dword [ebp - 0x88]
jbe 0x41da4d
dec dword [ebp - 0x88]
jne 0x41d9d8
mov esi, dword [ebp - 0x44]
lea edx, [ebp - 0x18]
lea eax, [ebp - 0x24]
mov dword [ebp - 0x24], edx
cmp esi, 7
mov dword [0x6976a8], eax
jne 0x41db00
jmp 0x41db22
mov esi, dword [esi + 7]
cmp esi, 7
je 0x41db1f
mov eax, esi
call fcn.0041b1a4
test al, al
je 0x41daf8
mov eax, esi
mov edx, 0xffffffff
call fcn.0041b750
mov esi, dword [esi + 7]
cmp esi, 7
jne 0x41db00
mov edx, dword [ebp - 0x24]
mov esi, edx
lea edx, [ebp - 0x18]
cmp edx, esi
jmp 0x41db33
mov esi, dword [esi + 0xc]
lea ecx, [ebp - 0x18]
cmp ecx, esi
je 0x41db4f
mov edi, dword [esi + 4]
mov eax, edi
call fcn.0041b1a4
test al, al
je 0x41db2b
mov edx, dword [esi + 8]
mov eax, edi
call fcn.0041b750
jmp 0x41db2b
cmp dword [0x4f99c8], 7
mov eax, 0x4f99c4
mov esi, dword [ebp - 0x48]
mov dword [ebp - 0x8c], eax
mov edi, 0x4f99c8
jmp 0x41db74
mov eax, dword [edi]
lea edi, [eax + 0x13]
cmp dword [eax + 0x13], 7
jne 0x41db6b
cmp dword [ebp - 0x48], 7
jmp 0x41db93
mov eax, dword [ebp - 0x8c]
lea edx, [esi + 0x13]
mov dword [ebp - 0x8c], edx
mov dword [eax], esi
mov esi, dword [esi + 0x13]
cmp esi, 7
je 0x41dbb4
mov eax, dword [esi + 7]
call fcn.0041b1a4
test al, al
je 0x41db8d
mov eax, dword [esi + 0xb]
call fcn.0041b1a4
test al, al
jne 0x41db7c
mov dword [edi], esi
lea edi, [esi + 0x13]
jmp 0x41db8d
mov ecx, dword [ebp - 0x8c]
mov dword [ecx], 7
mov dword [edi], 7
mov eax, dword [0x4f99c4]
mov edi, 0x4f9db8
call fcn.0041af28
mov esi, dword [ebp - 0x4c]
mov eax, 0x4f9dbc
mov dword [ebp - 0x90], eax
mov eax, esi
and eax, 7
cmp eax, 3
jne 0x41dc0f
mov eax, dword [esi + 1]
call fcn.0041b1a4
test al, al
je 0x41e160
mov dword [edi], esi
lea edi, [esi - 3]
mov esi, dword [esi - 3]
mov eax, esi
and eax, 7
cmp eax, 3
je 0x41dbed
mov dword [edi], 0x4fa001
mov ecx, dword [ebp - 0x90]
mov dword [ecx], 0x4fa001
mov eax, dword [0x4f9db8]
call fcn.0041af28
mov eax, dword [ebp - 0x44]
call fcn.0041c080
mov eax, dword [0x4f99c8]
call fcn.0041af28
mov eax, dword [0x4f9dbc]
call fcn.0041af28
cmp dword [section..data], 0
mov byte [0x6971e8], 1
mov ecx, section..data
je 0x41dc83
cmp byte [ecx + 0x14], 0
je 0x41dc7a
mov eax, dword [ecx + 8]
mov eax, dword [eax]
test eax, eax
je 0x41dc7a
mov edx, dword [ecx + 4]
and dword [edx], 0x7fffffff
add edx, 0x20
dec eax
jne 0x41dc6e
add ecx, 0x2c
mov eax, dword [ecx]
test eax, eax
jne 0x41dc5c
mov eax, 0x4fa000
mov edx, 0x6d9
lea esi, [esi]
and dword [eax], 0x7fffffff
add eax, 0x20
dec edx
jne 0x41dc90
mov dword [ebp - 0x94], esp
mov edx, 0x20
mov eax, edx
call fcn.004ea990
mov dword [ebp - 0x9c], esp
lea ecx, [esp + 0x23]
mov eax, edx
and ecx, 0xfffffff0
mov dword [ebp - 0x98], ecx
call fcn.004ea990
mov dword [ebp - 0x2c], 0
mov eax, dword [0x697658]
lea edx, [esp + 0x23]
and edx, 0xfffffff0
mov dword [ebp - 0xa0], edx
test eax, eax
jne 0x41f309
mov edx, dword [0x6975f0]
cmp edx, dword [0x6975f4]
jae 0x41f35c
mov eax, dword [0x6975ec]
lea edi, [ebp - 0x28]
mov dword [esp], ecx
mov dword [esp + 4], edi
call fcn.0041d408
lea ecx, [ebp - 0x2c]
mov edx, dword [0x6975f0]
mov eax, dword [0x6975ec]
mov dword [esp + 0x10], ecx
mov esi, dword [ebp - 0xa0]
mov dword [esp + 0xc], esi
mov ecx, dword [ebp - 0x28]
mov dword [esp + 8], ecx
mov ecx, dword [ebp - 0x98]
mov dword [esp], 0x6975e4
mov dword [esp + 4], ecx
call fcn.0041cd90
mov esi, eax
mov edx, dword [0x6975e0]
mov eax, dword [0x6975f4]
mov dword [esp + 4], edi
mov ecx, dword [ebp - 0x98]
mov dword [esp], ecx
call fcn.0041d408
mov edx, dword [ebp - 0x98]
lea ecx, [ebp - 0x2c]
mov eax, dword [edx]
mov dword [edx], esi
sub eax, esi
add dword [edx + 4], eax
mov edx, dword [0x6975e0]
mov eax, dword [0x6975f4]
mov dword [esp + 0x10], ecx
mov esi, dword [ebp - 0xa0]
mov dword [esp + 0xc], esi
mov ecx, dword [ebp - 0x28]
mov dword [esp + 8], ecx
mov ecx, dword [ebp - 0x98]
mov dword [esp + 4], ecx
mov ecx, dword [0x6975f0]
mov dword [esp], ecx
call fcn.0041cd90
mov edx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0x2c]
mov dword [edx + eax*8], 0
mov ecx, dword [0x697600]
mov edx, dword [0x6975fc]
mov dword [ebp - 0x124], ecx
xor ecx, ecx
cmp edx, dword [ebp - 0x124]
je 0x41de02
mov eax, dword [edx]
test eax, eax
js 0x41e62c
mov dword [edx], 0
add ecx, 8
mov dword [edx + 4], 0
add edx, 8
cmp edx, dword [ebp - 0x124]
jne 0x41dddd
mov eax, 0x6975fc
lea esi, [ebx - 4]
mov dword [eax + 8], ecx
mov edx, dword [esi]
test edx, edx
je 0x41de58
test edx, edx
mov edi, edx
js 0x41e63b
test dl, 1
je 0x41de4f
mov eax, edx
not eax
test al, 7
je 0x41de4f
mov eax, edx
and eax, 7
cmp eax, 3
je 0x41f3af
mov eax, edx
and eax, 0xfffffffc
cmp eax, dword [0x6975dc]
jb 0x41de4f
mov ecx, dword [eax]
test ecx, ecx
js 0x41f499
sub esi, 4
mov edx, dword [esi]
test edx, edx
jne 0x41de13
mov ecx, dword [0x6971f4]
test ecx, ecx
je 0x41de9d
mov edx, dword [ecx + 4]
test dl, 1
je 0x41de97
mov eax, edx
not eax
test al, 7
je 0x41de97
mov eax, edx
and eax, 7
cmp eax, 3
je 0x41f1ef
mov eax, edx
and eax, 0xfffffffc
cmp eax, dword [0x6975dc]
jb 0x41de97
mov eax, dword [eax]
test eax, eax
js 0x41f527
mov ecx, dword [ecx]
test ecx, ecx
jne 0x41de62
mov esi, dword [section..data]
mov eax, section..data
mov dword [ebp - 0xa4], eax
test esi, esi
mov dword [ebp - 0x130], esi
je 0x41df7f
mov eax, dword [0x6975dc]
mov dword [ebp - 0x134], eax
mov edx, dword [ebp - 0xa4]
cmp byte [edx + 0x14], 0
je 0x41df68
mov eax, dword [edx + 8]
mov eax, dword [eax]
test eax, eax
je 0x41df68
mov dword [ebp - 0xa8], eax
mov ecx, dword [edx + 4]
mov edx, dword [ecx + 8]
lea edi, [ecx + 8]
test dl, 1
je 0x41df25
mov eax, edx
not eax
test al, 7
je 0x41df25
mov eax, edx
and eax, 7
cmp eax, 3
je 0x41f15f
mov eax, edx
and eax, 0xfffffffc
cmp eax, dword [ebp - 0x134]
jb 0x41df25
mov eax, dword [eax]
test eax, eax
js 0x41f2f7
mov edx, dword [ecx + 0xc]
lea edi, [ecx + 0xc]
test dl, 1
je 0x41df5d
mov eax, edx
not eax
test al, 7
je 0x41df5d
mov eax, edx
and eax, 7
cmp eax, 3
je 0x41f110
mov eax, edx
and eax, 0xfffffffc
cmp eax, dword [ebp - 0x134]
jb 0x41df5d
mov eax, dword [eax]
test eax, eax
js 0x41f47a
add ecx, 0x20
dec dword [ebp - 0xa8]
jne 0x41deed
add dword [ebp - 0xa4], 0x2c
mov ecx, dword [ebp - 0xa4]
mov eax, dword [ecx]
test eax, eax
jne 0x41dec7
mov eax, dword [0x6975dc]
mov edi, 0x6d9
mov esi, 0x4fa000
mov dword [ebp - 0xac], edi
mov dword [ebp - 0xb0], eax
jmp 0x41e10f
mov eax, edx
and eax, 0xfffffffc
cmp eax, dword [ebp - 0xb0]
jb 0x41dfc0
mov eax, dword [eax]
test eax, eax
js 0x41e88a
mov esi, esi
lea edi, [edi]
mov edx, dword [esi + 0xc]
lea ecx, [esi + 0xc]
test dl, 1
je 0x41e000
mov eax, edx
not eax
test al, 7
je 0x41e000
mov eax, edx
and eax, 7
cmp eax, 3
je 0x41e7e0
mov eax, edx
and eax, 0xfffffffc
cmp eax, dword [ebp - 0xb0]
jb 0x41e000
mov eax, dword [eax]
test eax, eax
js 0x41e878
nop
lea esi, [esi]
mov edx, dword [esi + 0x10]
lea ecx, [esi + 0x10]
test dl, 1
je 0x41e040
mov eax, edx
not eax
test al, 7
je 0x41e040
mov eax, edx
and eax, 7
cmp eax, 3
je 0x41e808
mov eax, edx
and eax, 0xfffffffc
cmp eax, dword [ebp - 0xb0]
jb 0x41e040
mov eax, dword [eax]
test eax, eax
js 0x41e830
nop
lea esi, [esi]
mov edx, dword [esi + 0x14]
lea ecx, [esi + 0x14]
test dl, 1
je 0x41e080
mov eax, edx
not eax
test al, 7
je 0x41e080
mov eax, edx
and eax, 7
cmp eax, 3
je 0x41e790
mov eax, edx
and eax, 0xfffffffc
cmp eax, dword [ebp - 0xb0]
jb 0x41e080
mov eax, dword [eax]
test eax, eax
js 0x41e854
nop
lea esi, [esi]
mov edx, dword [esi + 0x18]
lea ecx, [esi + 0x18]
test dl, 1
je 0x41e0c0
mov eax, edx
not eax
test al, 7
je 0x41e0c0
mov eax, edx
and eax, 7
cmp eax, 3
je 0x41e7b8
mov eax, edx
and eax, 0xfffffffc
cmp eax, dword [ebp - 0xb0]
jb 0x41e0c0
mov eax, dword [eax]
test eax, eax
js 0x41e866
nop
lea esi, [esi]
mov edx, dword [esi + 0x1c]
lea ecx, [esi + 0x1c]
test dl, 1
je 0x41e100
mov eax, edx
not eax
test al, 7
je 0x41e100
mov eax, edx
and eax, 7
cmp eax, 3
je 0x41e650
mov eax, edx
and eax, 0xfffffffc
cmp eax, dword [ebp - 0xb0]
jb 0x41e100
mov eax, dword [eax]
test eax, eax
js 0x41e842
nop
lea esi, [esi]
add esi, 0x20
dec dword [ebp - 0xac]
je 0x41e682
mov edx, dword [esi + 8]
lea ecx, [esi + 8]
test dl, 1
je 0x41dfc0
mov eax, edx
not eax
test al, 7
je 0x41dfc0
mov eax, edx
and eax, 7
cmp eax, 3
jne 0x41dfa0
mov edi, edx
and edi, 0xfffffffc
cmp edi, dword [ebp - 0x124]
jae 0x41dfc0
mov eax, dword [edi]
and edx, 3
or edx, ecx
or edx, 0x80000000
mov dword [esi + 8], eax
mov dword [edi], edx
jmp 0x41dfc0
mov eax, dword [ebp - 0x90]
lea edx, [esi - 3]
mov dword [ebp - 0x90], edx
mov dword [eax], esi
mov esi, dword [esi - 3]
jmp 0x41dc05
xor eax, eax
mov edi, 0xa01
mov esi, str.c:_usr_work_edrive_w32texsrc_clisp249_clisp_2.49_src_spvw_garcol.d
mov dword [0x698fa0], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp], str.munmap___failed.
add eax, 0x40
mov dword [esp + 0xc], eax
mov eax, 0x10
mov dword [esp + 8], eax
mov eax, 1
mov dword [esp + 4], eax
call sub.msvcrt.dll_fwrite
call sub.KERNEL32.dll_GetLastError
mov dword [esp], eax
mov dword [esp + 8], edi
mov dword [esp + 4], esi
call fcn.00439acc
call fcn.00473504
shr edx, 8
xor edi, edi
sub edx, 2
cmp edi, edx
jae case.0x41d7a8.50
mov eax, dword [ebp - 0x70]
mov esi, dword [eax + edi*4 + 0xf]
test esi, 1
je 0x41e225
mov eax, esi
not eax
test al, 7
je 0x41e225
mov eax, esi
and eax, 0xfffffffc
mov ecx, dword [eax]
test ecx, ecx
js 0x41e225
mov ecx, dword [ebp - 0x14c]
mov esi, dword [ebp - 0x70]
mov dword [ecx], eax
mov dword [ecx + 4], esi
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
add ecx, 0x10
mov dword [ebp - 0x14c], ecx
inc edi
jmp 0x41e1d6
shr edx, 8
xor edi, edi
sub edx, 2
cmp edi, edx
jae case.0x41d7a8.50
mov eax, dword [ebp - 0x70]
mov esi, dword [eax + edi*4 + 0xf]
test esi, 1
je 0x41e27f
mov eax, esi
not eax
test al, 7
je 0x41e27f
mov eax, esi
and eax, 0xfffffffc
mov esi, dword [eax]
test esi, esi
js 0x41e27f
mov ecx, dword [ebp - 0x14c]
mov esi, dword [ebp - 0x70]
mov dword [ecx], eax
mov dword [ecx + 4], esi
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
add ecx, 0x10
mov dword [ebp - 0x14c], ecx
inc edi
jmp 0x41e230
shr edx, 8
xor edi, edi
sub edx, 2
shr edx, 1
cmp edi, edx
jae case.0x41d7a8.50
mov eax, dword [ebp - 0x70]
mov esi, dword [eax + edi*8 + 0x13]
test esi, 1
je 0x41e2d7
mov eax, esi
not eax
test al, 7
je 0x41e2d7
mov eax, esi
and eax, 0xfffffffc
mov ecx, dword [eax]
test ecx, ecx
js 0x41e2d7
mov ecx, dword [ebp - 0x14c]
mov esi, dword [ebp - 0x70]
mov dword [ecx], eax
mov dword [ecx + 4], esi
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], 0
add ecx, 0x10
mov dword [ebp - 0x14c], ecx
inc edi
jmp 0x41e28c
shr edx, 8
xor edi, edi
sub edx, 2
shr edx, 1
cmp edi, edx
jae case.0x41d7a8.50
mov eax, dword [ebp - 0x70]
mov esi, dword [eax + edi*8 + 0xf]
test esi, 1
je 0x41e32f
mov eax, esi
not eax
test al, 7
je 0x41e32f
mov eax, esi
and eax, 0xfffffffc
mov esi, dword [eax]
test esi, esi
js 0x41e32f
mov ecx, dword [ebp - 0x14c]
mov esi, dword [ebp - 0x70]
mov dword [ecx], eax
mov dword [ecx + 4], esi
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], 0
add ecx, 0x10
mov dword [ebp - 0x14c], ecx
inc edi
jmp 0x41e2e4
shr edx, 8
xor edi, edi
sub edx, 3
cmp edi, edx
jae case.0x41d7a8.50
mov eax, dword [ebp - 0x70]
mov esi, dword [eax + edi*4 + 0x13]
test esi, 1
je 0x41e389
mov eax, esi
not eax
test al, 7
je 0x41e389
mov eax, esi
and eax, 0xfffffffc
mov ecx, dword [eax]
test ecx, ecx
js 0x41e389
mov ecx, dword [ebp - 0x14c]
mov esi, dword [ebp - 0x70]
mov dword [ecx], eax
mov dword [ecx + 4], esi
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
add ecx, 0x10
mov dword [ebp - 0x14c], ecx
inc edi
jmp 0x41e33a
shr edx, 8
xor edi, edi
sub edx, 3
cmp edi, edx
jae case.0x41d7a8.50
mov eax, dword [ebp - 0x70]
mov esi, dword [eax + edi*4 + 0x13]
test esi, 1
je 0x41e3e3
mov eax, esi
not eax
test al, 7
je 0x41e3e3
mov eax, esi
and eax, 0xfffffffc
mov esi, dword [eax]
test esi, esi
js 0x41e3e3
mov ecx, dword [ebp - 0x14c]
mov esi, dword [ebp - 0x70]
mov dword [ecx], eax
mov dword [ecx + 4], esi
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
add ecx, 0x10
mov dword [ebp - 0x14c], ecx
inc edi
jmp 0x41e394
mov dword [ebp - 0x78], 0
shr edx, 8
mov eax, 0xaaaaaaab
sub edx, 4
mul edx
shr edx, 1
cmp dword [ebp - 0x78], edx
jae case.0x41d7a8.50
mov edi, dword [ebp - 0x70]
add edi, 0x1b
mov esi, dword [edi]
test esi, 1
je 0x41e44c
mov eax, esi
not eax
test al, 7
je 0x41e44c
mov eax, esi
and eax, 0xfffffffc
mov ecx, dword [eax]
test ecx, ecx
js 0x41e44c
mov ecx, dword [ebp - 0x14c]
mov esi, dword [ebp - 0x70]
mov dword [ecx], eax
mov eax, dword [ebp - 0x78]
mov dword [ecx + 4], esi
mov dword [ecx + 0xc], 0
mov dword [ecx + 8], eax
add ecx, 0x10
mov dword [ebp - 0x14c], ecx
inc dword [ebp - 0x78]
add edi, 0xc
cmp dword [ebp - 0x78], edx
jb 0x41e40b
jmp case.0x41d7a8.50
mov dword [ebp - 0x74], 0
shr edx, 8
mov eax, 0xaaaaaaab
sub edx, 4
mul edx
shr edx, 1
cmp dword [ebp - 0x74], edx
jae case.0x41d7a8.50
mov edi, dword [ebp - 0x70]
add edi, 0x17
mov esi, dword [edi]
test esi, 1
je 0x41e4c2
mov eax, esi
not eax
test al, 7
je 0x41e4c2
mov eax, esi
and eax, 0xfffffffc
mov esi, dword [eax]
test esi, esi
js 0x41e4c2
mov ecx, dword [ebp - 0x14c]
mov esi, dword [ebp - 0x70]
mov dword [ecx], eax
mov eax, dword [ebp - 0x74]
mov dword [ecx + 4], esi
mov dword [ecx + 0xc], 0
mov dword [ecx + 8], eax
add ecx, 0x10
mov dword [ebp - 0x14c], ecx
inc dword [ebp - 0x74]
add edi, 0xc
cmp dword [ebp - 0x74], edx
jb 0x41e481
jmp case.0x41d7a8.50
shr edx, 8
xor edi, edi
sub edx, 2
shr edx, 1
cmp edi, edx
jae case.0x41d7a8.50
mov eax, dword [ebp - 0x70]
mov esi, dword [eax + edi*8 + 0xf]
test esi, 1
je 0x41e527
mov eax, esi
not eax
test al, 7
je 0x41e527
mov eax, esi
and eax, 0xfffffffc
mov esi, dword [eax]
test esi, esi
js 0x41e527
mov ecx, dword [ebp - 0x14c]
mov esi, dword [ebp - 0x70]
mov dword [ecx], eax
mov dword [ecx + 4], esi
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], 0
add ecx, 0x10
mov dword [ebp - 0x14c], ecx
mov eax, dword [ebp - 0x70]
mov esi, dword [eax + edi*8 + 0x13]
test esi, 1
je 0x41e56a
mov eax, esi
not eax
test al, 7
je 0x41e56a
mov eax, esi
and eax, 0xfffffffc
mov ecx, dword [eax]
test ecx, ecx
js 0x41e56a
mov ecx, dword [ebp - 0x14c]
mov esi, dword [ebp - 0x70]
mov dword [ecx], eax
mov dword [ecx + 4], esi
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], 0
add ecx, 0x10
mov dword [ebp - 0x14c], ecx
inc edi
jmp 0x41e4dc
mov dword [ebp - 0x7c], 0
shr edx, 8
mov eax, 0xaaaaaaab
sub edx, 4
mul edx
shr edx, 1
cmp dword [ebp - 0x7c], edx
jae case.0x41d7a8.50
mov edi, dword [ebp - 0x70]
add edi, 0x1b
mov esi, dword [edi - 4]
test esi, 1
je 0x41e5d7
mov eax, esi
not eax
test al, 7
je 0x41e5d7
mov eax, esi
and eax, 0xfffffffc
mov esi, dword [eax]
test esi, esi
js 0x41e5d7
mov ecx, dword [ebp - 0x14c]
mov esi, dword [ebp - 0x70]
mov dword [ecx], eax
mov eax, dword [ebp - 0x7c]
mov dword [ecx + 4], esi
mov dword [ecx + 0xc], 0
mov dword [ecx + 8], eax
add ecx, 0x10
mov dword [ebp - 0x14c], ecx
mov esi, dword [edi]
test esi, 1
je 0x41e618
mov eax, esi
not eax
test al, 7
je 0x41e618
mov eax, esi
and eax, 0xfffffffc
mov ecx, dword [eax]
test ecx, ecx
js 0x41e618
mov ecx, dword [ebp - 0x14c]
mov esi, dword [ebp - 0x70]
mov dword [ecx], eax
mov eax, dword [ebp - 0x7c]
mov dword [ecx + 4], esi
mov dword [ecx + 0xc], 0
mov dword [ecx + 8], eax
add ecx, 0x10
mov dword [ebp - 0x14c], ecx
inc dword [ebp - 0x7c]
add edi, 0xc
cmp dword [ebp - 0x7c], edx
jb 0x41e595
jmp case.0x41d7a8.50
and eax, 0x7fffffff
mov dword [edx], eax
add edx, 8
jmp 0x41ddfa
and edx, 0x40000000
jne 0x41de4f
sub esi, 8
jmp 0x41de0d
mov edi, edx
and edi, 0xfffffffc
cmp edi, dword [ebp - 0x124]
jae 0x41e100
mov eax, dword [edi]
and edx, 3
or edx, ecx
or edx, 0x80000000
mov dword [esi + 0x1c], eax
add esi, 0x20
dec dword [ebp - 0xac]
mov dword [edi], edx
jne 0x41e10f
cmp dword [ebp - 0x130], 0
mov esi, section..data
mov dword [ebp - 0xb4], esi
je 0x41e6fd
mov edx, dword [ebp - 0xb4]
cmp byte [edx + 0x14], 0
je 0x41e6ea
mov eax, dword [edx + 0x10]
mov eax, dword [eax]
test eax, eax
je 0x41e6ea
mov ecx, dword [edx + 0xc]
mov edi, eax
mov edx, dword [ecx]
test dl, 1
je 0x41e6e4
mov eax, edx
not eax
test al, 7
je 0x41e6e4
mov eax, edx
and eax, 7
cmp eax, 3
je 0x41f138
mov eax, edx
and eax, 0xfffffffc
cmp eax, dword [0x6975dc]
jb 0x41e6e4
mov eax, dword [eax]
test eax, eax
js 0x41f2e6
add ecx, 4
dec edi
jne 0x41e6b0
add dword [ebp - 0xb4], 0x2c
mov ecx, dword [ebp - 0xb4]
mov ecx, dword [ecx]
test ecx, ecx
jne 0x41e696
mov esi, 0x698ff0
mov edi, 5
mov edx, dword [esi]
test dl, 1
je 0x41e73b
mov eax, edx
not eax
test al, 7
je 0x41e73b
mov eax, edx
and eax, 7
cmp eax, 3
je 0x41f453
mov eax, edx
and eax, 0xfffffffc
cmp eax, dword [0x6975dc]
jb 0x41e73b
mov eax, dword [eax]
test eax, eax
js 0x41f4e2
add esi, 4
dec edi
jne 0x41e707
mov eax, dword [0x6975e0]
mov esi, dword [0x6975e4]
mov dword [ebp - 0xb8], eax
cmp esi, eax
jmp 0x41e75e
mov esi, eax
cmp esi, dword [ebp - 0xb8]
je 0x41e9f0
mov eax, dword [esi]
test eax, eax
jns 0x41e756
mov eax, esi
call fcn.00419e14
mov edx, dword [esi + 4]
lea eax, [esi + eax]
mov dword [ebp - 0xbc], eax
movsx eax, dl
cmp eax, 0x1d
ja case.0x41e789.0
jmp dword [eax*4 + 0x50deb4]
mov edi, edx
and edi, 0xfffffffc
cmp edi, dword [ebp - 0x124]
jae 0x41e080
mov eax, dword [edi]
and edx, 3
or edx, ecx
or edx, 0x80000000
mov dword [esi + 0x14], eax
mov dword [edi], edx
jmp 0x41e080
mov edi, edx
and edi, 0xfffffffc
cmp edi, dword [ebp - 0x124]
jae 0x41e0c0
mov eax, dword [edi]
and edx, 3
or edx, ecx
or edx, 0x80000000
mov dword [esi + 0x18], eax
mov dword [edi], edx
jmp 0x41e0c0
mov edi, edx
and edi, 0xfffffffc
cmp edi, dword [ebp - 0x124]
jae 0x41e000
mov eax, dword [edi]
and edx, 3
or edx, ecx
or edx, 0x80000000
mov dword [esi + 0xc], eax
mov dword [edi], edx
jmp 0x41e000
mov edi, edx
and edi, 0xfffffffc
cmp edi, dword [ebp - 0x124]
jae 0x41e040
mov eax, dword [edi]
and edx, 3
or edx, ecx
or edx, 0x80000000
mov dword [esi + 0x10], eax
mov dword [edi], edx
jmp 0x41e040
and edx, 3
and eax, 0x7ffffffc
or edx, eax
mov dword [esi + 0x10], edx
jmp 0x41e040
and edx, 3
and eax, 0x7ffffffc
or edx, eax
mov dword [esi + 0x1c], edx
jmp 0x41e100
and edx, 3
and eax, 0x7ffffffc
or edx, eax
mov dword [esi + 0x14], edx
jmp 0x41e080
and edx, 3
and eax, 0x7ffffffc
or edx, eax
mov dword [esi + 0x18], edx
jmp 0x41e0c0
and edx, 3
and eax, 0x7ffffffc
or edx, eax
mov dword [esi + 0xc], edx
jmp 0x41e000
and edx, 3
and eax, 0x7ffffffc
or edx, eax
mov dword [esi + 8], edx
jmp 0x41dfc0
mov edx, dword [esi + 8]
lea edi, [esi + 8]
test dl, 1
je case.0x41e789.10
mov eax, edx
not eax
test al, 7
je case.0x41e789.10
mov eax, edx
and eax, 7
cmp eax, 3
je 0x41f549
mov eax, edx
and eax, 0xfffffffc
cmp eax, dword [0x6975dc]
jb case.0x41e789.10
mov eax, dword [eax]
test eax, eax
jns case.0x41e789.10
and edx, 3
and eax, 0x7ffffffc
or edx, eax
mov dword [esi + 8], edx
mov esi, dword [ebp - 0xbc]
jmp 0x41e758
cmp dl, 0x37
jg 0x41f237
cmp dl, 0xff
je 0x41f229
cmp dl, 0xfd
je 0x41f21c
test dl, dl
js 0x41f50c
shr edx, 0x10
movzx edi, dl
test edi, edi
je case.0x41e789.10
add esi, 8
jmp 0x41e937
mov eax, edx
and eax, 0xfffffffc
cmp eax, dword [0x6975dc]
jb 0x41e931
mov eax, dword [eax]
test eax, eax
js 0x41f4d1
add esi, 4
dec edi
je case.0x41e789.10
mov edx, dword [esi]
test dl, 1
je 0x41e931
mov eax, edx
not eax
test al, 7
je 0x41e931
mov eax, edx
and eax, 7
cmp eax, 3
jne 0x41e91a
mov ecx, edx
and ecx, 0xfffffffc
cmp ecx, dword [0x697600]
jae 0x41e931
mov eax, dword [ecx]
and edx, 3
or edx, esi
or edx, 0x80000000
mov dword [esi], eax
mov dword [ecx], edx
jmp 0x41e931
and edx, 0xfffffcff
mov dword [esi + 4], edx
jmp case.0x41e789.10
mov edi, edx
shr edi, 8
je case.0x41e789.10
add esi, 8
jmp 0x41e9b7
mov eax, edx
and eax, 0xfffffffc
cmp eax, dword [0x6975dc]
jb 0x41e9ad
mov eax, dword [eax]
test eax, eax
jns 0x41e9ad
and edx, 3
and eax, 0x7ffffffc
or edx, eax
mov dword [esi], edx
add esi, 4
dec edi
je case.0x41e789.10
mov edx, dword [esi]
test dl, 1
je 0x41e9ad
mov eax, edx
not eax
test al, 7
je 0x41e9ad
mov eax, edx
and eax, 7
cmp eax, 3
jne 0x41e98e
mov ecx, edx
and ecx, 0xfffffffc
cmp ecx, dword [0x697600]
jae 0x41e9ad
mov eax, dword [ecx]
and edx, 3
or edx, esi
or edx, 0x80000000
mov dword [esi], eax
mov dword [ecx], edx
jmp 0x41e9ad
mov edx, dword [0x697658]
test edx, edx
je 0x41e9ff
call fcn.0041d184
mov esi, dword [0x6975fc]
mov edx, dword [0x697600]
mov edi, dword [0x697604]
mov dword [ebp - 0x124], edx
add edi, esi
cmp esi, edx
je 0x41ea5d
mov ecx, dword [esi]
test ecx, ecx
je 0x41ea52
jge 0x41ea3f
and ecx, 0x7fffffff
mov eax, ecx
and eax, 0xfffffffc
mov edx, dword [eax]
and ecx, 3
or ecx, edi
mov dword [eax], ecx
test edx, edx
mov ecx, edx
js 0x41ea25
mov eax, ecx
and eax, 7
cmp eax, 3
je 0x41ec9d
mov dword [esi], ecx
add edi, 4
add esi, 4
cmp esi, dword [ebp - 0x124]
jne 0x41ea1d
cmp edi, dword [ebp - 0x124]
jne case.0x41d7a8.51
mov byte [0x6971e8], 0
mov eax, 0x6975fc
call fcn.0041cca0
xor eax, eax
mov dword [ebp - 0xc4], eax
mov esi, dword [ebp - 0xc4]
mov eax, dword [ebp - 0xc4]
shl esi, 5
lea ecx, [esi + 0x6975dc]
test eax, eax
mov dword [ebp - 0xc8], ecx
jne 0x41eaa8
mov eax, ecx
call fcn.0041d344
mov eax, dword [0x697658]
test eax, eax
jne 0x41ece2
cmp dword [ebp - 0xc4], 1
je 0x41f2af
mov esi, dword [ebp - 0xc8]
mov edx, dword [0x697638]
mov eax, dword [esi + 4]
mov dword [esi + 0x14], eax
lea eax, [edx + eax - 1]
neg edx
and eax, edx
mov dword [esi + 4], eax
mov dword [esi + 0x18], eax
mov edx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0xc4]
call fcn.0041ab04
cmp dword [ebp - 0xc4], 1
je 0x41f1de
mov edx, dword [ebp - 0xc8]
mov eax, dword [edx + 0x10]
mov dword [edx], eax
inc dword [ebp - 0xc4]
cmp dword [ebp - 0xc4], 1
jbe 0x41ea82
inc dword [0x6971e4]
xor edi, edi
call fcn.00419dc4
mov dword [ebp - 0x40], eax
mov ecx, 0x6975dc
mov edx, 1
mov eax, dword [ecx + 0x14]
mov esi, dword [ecx + 0x10]
add ecx, 0x20
sub eax, esi
add edi, eax
dec edx
jns 0x41eb38
mov esi, dword [0x6975e0]
mov eax, dword [0x6975f4]
mov ecx, dword [0x6975fc]
mov edx, esi
sub edx, eax
mov eax, dword [0x697614]
sub eax, ecx
add edx, eax
mov eax, edi
shr eax, 2
cmp eax, 0x7ffff
ja 0x41eb77
mov eax, 0x80000
mov dword [0x69761c], eax
mov eax, ecx
sub eax, esi
cmp dword [0x69761c], eax
jbe 0x41eb8d
mov dword [0x69761c], eax
mov dword [0x697628], edx
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
mov dword [0x697624], edi
mov ecx, dword [0x6971e0]
mov dword [0x698fa0], ebx
sub eax, edx
mov edx, dword [0x6971dc]
add ecx, eax
cmp ecx, eax
adc edx, 0
xor edi, edi
mov dword [0x6971e0], ecx
mov dword [0x6971dc], edx
mov dword [ebp - 0x110], edi
mov eax, dword [ebp - 0x110]
shl eax, 5
lea edi, [eax + 0x6975dc]
cmp dword [ebp - 0x110], 1
je 0x41f195
mov esi, dword [edi + 4]
xor edx, edx
mov eax, dword [0x6975c8]
mov ecx, dword [0x6975c8]
add eax, esi
dec eax
div dword [0x6975c8]
mov edx, dword [0x6975c8]
mov esi, eax
imul esi, ecx
mov ecx, dword [edi + 0xc]
lea eax, [ecx + edx - 1]
xor edx, edx
div dword [0x6975c8]
mov edx, dword [0x6975c8]
imul eax, edx
cmp eax, esi
jb case.0x41d7a8.51
cmp ecx, esi
ja 0x41f2a1
inc dword [ebp - 0x110]
cmp dword [ebp - 0x110], 1
jbe 0x41ebce
xor ecx, ecx
lea eax, [ebp - 0x38]
mov dword [0x698fa0], ecx
mov dword [esp], eax
call fcn.0049a5e8
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x20]
sub eax, edx
mov edx, dword [ebp - 0x38]
cmp edx, ecx
jae 0x41ec6b
dec eax
add dword [0x6971d8], eax
sub edx, ecx
add dword [0x6971d4], edx
sub dword [0x4f9a28], 0xffffff80
mov dword [ebp - 0x34], eax
mov byte [0x698fc1], 0
mov esp, dword [ebp - 0x9c]
mov esp, dword [ebp - 0x94]
lea esp, [ebp - 8]
pop esi
pop edi
pop ebp
ret
mov edx, dword [ebp - 0x124]
mov eax, ecx
and eax, 0xfffffffc
mov dword [ebp - 0xc0], eax
cmp eax, edx
setb al
xor edx, edx
cmp dword [ebp - 0xc0], esi
seta dl
test eax, edx
je 0x41ea4d
mov edx, dword [ebp - 0xc0]
and ecx, 3
or ecx, esi
or ecx, 0x80000000
mov eax, dword [edx]
mov dword [esi], eax
mov dword [edx], ecx
jmp 0x41ea4f
mov eax, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xc8]
mov eax, dword [eax + 0x10]
mov edx, dword [edx + 0x14]
mov dword [ebp - 0xcc], eax
cmp eax, edx
mov dword [ebp - 0xd0], edx
jae 0x41eaf3
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx + 0x1c]
test edx, edx
je 0x41eaf3
mov dword [ebp - 0xd4], esp
mov esi, dword [0x697638]
mov eax, esi
mov dword [ebp - 0x120], esi
shr eax, 2
lea eax, [eax*8 + 0x1e]
and eax, 0xfffffff0
call fcn.004ea990
mov dword [ebp - 0xdc], edx
lea eax, [esp + 0x23]
and eax, 0xfffffff0
mov dword [ebp - 0xd8], eax
mov eax, esi
neg eax
and dword [ebp - 0xcc], eax
jmp 0x41ed83
add dword [ebp - 0xdc], 0x18
mov edx, dword [ebp - 0x120]
mov ecx, dword [ebp - 0xd0]
add dword [ebp - 0xcc], edx
cmp dword [ebp - 0xcc], ecx
jae 0x41f2db
mov edx, dword [ebp - 0xdc]
cmp dword [edx + 0xc], 3
jne 0x41ed5e
mov ecx, dword [edx + 4]
mov edi, dword [ebp - 0xd8]
test ecx, ecx
je 0x41ede7
mov esi, dword [edx]
mov eax, dword [0x6975dc]
mov edx, dword [0x697600]
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xe4], edx
mov edx, dword [esi]
test dl, 1
je 0x41ede1
mov eax, edx
not eax
test al, 7
je 0x41ede1
mov eax, edx
and eax, 0xfffffffc
cmp eax, dword [ebp - 0xe0]
jb 0x41ede1
cmp eax, dword [ebp - 0xe4]
jae 0x41ede1
mov dword [edi], esi
mov dword [edi + 4], edx
add edi, 8
add esi, 4
dec ecx
jne 0x41edb5
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0x120]
mov esi, dword [ebp - 0xd0]
add ecx, eax
cmp ecx, esi
mov dword [ebp - 0xe8], ecx
jbe 0x41ee0b
mov dword [ebp - 0xe8], esi
mov eax, dword [ebp - 0xdc]
mov esi, dword [eax + 8]
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x41ef60
cmp dword [ebp - 0xc4], 1
jne case.0x41d7a8.51
cmp esi, dword [ebp - 0xe8]
mov edx, esi
jae 0x41ee7e
mov ecx, dword [0x697600]
mov esi, dword [0x6975dc]
mov dword [ebp - 0x10c], ecx
mov ecx, dword [edx]
test cl, 1
je 0x41ee73
mov eax, ecx
not eax
test al, 7
je 0x41ee73
mov eax, ecx
and eax, 0xfffffffc
cmp eax, esi
jb 0x41ee73
cmp eax, dword [ebp - 0x10c]
jae 0x41ee73
mov dword [edi], edx
mov dword [edi + 4], ecx
add edi, 8
add edx, 4
cmp edx, dword [ebp - 0xe8]
jb 0x41ee4b
mov eax, dword [ebp - 0xd8]
mov esi, edi
sub esi, eax
mov eax, dword [ebp - 0x120]
sar esi, 3
shr eax, 4
cmp eax, esi
jb 0x41f430
mov eax, dword [ebp - 0xdc]
test esi, esi
mov dword [eax + 0x10], esi
jne 0x41f3da
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x41f48c
mov ecx, dword [ebp - 0xdc]
mov dword [ecx + 0x14], 0
mov dword [esp], 1
mov edx, dword [0x697638]
mov eax, dword [ebp - 0xcc]
call fcn.0041a124
mov esi, dword [ebp - 0xdc]
mov dword [esi + 0xc], 1
mov eax, dword [0x697638]
mov dword [ebp - 0x120], eax
jmp 0x41ed5e
mov eax, dword [ebp - 0xe8]
lea ecx, [esi + 8]
mov dword [ebp - 0xec], ecx
cmp ecx, eax
jae 0x41ef40
mov ecx, dword [esi + 8]
test cl, 1
je 0x41ef40
mov eax, ecx
not eax
test al, 7
je 0x41ef40
mov eax, ecx
and eax, 0xfffffffc
cmp eax, dword [0x6975dc]
jb 0x41ef40
cmp eax, dword [0x697600]
jae 0x41ef40
mov dword [edi + 4], ecx
mov eax, dword [ebp - 0xec]
mov dword [edi], eax
add edi, 8
mov eax, edx
shr edx, 8
mov ecx, edx
and ecx, 0x40
shr eax, 0x10
cmp ecx, 1
sbb eax, 0xffffffff
and edx, 0x10
cmp edx, 1
sbb eax, 0xffffffff
lea esi, [esi + eax*4 + 0x10]
cmp esi, dword [ebp - 0xe8]
jae 0x41ee7e
mov edx, dword [esi + 4]
movsx eax, dl
cmp eax, 0x1d
ja case.0x41ef77.0
jmp dword [eax*4 + 0x50df2c]
lea ecx, [esi + 8]
cmp dl, 0x37
mov dword [ebp - 0x100], ecx
jg 0x41f187
test dl, dl
js 0x41f53b
shr edx, 0x10
movzx ecx, dl
shr edx, 8
lea eax, [edx + ecx*4 + 0xb]
and eax, 0x1ffc
add eax, esi
test ecx, ecx
mov esi, eax
je 0x41ef60
mov eax, dword [0x6975dc]
mov edx, dword [0x697600]
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x108], edx
mov eax, dword [ebp - 0xe8]
cmp dword [ebp - 0x100], eax
jae 0x41ef60
mov eax, dword [ebp - 0x100]
mov edx, dword [eax]
test dl, 1
je 0x41f00f
mov eax, edx
not eax
test al, 7
je 0x41f00f
mov eax, edx
and eax, 0xfffffffc
cmp eax, dword [ebp - 0x104]
jb 0x41f00f
cmp eax, dword [ebp - 0x108]
jae 0x41f00f
mov dword [edi + 4], edx
mov eax, dword [ebp - 0x100]
mov dword [edi], eax
add edi, 8
add dword [ebp - 0x100], 4
dec ecx
jne 0x41efc9
jmp 0x41ef60
mov eax, esi
call fcn.00419e14
add esi, eax
jmp 0x41ef60
mov eax, dword [ebp - 0xe8]
lea ecx, [esi + 8]
mov dword [ebp - 0xf0], ecx
cmp ecx, eax
jae 0x41f072
mov ecx, dword [esi + 8]
test cl, 1
je 0x41f072
mov eax, ecx
not eax
test al, 7
je 0x41f072
mov eax, ecx
and eax, 0xfffffffc
cmp eax, dword [0x6975dc]
jb 0x41f072
cmp eax, dword [0x697600]
jae 0x41f072
mov dword [edi + 4], ecx
mov eax, dword [ebp - 0xf0]
mov dword [edi], eax
add edi, 8
shr edx, 0xa
lea eax, [edx + 0xf]
and eax, 0x7ffffc
add esi, eax
jmp 0x41ef60
shr edx, 8
lea ecx, [esi + 8]
test edx, edx
mov dword [ebp - 0xf4], ecx
lea esi, [esi + edx*4 + 8]
je 0x41ef60
mov eax, dword [0x6975dc]
mov ecx, dword [0x697600]
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xfc], ecx
mov eax, dword [ebp - 0xe8]
cmp dword [ebp - 0xf4], eax
jae 0x41ef60
mov eax, dword [ebp - 0xf4]
mov ecx, dword [eax]
test cl, 1
je 0x41f0fd
mov eax, ecx
not eax
test al, 7
je 0x41f0fd
mov eax, ecx
and eax, 0xfffffffc
cmp eax, dword [ebp - 0xf8]
jb 0x41f0fd
cmp eax, dword [ebp - 0xfc]
jae 0x41f0fd
mov dword [edi + 4], ecx
mov eax, dword [ebp - 0xf4]
mov dword [edi], eax
add edi, 8
add dword [ebp - 0xf4], 4
dec edx
jne 0x41f0b3
jmp 0x41ef60
mov esi, edx
and esi, 0xfffffffc
cmp esi, dword [ebp - 0x124]
jae 0x41df5d
mov eax, dword [esi]
and edx, 3
or edx, edi
or edx, 0x80000000
mov dword [ecx + 0xc], eax
mov dword [esi], edx
jmp 0x41df5d
mov esi, edx
and esi, 0xfffffffc
cmp esi, dword [ebp - 0x124]
jae 0x41e6e4
mov eax, dword [esi]
and edx, 3
or edx, ecx
or edx, 0x80000000
mov dword [ecx], eax
mov dword [esi], edx
jmp 0x41e6e4
mov esi, edx
and esi, 0xfffffffc
cmp esi, dword [ebp - 0x124]
jae 0x41df25
mov eax, dword [esi]
and edx, 3
or edx, edi
or edx, 0x80000000
mov dword [ecx + 8], eax
mov dword [esi], edx
jmp 0x41df25
mov ecx, edx
shr ecx, 8
lea eax, [esi + ecx*4 + 8]
jmp 0x41efac
mov ecx, dword [0x6975c8]
xor edx, edx
mov eax, dword [eax + 0x6975dc]
div ecx
mov esi, eax
imul esi, ecx
mov eax, dword [edi + 0xc]
cmp eax, esi
ja case.0x41d7a8.51
jae 0x41ec36
mov ecx, esi
sub ecx, eax
mov dword [esp + 4], ecx
mov eax, dword [edi + 0xc]
mov dword [esp], eax
call fcn.00419d1c
test eax, eax
js 0x41e179
mov dword [edi + 0xc], esi
jmp 0x41ec36
mov esi, dword [ebp - 0xc8]
mov eax, dword [esi + 0x14]
mov dword [esi + 4], eax
jmp 0x41eb0b
mov esi, edx
and esi, 0xfffffffc
cmp esi, dword [ebp - 0x124]
jae 0x41de97
mov eax, dword [esi]
and edx, 3
mov dword [ecx + 4], eax
lea eax, [ecx + 4]
mov ecx, dword [ecx]
or edx, eax
or edx, 0x80000000
mov dword [esi], edx
jmp 0x41de99
mov eax, edx
shr eax, 8
test al, al
jns 0x41e903
and edx, 0xfffff9ff
mov dword [esi + 4], edx
jmp 0x41e903
mov edi, edx
shr edi, 8
je case.0x41e789.10
add esi, 8
jmp 0x41f268
mov eax, edx
and eax, 0xfffffffc
cmp eax, dword [0x6975dc]
jb 0x41f25e
mov eax, dword [eax]
test eax, eax
js 0x41f516
add esi, 4
dec edi
je case.0x41e789.10
mov edx, dword [esi]
test dl, 1
je 0x41f25e
mov eax, edx
not eax
test al, 7
je 0x41f25e
mov eax, edx
and eax, 7
cmp eax, 3
jne 0x41f247
mov ecx, edx
and ecx, 0xfffffffc
cmp ecx, dword [0x697600]
jae 0x41f25e
mov eax, dword [ecx]
and edx, 3
or edx, esi
or edx, 0x80000000
mov dword [esi], eax
mov dword [ecx], edx
jmp 0x41f25e
mov dword [esp], esi
sub ecx, esi
mov dword [esp + 4], ecx
jmp 0x41f1c9
mov edx, dword [esi + 0x6975dc]
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xc8]
mov dword [eax + 0x10], edx
mov eax, dword [0x697638]
neg eax
and edx, eax
mov dword [ecx + 0x18], edx
mov dword [esi + 0x6975dc], edx
jmp 0x41eae2
mov esp, dword [ebp - 0xd4]
jmp 0x41eaf3
and edx, 3
and eax, 0x7ffffffc
or edx, eax
mov dword [ecx], edx
jmp 0x41e6e4
and edx, 3
and eax, 0x7ffffffc
or edx, eax
mov dword [ecx + 8], edx
jmp 0x41df25
lea eax, [ebp - 0x28]
mov edx, dword [0x6975e0]
mov dword [esp + 4], eax
mov esi, dword [ebp - 0x98]
mov dword [esp], esi
mov eax, dword [0x6975dc]
call fcn.0041d408
lea eax, [ebp - 0x2c]
mov edx, dword [0x6975e0]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0xa0]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x28]
mov dword [esp + 4], esi
mov dword [esp], 0x6975e4
mov dword [esp + 8], eax
mov eax, dword [0x6975dc]
jmp 0x41ddac
lea ecx, [ebp - 0x28]
mov edx, dword [0x6975e0]
mov eax, dword [0x6975ec]
mov dword [esp + 4], ecx
mov esi, dword [ebp - 0x98]
mov dword [esp], esi
call fcn.0041d408
lea ecx, [ebp - 0x2c]
mov edx, dword [0x6975e0]
mov eax, dword [0x6975ec]
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp - 0xa0]
mov dword [esp + 0xc], ecx
mov ecx, dword [ebp - 0x28]
mov dword [esp + 4], esi
mov dword [esp], 0x6975e4
mov dword [esp + 8], ecx
jmp 0x41ddac
mov ecx, edx
and ecx, 0xfffffffc
cmp ecx, dword [ebp - 0x124]
jae 0x41de4f
mov edx, dword [ecx]
mov eax, edi
and eax, 3
or eax, esi
or eax, 0x80000000
mov dword [esi], edx
sub esi, 4
mov dword [ecx], eax
jmp 0x41de52
mov eax, dword [ebp - 0xdc]
mov edi, dword [eax + 0x14]
test edi, edi
jne 0x41f4b0
lea eax, [esi*8]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov ecx, dword [ebp - 0xdc]
test eax, eax
mov dword [ecx + 0x14], eax
je 0x41eeea
mov edi, dword [ebp - 0xd8]
mov ecx, eax
mov eax, dword [edi]
mov edx, dword [edi + 4]
add edi, 8
mov dword [ecx], eax
mov dword [ecx + 4], edx
add ecx, 8
dec esi
jne 0x41f413
jmp 0x41eec5
mov edx, dword [ebp - 0xdc]
mov eax, dword [edx + 0x14]
test eax, eax
jne 0x41f4f3
mov esi, dword [ebp - 0xdc]
mov dword [esi + 0x14], 0
jmp 0x41ed5e
mov ecx, edx
and ecx, 0xfffffffc
cmp ecx, dword [ebp - 0x124]
jae 0x41e73b
mov eax, dword [ecx]
and edx, 3
or edx, esi
or edx, 0x80000000
mov dword [esi], eax
mov dword [ecx], edx
jmp 0x41e73b
and edx, 3
and eax, 0x7ffffffc
or edx, eax
mov dword [ecx + 0xc], edx
jmp 0x41df5d
mov dword [esp], eax
call sub.msvcrt.dll_free
jmp 0x41eeb8
mov eax, edx
and ecx, 0x7ffffffc
and eax, 3
or eax, ecx
mov dword [esi], eax
sub esi, 4
jmp 0x41de52
lea eax, [esi*8]
mov dword [esp + 4], eax
mov edx, dword [ebp - 0xdc]
mov eax, dword [edx + 0x14]
mov dword [esp], eax
call sub.msvcrt.dll_realloc
jmp 0x41f3fa
and edx, 3
and eax, 0x7ffffffc
or edx, eax
mov dword [esi], edx
jmp 0x41e931
and edx, 3
and eax, 0x7ffffffc
or edx, eax
mov dword [esi], edx
jmp 0x41e73b
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ecx, dword [0x697638]
mov dword [ebp - 0x120], ecx
jmp 0x41f441
mov edi, edx
shr edi, 0x10
jmp 0x41e911
and edx, 3
and eax, 0x7ffffffc
or edx, eax
mov dword [esi], edx
jmp 0x41f25e
and edx, 3
and eax, 0x7ffffffc
or edx, eax
mov dword [ecx + 4], edx
mov ecx, dword [ecx]
jmp 0x41de99
mov ecx, edx
shr ecx, 0x10
lea eax, [esi + ecx*4 + 8]
jmp 0x41efac
mov ecx, edx
and ecx, 0xfffffffc
cmp ecx, dword [0x697600]
jae case.0x41e789.10
mov eax, dword [ecx]
and edx, 3
or edx, edi
or edx, 0x80000000
mov dword [esi + 8], eax
mov dword [ecx], edx
jmp case.0x41e789.10