Function at 0x4371a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x46b316
mov eax, dword fs:[0]
push eax
sub esp, 0x230
mov eax, dword [0x49f080]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x94], edi
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x90], eax
mov eax, dword fs:[0x2c]
mov dword [ebp - 0x98], esi
mov ecx, dword [eax]
mov eax, dword [0x4a1990]
mov dword [ebp - 0x8c], ecx
cmp eax, dword [ecx + 4]
jle 0x437240
push 0x4a1990
call fcn.00443b49
add esp, 4
cmp dword [0x4a1990], 0xffffffff
jne 0x437240
push 0x46b8f0
mov dword [0x4a19c4], 0
call fcn.00443861
push 0x4a1990
call fcn.00443af8
add esp, 8
push 0xb
xorps xmm0, xmm0
mov dword [ebp - 0x78], 0
push str.remove_prot
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x74], 0
movups xmmword [ebp - 0x88], xmm0
call fcn.00404d90
lea eax, [ebp - 0x88]
mov dword [ebp - 4], 0
push eax
mov ecx, 0x4a19a0
call fcn.00432fb0
mov ecx, eax
cmp dword [eax + 0x14], 7
jbe 0x43728c
mov ecx, dword [eax]
push dword [eax + 0x10]
mov edx, esi
push ecx
lea ecx, [ebp - 0xb4]
call fcn.00418030
mov esi, eax
push 0xb8
lea eax, [ebp - 0x184]
mov byte [ebp - 4], 2
push 0
push eax
call fcn.00445500
add esp, 0x14
lea ecx, [ebp - 0x184]
push 0x49fb38
call fcn.00408b20
cmp dword [esi + 0x14], 7
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x54], 2
jbe 0x4372db
mov esi, dword [esi]
push eax
mov edx, esi
lea ecx, [ebp - 0x174]
call fcn.00422530
add esp, 4
lea ecx, [ebp - 0x174]
call fcn.0041a9f0
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0xd4]
test ecx, ecx
je 0x437311
lea eax, [ebp - 0x184]
push eax
call fcn.00417870
lea ecx, [ebp - 0x184]
call fcn.00408c60
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0xa0]
cmp ecx, 7
jbe 0x437360
mov edx, dword [ebp - 0xb4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x437356
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4384a5
push ecx
push edx
call fcn.00443876
add esp, 8
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0xa0], 7
mov word [ebp - 0xb4], ax
cmp ecx, 0xf
jbe 0x4373bb
mov edx, dword [ebp - 0x88]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4373b1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4384a5
push ecx
push edx
call fcn.00443876
add esp, 8
xor esi, esi
mov dword [ebp - 0x14], 0
xorps xmm0, xmm0
mov dword [ebp - 0x14], esi
movq qword [ebp - 0x1c], xmm0
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], esi
lea ecx, [edi + 0x30]
mov dword [ebp - 4], 4
mov edx, dword [ecx + 0x10]
mov edi, 0x7ffffffe
mov eax, edi
sub eax, edx
cmp eax, 1
jb 0x4384aa
cmp dword [ecx + 0x14], 7
jbe 0x4373fc
mov ecx, dword [ecx]
push 1
push 0x4914e0
push edx
push ecx
push ecx
push dword [ebp - 0x58]
lea ecx, [ebp - 0xb4]
call fcn.0041af60
mov dword [ebp - 0x54], 4
push dword [ebp - 0x98]
lea edx, [ebp - 0xb4]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x34]
call fcn.00417f70
add esp, 4
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0xa0]
cmp ecx, 7
jbe 0x43747a
mov edx, dword [ebp - 0xb4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x437470
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4384af
push ecx
push edx
call fcn.00443876
add esp, 8
xor eax, eax
mov dword [ebp - 0xa4], 0
mov word [ebp - 0xb4], ax
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0xa0], 7
mov eax, dword [eax]
test eax, eax
jne 0x437f4c
mov ecx, dword [0x621b18]
mov eax, edi
sub eax, dword [ebp - 0x24]
mov edx, dword [ecx + 0x10]
cmp eax, edx
jb 0x4384b4
cmp dword [ebp - 0x20], 7
lea eax, [ebp - 0x34]
cmova eax, dword [ebp - 0x34]
cmp dword [ecx + 0x14], 7
jbe 0x4374d0
mov ecx, dword [ecx]
push edx
push ecx
push dword [ebp - 0x24]
push eax
push ecx
push dword [ebp - 0x58]
lea ecx, [ebp - 0x4c]
call fcn.0041af60
mov dword [ebp - 0x54], 0x14
mov byte [ebp - 4], 8
lea edx, [ebp - 0x4c]
mov byte [ebp - 0x9c], 0
lea ecx, [ebp - 0x70]
push dword [ebp - 0x9c]
call fcn.0041e700
add esp, 4
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 9
call fcn.0040a930
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x5c]
mov byte [ebp - 0x4d], al
cmp ecx, 7
jbe 0x437558
mov edx, dword [ebp - 0x70]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x43754b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4384b9
push ecx
push edx
call fcn.00443876
mov al, byte [ebp - 0x4d]
add esp, 8
test al, al
je 0x437c0b
lea eax, [ebp - 0x9c]
push eax
push dword [ebp - 0x90]
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x7c]
push eax
call fcn.00438520
mov edx, eax
lea eax, [ebp - 0x1c]
cmp eax, edx
je 0x4375a8
mov ecx, dword [edx]
mov eax, dword [edx + 8]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [edx + 4]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], eax
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov ecx, dword [ebp - 0x7c]
test ecx, ecx
je 0x4375dc
mov edx, dword [ebp - 0x74]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x4375d2
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4384be
push edx
push ecx
call fcn.00443876
add esp, 8
mov esi, dword [ebp - 0x94]
mov eax, dword [0x621b18]
add esi, 0x18
mov dword [ebp - 0x90], eax
mov eax, edi
mov dword [ebp - 0x58], esi
mov ecx, dword [esi + 0x10]
sub eax, ecx
cmp eax, 1
jb 0x4384c3
cmp dword [esi + 0x14], 7
mov eax, esi
jbe 0x43760d
mov eax, dword [esi]
push 1
push 0x4914e0
push ecx
push eax
push ecx
push dword [ebp - 0x58]
lea ecx, [ebp - 0xcc]
call fcn.0041af60
push dword [ebp - 0x98]
lea edx, [ebp - 0xcc]
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x88]
call fcn.00417f70
push dword [ebp - 0x90]
mov edx, eax
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x70]
call fcn.00417f70
add esp, 8
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xc
push ecx
push eax
call fcn.00436c70
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x5c]
cmp ecx, 7
jbe 0x4376a3
mov edx, dword [ebp - 0x70]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x437699
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4384c8
push ecx
push edx
call fcn.00443876
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 7
mov word [ebp - 0x70], ax
cmp ecx, 7
jbe 0x4376f8
mov edx, dword [ebp - 0x88]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4376ee
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4384c8
push ecx
push edx
call fcn.00443876
add esp, 8
xor eax, eax
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0xb8]
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 7
mov word [ebp - 0x88], ax
cmp ecx, 7
jbe 0x437753
mov edx, dword [ebp - 0xcc]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x437749
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4384c8
push ecx
push edx
call fcn.00443876
add esp, 8
mov ecx, dword [0x621b18]
mov eax, edi
mov edi, dword [ebp - 0x24]
add ecx, 0x18
sub eax, edi
mov edx, dword [ecx + 0x10]
cmp eax, edx
jb 0x4384cd
cmp dword [ebp - 0x20], 7
lea eax, [ebp - 0x34]
cmova eax, dword [ebp - 0x34]
cmp dword [ecx + 0x14], 7
jbe 0x437781
mov ecx, dword [ecx]
push edx
push ecx
push edi
push eax
push ecx
push dword [ebp - 0x58]
lea ecx, [ebp - 0xcc]
call fcn.0041af60
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x54], 0x4214
cmp ecx, 7
jbe 0x4377d5
mov edx, dword [ebp - 0x4c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4377cb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4384f5
push ecx
push edx
call fcn.00443876
add esp, 8
movups xmm0, xmmword [ebp - 0xcc]
mov byte [ebp - 0x94], 0
lea edx, [ebp - 0x4c]
push dword [ebp - 0x94]
movups xmmword [ebp - 0x4c], xmm0
lea ecx, [ebp - 0xcc]
movq xmm0, qword [ebp - 0xbc]
movq qword [ebp - 0x3c], xmm0
call fcn.0041e700
add esp, 4
lea ecx, [ebp - 0xcc]
mov byte [ebp - 4], 0xd
call fcn.0040a930
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0xb8]
mov byte [ebp - 0x4d], al
cmp ecx, 7
jbe 0x437864
mov edx, dword [ebp - 0xcc]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x437857
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4384d2
push ecx
push edx
call fcn.00443876
mov al, byte [ebp - 0x4d]
add esp, 8
test al, al
je 0x437a96
xorps xmm0, xmm0
mov dword [ebp - 0x74], 0
movq qword [ebp - 0x7c], xmm0
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0
lea eax, [ebp - 0x94]
mov byte [ebp - 4], 0xe
push eax
lea eax, [ebp - 0x7c]
mov dword [ebp - 0x54], 0x204214
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.00436640
test al, al
je 0x4378df
push dword [ebp - 0x9c]
call fcn.00452205
mov edi, dword [ebp - 0x78]
add esp, 4
mov esi, dword [ebp - 0x7c]
cmp esi, edi
je 0x4378dc
nop dword [eax + eax]
call fcn.004521e4
xor byte [esi], al
inc esi
cmp esi, edi
jne 0x4378d0
mov esi, dword [ebp - 0x58]
mov dword [ebp - 4], 8
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x43791a
mov edx, dword [ebp - 0x14]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x437910
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4384d7
push edx
push ecx
call fcn.00443876
add esp, 8
mov eax, dword [ebp - 0x74]
mov edi, dword [0x621b18]
mov ecx, dword [esi + 0x10]
add edi, 0x18
movq xmm0, qword [ebp - 0x7c]
mov dword [ebp - 0x14], eax
mov eax, 0x7ffffffe
sub eax, ecx
movq qword [ebp - 0x1c], xmm0
cmp eax, 1
jb 0x4384dc
cmp dword [esi + 0x14], 7
jbe 0x43794e
mov esi, dword [esi]
push 1
push 0x4914e0
push ecx
push esi
push ecx
push dword [ebp - 0x58]
lea ecx, [ebp - 0xcc]
call fcn.0041af60
mov dword [ebp - 0x54], 0x100000
push dword [ebp - 0x98]
lea edx, [ebp - 0xcc]
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x88]
call fcn.00417f70
push edi
mov edx, eax
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x70]
call fcn.00417f70
add esp, 8
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x11
push ecx
push eax
call fcn.00436c70
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x5c]
cmp ecx, 7
jbe 0x4379e6
mov edx, dword [ebp - 0x70]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4379dc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4384e1
push ecx
push edx
call fcn.00443876
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 7
mov word [ebp - 0x70], ax
cmp ecx, 7
jbe 0x437a3b
mov edx, dword [ebp - 0x88]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x437a31
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4384e1
push ecx
push edx
call fcn.00443876
add esp, 8
xor eax, eax
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0xb8]
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 7
mov word [ebp - 0x88], ax
cmp ecx, 7
jbe 0x437a96
mov edx, dword [ebp - 0xcc]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x437a8c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4384e1
push ecx
push edx
call fcn.00443876
add esp, 8
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x38]
cmp ecx, 7
jbe 0x437ad4
mov edx, dword [ebp - 0x4c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x437aca
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4384f5
push ecx
push edx
call fcn.00443876
add esp, 8
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x8c]
mov eax, dword [0x4a1990]
cmp eax, dword [ecx + 4]
jle 0x437b21
push 0x4a1990
call fcn.00443b49
add esp, 4
cmp dword [0x4a1990], 0xffffffff
jne 0x437b21
push 0x46b8f0
mov dword [0x4a19c4], 0
call fcn.00443861
push 0x4a1990
call fcn.00443af8
add esp, 8
push 8
xorps xmm0, xmm0
mov dword [ebp - 0x60], 0
push str.done_msg
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x5c], 0
movups xmmword [ebp - 0x70], xmm0
call fcn.00404d90
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 0x23
push eax
mov ecx, 0x4a19a0
call fcn.00432fb0
mov edi, eax
push 0xb8
lea eax, [ebp - 0x23c]
mov byte [ebp - 4], 0x24
push 0
push eax
call fcn.00445500
add esp, 0xc
lea ecx, [ebp - 0x23c]
push 0x49fb38
call fcn.00408b20
or dword [ebp - 0x54], 8
cmp dword [edi + 0x14], 7
mov eax, dword [edi + 0x10]
jbe 0x437b92
mov edi, dword [edi]
push eax
mov edx, edi
lea ecx, [ebp - 0x22c]
call fcn.00422530
lea eax, [ebp - 0x22c]
push eax
call fcn.00417ed0
add esp, 8
mov byte [ebp - 4], 0x25
mov ecx, dword [ebp - 0x18c]
test ecx, ecx
je 0x437bc9
lea eax, [ebp - 0x23c]
push eax
call fcn.00417870
lea ecx, [ebp - 0x23c]
call fcn.00408c60
mov ecx, dword [ebp - 0x5c]
cmp ecx, 0xf
jbe 0x43840d
mov edx, dword [ebp - 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x438403
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4384e6
jmp 0x438403
mov ecx, dword [ebp - 0x8c]
mov eax, dword [0x4a1990]
cmp eax, dword [ecx + 4]
jle 0x437c55
push 0x4a1990
call fcn.00443b49
add esp, 4
cmp dword [0x4a1990], 0xffffffff
jne 0x437c55
push 0x46b8f0
mov dword [0x4a19c4], 0
call fcn.00443861
push 0x4a1990
call fcn.00443af8
add esp, 8
push 0xa
xorps xmm0, xmm0
mov dword [ebp - 0xa4], 0
push str.failed_msg
lea ecx, [ebp - 0xb4]
mov dword [ebp - 0xa0], 0
movups xmmword [ebp - 0xb4], xmm0
call fcn.00404d90
lea eax, [ebp - 0xb4]
mov byte [ebp - 4], 0x12
push eax
mov ecx, 0x4a19a0
call fcn.00432fb0
mov edi, eax
push 0xb8
lea eax, [ebp - 0x184]
mov byte [ebp - 4], 0x13
push 0
push eax
call fcn.00445500
add esp, 0xc
lea ecx, [ebp - 0x184]
push 0x49fb38
call fcn.00408b20
cmp dword [edi + 0x14], 7
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x54], 0x8014
jbe 0x437cd8
mov edi, dword [edi]
push eax
mov edx, edi
lea ecx, [ebp - 0x174]
call fcn.00422530
lea eax, [ebp - 0x174]
push eax
call fcn.00417ed0
add esp, 8
mov dword [ebp - 0x54], 0x14
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0xd4]
test ecx, ecx
je 0x437d16
lea eax, [ebp - 0x184]
push eax
call fcn.00417870
lea ecx, [ebp - 0x184]
call fcn.00408c60
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0xa0]
cmp ecx, 0xf
jbe 0x437d5f
mov edx, dword [ebp - 0xb4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x437d55
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4384eb
push ecx
push edx
call fcn.00443876
add esp, 8
mov ecx, dword [ebp - 0x8c]
mov eax, dword [0x4a1990]
cmp eax, dword [ecx + 4]
jle 0x437da9
push 0x4a1990
call fcn.00443b49
add esp, 4
cmp dword [0x4a1990], 0xffffffff
jne 0x437da9
push 0x46b8f0
mov dword [0x4a19c4], 0
call fcn.00443861
push 0x4a1990
call fcn.00443af8
add esp, 8
push 0x13
xorps xmm0, xmm0
mov dword [ebp - 0xa4], 0
push str.find_file_error_msg
lea ecx, [ebp - 0xb4]
mov dword [ebp - 0xa0], 0
movups xmmword [ebp - 0xb4], xmm0
call fcn.00404d90
lea eax, [ebp - 0xb4]
mov byte [ebp - 4], 0x15
push eax
mov ecx, 0x4a19a0
call fcn.00432fb0
mov ecx, eax
cmp dword [eax + 0x14], 7
jbe 0x437df8
mov ecx, dword [eax]
push dword [eax + 0x10]
lea edx, [ebp - 0x34]
push ecx
lea ecx, [ebp - 0x70]
call fcn.00418030
mov edi, eax
push 0xb8
lea eax, [ebp - 0x184]
mov byte [ebp - 4], 0x17
push 0
push eax
call fcn.00445500
add esp, 0x14
lea ecx, [ebp - 0x184]
push 0x49fb3c
call fcn.00408b20
cmp dword [edi + 0x14], 7
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x54], 0x414
jbe 0x437e45
mov edi, dword [edi]
push eax
mov edx, edi
lea ecx, [ebp - 0x174]
call fcn.00422530
lea eax, [ebp - 0x174]
push eax
call fcn.00417ed0
add esp, 8
mov byte [ebp - 4], 0x18
mov ecx, dword [ebp - 0xd4]
test ecx, ecx
je 0x437e7c
lea eax, [ebp - 0x184]
push eax
call fcn.00417870
lea ecx, [ebp - 0x184]
call fcn.00408c60
mov ecx, dword [ebp - 0x5c]
cmp ecx, 7
jbe 0x437ec1
mov edx, dword [ebp - 0x70]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x437eb7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4384f0
push ecx
push edx
call fcn.00443876
add esp, 8
mov ecx, dword [ebp - 0xa0]
xor eax, eax
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 7
mov word [ebp - 0x70], ax
cmp ecx, 0xf
jbe 0x437f0f
mov edx, dword [ebp - 0xb4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x437f05
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4384f0
push ecx
push edx
call fcn.00443876
add esp, 8
mov ecx, dword [ebp - 0x38]
cmp ecx, 7
jbe 0x43840d
mov edx, dword [ebp - 0x4c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x438403
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4384f5
jmp 0x438403
cmp eax, 1
je 0x437f5a
cmp eax, 2
jne 0x437ad7
mov byte [ebp - 0x58], 0
lea edx, [ebp - 0x34]
push dword [ebp - 0x58]
lea ecx, [ebp - 0xcc]
call fcn.0041e700
add esp, 4
lea ecx, [ebp - 0xcc]
mov byte [ebp - 4], 0x19
call fcn.0040a930
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0xb8]
mov byte [ebp - 0x4d], al
cmp ecx, 7
jbe 0x437fcb
mov edx, dword [ebp - 0xcc]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x437fbe
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4384fa
push ecx
push edx
call fcn.00443876
mov al, byte [ebp - 0x4d]
add esp, 8
test al, al
je 0x43814f
lea eax, [ebp - 0x9c]
push eax
push dword [ebp - 0x90]
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x7c]
push eax
call fcn.00438520
mov edx, eax
lea eax, [ebp - 0x1c]
cmp eax, edx
je 0x43801b
mov ecx, dword [edx]
mov eax, dword [edx + 8]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [edx + 4]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], eax
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov ecx, dword [ebp - 0x7c]
test ecx, ecx
je 0x43804f
mov edx, dword [ebp - 0x74]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x438045
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4384ff
push edx
push ecx
call fcn.00443876
add esp, 8
mov eax, dword [ebp - 0x94]
add eax, 0x18
mov ecx, dword [eax + 0x10]
sub edi, ecx
cmp edi, 1
jb 0x438504
cmp dword [eax + 0x14], 7
jbe 0x43806e
mov eax, dword [eax]
push 1
push 0x4914e0
push ecx
push eax
push ecx
push dword [ebp - 0x58]
lea ecx, [ebp - 0xcc]
call fcn.0041af60
mov dword [ebp - 0x54], 0x80004
push dword [ebp - 0x98]
lea edx, [ebp - 0xcc]
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x70]
call fcn.00417f70
add esp, 4
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x1b
push ecx
push eax
call fcn.00436c70
mov byte [ebp - 4], 0x1a
mov ecx, dword [ebp - 0x5c]
cmp ecx, 7
jbe 0x4380f4
mov edx, dword [ebp - 0x70]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4380ea
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x438509
push ecx
push edx
call fcn.00443876
add esp, 8
xor eax, eax
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0xb8]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 7
mov word [ebp - 0x70], ax
cmp ecx, 7
jbe 0x437ad4
mov edx, dword [ebp - 0xcc]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x437aca
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x438509
jmp 0x437aca
mov ecx, dword [ebp - 0x8c]
mov eax, dword [0x4a1990]
cmp eax, dword [ecx + 4]
jle 0x438199
push 0x4a1990
call fcn.00443b49
add esp, 4
cmp dword [0x4a1990], 0xffffffff
jne 0x438199
push 0x46b8f0
mov dword [0x4a19c4], 0
call fcn.00443861
push 0x4a1990
call fcn.00443af8
add esp, 8
push 0xa
xorps xmm0, xmm0
mov dword [ebp - 0x60], 0
push str.failed_msg
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x5c], 0
movups xmmword [ebp - 0x70], xmm0
call fcn.00404d90
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 0x1c
push eax
mov ecx, 0x4a19a0
call fcn.00432fb0
mov edi, eax
push 0xb8
lea eax, [ebp - 0x23c]
mov byte [ebp - 4], 0x1d
push 0
push eax
call fcn.00445500
add esp, 0xc
lea ecx, [ebp - 0x23c]
push 0x49fb38
call fcn.00408b20
cmp dword [edi + 0x14], 7
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x54], 0x10004
jbe 0x43820d
mov edi, dword [edi]
push eax
mov edx, edi
lea ecx, [ebp - 0x22c]
call fcn.00422530
lea eax, [ebp - 0x22c]
push eax
call fcn.00417ed0
add esp, 8
mov dword [ebp - 0x54], 4
mov byte [ebp - 4], 0x1e
mov ecx, dword [ebp - 0x18c]
test ecx, ecx
je 0x43824b
lea eax, [ebp - 0x23c]
push eax
call fcn.00417870
lea ecx, [ebp - 0x23c]
call fcn.00408c60
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x5c]
cmp ecx, 0xf
jbe 0x43828e
mov edx, dword [ebp - 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x438284
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43850e
push ecx
push edx
call fcn.00443876
add esp, 8
mov ecx, dword [ebp - 0x8c]
mov eax, dword [0x4a1990]
cmp eax, dword [ecx + 4]
jle 0x4382d8
push 0x4a1990
call fcn.00443b49
add esp, 4
cmp dword [0x4a1990], 0xffffffff
jne 0x4382d8
push 0x46b8f0
mov dword [0x4a19c4], 0
call fcn.00443861
push 0x4a1990
call fcn.00443af8
add esp, 8
push 0x13
xorps xmm0, xmm0
mov dword [ebp - 0x60], 0
push str.find_file_error_msg
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x5c], 0
movups xmmword [ebp - 0x70], xmm0
call fcn.00404d90
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 0x1f
push eax
mov ecx, 0x4a19a0
call fcn.00432fb0
mov ecx, eax
cmp dword [eax + 0x14], 7
jbe 0x438318
mov ecx, dword [eax]
push dword [eax + 0x10]
lea edx, [ebp - 0x34]
push ecx
lea ecx, [ebp - 0x88]
call fcn.00418030
mov edi, eax
push 0xb8
lea eax, [ebp - 0x23c]
mov byte [ebp - 4], 0x21
push 0
push eax
call fcn.00445500
add esp, 0x14
lea ecx, [ebp - 0x23c]
push 0x49fb3c
call fcn.00408b20
cmp dword [edi + 0x14], 7
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x54], 0x40004
jbe 0x438368
mov edi, dword [edi]
push eax
mov edx, edi
lea ecx, [ebp - 0x22c]
call fcn.00422530
lea eax, [ebp - 0x22c]
push eax
call fcn.00417ed0
add esp, 8
mov byte [ebp - 4], 0x22
mov ecx, dword [ebp - 0x18c]
test ecx, ecx
je 0x43839f
lea eax, [ebp - 0x23c]
push eax
call fcn.00417870
lea ecx, [ebp - 0x23c]
call fcn.00408c60
mov ecx, dword [ebp - 0x74]
cmp ecx, 7
jbe 0x4383e7
mov edx, dword [ebp - 0x88]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4383dd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4384e6
push ecx
push edx
call fcn.00443876
add esp, 8
xor eax, eax
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 7
mov word [ebp - 0x88], ax
jmp 0x437bd4
push ecx
push edx
call fcn.00443876
add esp, 8
mov ecx, dword [ebp - 0x20]
cmp ecx, 7
jbe 0x438447
mov edx, dword [ebp - 0x34]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x43843d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4384e6
push ecx
push edx
call fcn.00443876
add esp, 8
xor eax, eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 7
mov word [ebp - 0x34], ax
test esi, esi
je 0x438488
mov ecx, dword [ebp - 0x14]
mov eax, esi
sub ecx, esi
cmp ecx, 0x1000
jb 0x43847e
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4384e6
push ecx
push esi
call fcn.00443876
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004435e2
mov esp, ebp
pop ebp
ret 8
call fcn.004483fa
call fcn.00403570
call fcn.004483fa
call fcn.00403570
call fcn.004483fa
call fcn.004483fa
call fcn.00403570
call fcn.004483fa
call fcn.00403570
call fcn.004483fa
call fcn.004483fa
call fcn.00403570
call fcn.004483fa
call fcn.004483fa
call fcn.004483fa
call fcn.004483fa
call fcn.004483fa
call fcn.004483fa
call fcn.004483fa
call fcn.00403570
call fcn.004483fa
call fcn.004483fa
int3