Function at 0x40f190
Capabilities:
Check if file exists
Create directory
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x518471
mov eax, dword fs:[0]
push eax
sub esp, 0x3cc
mov eax, dword [0x577690]
xor eax, esp
mov dword [esp + 0x3c8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x577690]
xor eax, esp
push eax
lea eax, [esp + 0x3e0]
mov dword fs:[0], eax
mov eax, dword [esp + 0x3f0]
xor ebx, ebx
lea esi, [esp + 0x3c0]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ebx
call fcn.00401d70
mov dword [esp + 0x3e8], 1
mov ebp, 0xf
mov byte [esp + 0x1b], bl
mov dword [esp + 0x234], ebp
mov dword [esp + 0x230], ebx
mov byte [esp + 0x220], bl
mov dword [esp + 0x2f8], ebp
mov dword [esp + 0x2f4], ebx
mov byte [esp + 0x2e4], bl
mov dword [esp + 0x2dc], ebp
mov dword [esp + 0x2d8], ebx
mov byte [esp + 0x2c8], bl
mov dword [esp + 0x288], ebp
mov dword [esp + 0x284], ebx
mov byte [esp + 0x274], bl
mov dword [esp + 0x2c0], ebp
mov dword [esp + 0x2bc], ebx
mov byte [esp + 0x2ac], bl
lea ecx, [esp + 0xcc]
push ecx
mov byte [esp + 0x3ec], 6
call fcn.00412b90
push str..iritech
push ecx
push 0x5618a8
push ecx
mov edx, esi
push edx
lea eax, [esp + 0xe8]
push eax
mov byte [esp + 0x400], 7
call fcn.004139b0
add esp, 0xc
push eax
call fcn.00404570
add esp, 0xc
push eax
call fcn.00404570
add esp, 8
lea ecx, [esp + 0x200]
lea eax, [esp + 0xcc]
call fcn.00412cc0
push str.serial.txt
push ecx
lea ecx, [esp + 0xdc]
push 0x5618a8
push ecx
mov byte [esp + 0x3f8], 8
call fcn.00404570
add esp, 0xc
push eax
call fcn.00404570
add esp, 8
lea ecx, [esp + 0x1e4]
lea eax, [esp + 0xcc]
call fcn.00412cc0
mov byte [esp + 0x3e8], 9
push ebx
push 0x5616e2
lea ecx, [esp + 0x2c]
mov dword [esp + 0x44], ebp
mov dword [esp + 0x40], ebx
mov byte [esp + 0x30], bl
call fcn.00403d20
mov byte [esp + 0x3e8], 0xa
lea esi, [esp + 0xd8]
call fcn.004137b0
mov ecx, dword [esp + 0x28]
mov esi, 0x10
cmp dword [esp + 0x3c], esi
jae 0x40f34f
lea ecx, [esp + 0x28]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x114], ebx
cmp eax, ebx
je 0x40f379
push ecx
mov ebx, eax
lea esi, [esp + 0xdc]
call fcn.00413810
mov ebp, 0xf
xor ebx, ebx
mov esi, 0x10
mov byte [esp + 0x3e8], 9
cmp dword [esp + 0x3c], esi
jb 0x40f394
mov edx, dword [esp + 0x28]
push edx
call fcn.004f9a4f
add esp, 4
push str..lock
push ecx
push 0x5618a8
push ecx
push str..iritech
push ecx
push 0x5618a8
push ecx
lea eax, [esp + 0x3e0]
push eax
lea ecx, [esp + 0xf8]
push ecx
call fcn.004139b0
add esp, 0xc
push eax
call fcn.00404570
add esp, 0xc
push eax
call fcn.00404570
add esp, 0xc
push eax
call fcn.00404570
add esp, 0xc
push eax
call fcn.00404570
add esp, 8
lea ecx, [esp + 0x28c]
lea eax, [esp + 0xcc]
call fcn.00412cc0
lea ecx, [esp + 0x1e4]
mov byte [esp + 0x3e8], 0xb
call fcn.0040d8c0
test al, al
jne 0x40f43c
lea edx, [esp + 0x238]
push edx
call fcn.00411190
add esp, 4
cmp dword [esp + 0x250], esi
jb 0x40f43c
mov eax, dword [esp + 0x23c]
push eax
call fcn.004f9a4f
add esp, 4
mov eax, dword [esp + 0x1e8]
cmp dword [esp + 0x1fc], esi
jae 0x40f453
lea eax, [esp + 0x1e8]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
push eax
call edi
test eax, eax
je 0x40f59a
mov eax, dword [esp + 0x1e8]
cmp dword [esp + 0x1fc], esi
jae 0x40f47b
lea eax, [esp + 0x1e8]
push eax
lea ecx, [esp + 0x158]
push ecx
call fcn.004128e0
mov byte [esp + 0x3e8], 0xc
mov edx, dword [esp + 0x154]
mov eax, dword [edx + 4]
push 0xa
lea ecx, [esp + eax + 0x158]
push ecx
call fcn.00404300
movzx edx, al
push edx
lea eax, [esp + 0x158]
push eax
lea ecx, [esp + 0x224]
call fcn.00413c30
mov ecx, dword [esp + 0x15c]
mov edx, dword [ecx + 4]
add esp, 8
push 0xa
lea eax, [esp + edx + 0x158]
push eax
call fcn.00404300
movzx ecx, al
push ecx
lea edx, [esp + 0x158]
push edx
lea ecx, [esp + 0x2cc]
call fcn.00413c30
mov eax, dword [esp + 0x15c]
mov ecx, dword [eax + 4]
add esp, 8
push 0xa
lea edx, [esp + ecx + 0x158]
push edx
call fcn.00404300
movzx eax, al
push eax
lea ecx, [esp + 0x158]
push ecx
lea ecx, [esp + 0x278]
call fcn.00413c30
mov edx, dword [esp + 0x15c]
mov eax, dword [edx + 4]
add esp, 8
push 0xa
lea ecx, [esp + eax + 0x158]
push ecx
call fcn.00404300
movzx edx, al
push edx
lea eax, [esp + 0x158]
push eax
lea ecx, [esp + 0x2b0]
call fcn.00413c30
add esp, 8
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x1b], 1
mov byte [esp + 0x3e8], 0xb
call fcn.00412a00
lea ecx, [esp + 0x1ac]
push ecx
mov dword [esp + method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.004f856e
add esp, 4
jmp 0x40faf3
mov eax, dword [esp + 0x204]
cmp dword [esp + 0x218], esi
jae 0x40f5b1
lea eax, [esp + 0x204]
push eax
call edi
test eax, eax
jne 0x40f7ea
mov eax, dword [esp + 0x204]
cmp dword [esp + 0x218], esi
jae 0x40f5d3
lea eax, [esp + 0x204]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
neg eax
sbb eax, eax
inc eax
cmp eax, ebx
je 0x40f7ca
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x40f7ca
mov edi, dword [esp + 0x1c]
push 0x5616e2
mov ecx, edi
call fcn.00402110
mov dword [esp + 0x20], 1
cmp dword [esp + 0x2a4], esi
jb 0x40f62a
mov edx, dword [esp + 0x290]
push edx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x2a4], ebp
mov dword [esp + 0x2a0], ebx
mov byte [esp + 0x290], bl
cmp dword [esp + 0x1fc], esi
jb 0x40f658
mov eax, dword [esp + 0x1e8]
push eax
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x1fc], ebp
mov dword [esp + 0x1f8], ebx
mov byte [esp + 0x1e8], bl
cmp dword [esp + 0x218], esi
jb 0x40f686
mov ecx, dword [esp + 0x204]
push ecx
call fcn.004f9a4f
add esp, 4
lea ecx, [esp + 0x120]
mov dword [esp + 0x218], ebp
mov dword [esp + 0x214], ebx
mov byte [esp + 0x204], bl
mov byte [esp + 0x3e8], 6
call fcn.00412c30
lea edx, [esp + 0x120]
push edx
mov dword [esp + method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.004f856e
add esp, 4
cmp dword [esp + 0x2c0], esi
jb 0x40f6e3
mov eax, dword [esp + 0x2ac]
push eax
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x2c0], ebp
mov dword [esp + 0x2bc], ebx
mov byte [esp + 0x2ac], bl
cmp dword [esp + 0x288], esi
jb 0x40f711
mov ecx, dword [esp + 0x274]
push ecx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x288], ebp
mov dword [esp + 0x284], ebx
mov byte [esp + 0x274], bl
cmp dword [esp + 0x2dc], esi
jb 0x40f73f
mov edx, dword [esp + 0x2c8]
push edx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x2dc], ebp
mov dword [esp + 0x2d8], ebx
mov byte [esp + 0x2c8], bl
cmp dword [esp + 0x2f8], esi
jb 0x40f76d
mov eax, dword [esp + 0x2e4]
push eax
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x2f8], ebp
mov dword [esp + 0x2f4], ebx
mov byte [esp + 0x2e4], bl
cmp dword [esp + 0x234], esi
jb 0x40f79b
mov ecx, dword [esp + 0x220]
push ecx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x234], ebp
mov dword [esp + 0x230], ebx
mov byte [esp + 0x220], bl
cmp dword [esp + 0x3d8], esi
jb 0x4105ee
mov edx, dword [esp + 0x3c4]
push edx
jmp 0x4105e6
mov eax, dword [esp + 0x204]
cmp dword [esp + 0x218], esi
jae 0x40f7e1
lea eax, [esp + 0x204]
push eax
call fcn.0040b390
add esp, 4
mov eax, dword [esp + 0x1e8]
cmp dword [esp + 0x1fc], esi
jae 0x40f801
lea eax, [esp + 0x1e8]
push eax
call edi
test eax, eax
jne 0x40fad7
push ebx
push 0x5616e2
lea ecx, [esp + 0x240]
mov dword [esp + 0x258], ebp
mov dword [esp + 0x254], ebx
mov byte [esp + 0x244], bl
call fcn.00403d20
mov byte [esp + 0x3e8], 0xd
push ebx
push 0x5616e2
lea ecx, [esp + 0x320]
mov dword [esp + 0x338], ebp
mov dword [esp + 0x334], ebx
mov byte [esp + 0x324], bl
call fcn.00403d20
mov byte [esp + 0x3e8], 0xe
push ebx
push 0x5616e2
lea ecx, [esp + 0x64]
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x78], ebx
mov byte [esp + 0x68], bl
call fcn.00403d20
mov byte [esp + 0x3e8], 0xf
push ebx
push 0x5616e2
lea ecx, [esp + 0xb8]
mov dword [esp + 0xd0], ebp
mov dword [esp + 0xcc], ebx
mov byte [esp + 0xbc], bl
call fcn.00403d20
mov byte [esp + 0x3e8], 0x10
push ebx
push 0x5616e2
lea ecx, [esp + 0x80]
mov dword [esp + 0x98], ebp
mov dword [esp + 0x94], ebx
mov byte [esp + 0x84], bl
call fcn.00403d20
mov byte [esp + 0x3e8], 0x11
push ebx
push 0x5616e2
lea ecx, [esp + 0x48]
mov dword [esp + 0x60], ebp
mov dword [esp + 0x5c], ebx
mov byte [esp + 0x4c], bl
call fcn.00403d20
mov byte [esp + 0x3e8], 0x12
push 5
push 0x561898
lea ecx, [esp + 0x9c]
mov dword [esp + 0xb4], ebp
mov dword [esp + 0xb0], ebx
mov byte [esp + 0xa0], bl
call fcn.00403d20
mov byte [esp + 0x3e8], 0x13
push 0x20
push str.dc2775d0cc411782aec12593cf524961
lea ecx, [esp + 0x2c]
mov dword [esp + 0x44], ebp
mov dword [esp + 0x40], ebx
mov byte [esp + 0x30], bl
call fcn.00403d20
lea eax, [esp + 0x238]
push eax
lea ecx, [esp + 0x31c]
push ecx
lea edx, [esp + 0x64]
push edx
lea eax, [esp + 0x4c]
mov byte [esp + 0x3f4], 0x14
push eax
lea ecx, [esp + 0xa4]
push ecx
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x1fc]
push eax
lea edx, [esp + 0xcc]
lea ecx, [esp + 0x94]
call fcn.0040d0e0
add esp, 0x1c
cmp dword [esp + 0x3c], esi
jb 0x40f9ba
mov ecx, dword [esp + 0x28]
push ecx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
cmp dword [esp + 0xac], esi
jb 0x40f9df
mov edx, dword [esp + 0x98]
push edx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0xac], ebp
mov dword [esp + 0xa8], ebx
mov byte [esp + 0x98], bl
cmp dword [esp + 0x58], esi
jb 0x40fa07
mov eax, dword [esp + 0x44]
push eax
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x58], ebp
mov dword [esp + 0x54], ebx
mov byte [esp + 0x44], bl
cmp dword [esp + 0x90], esi
jb 0x40fa29
mov ecx, dword [esp + 0x7c]
push ecx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x90], ebp
mov dword [esp + 0x8c], ebx
mov byte [esp + 0x7c], bl
cmp dword [esp + 0xc8], esi
jb 0x40fa54
mov edx, dword [esp + 0xb4]
push edx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0xc8], ebp
mov dword [esp + 0xc4], ebx
mov byte [esp + 0xb4], bl
cmp dword [esp + 0x74], esi
jb 0x40fa7c
mov eax, dword [esp + 0x60]
push eax
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x74], ebp
mov dword [esp + 0x70], ebx
mov byte [esp + 0x60], bl
cmp dword [esp + 0x330], esi
jb 0x40faa1
mov ecx, dword [esp + 0x31c]
push ecx
call fcn.004f9a4f
add esp, 4
mov byte [esp + 0x3e8], 0xb
mov dword [esp + 0x330], ebp
mov dword [esp + 0x32c], ebx
mov byte [esp + 0x31c], bl
cmp dword [esp + 0x250], esi
jb 0x40fad7
mov edx, dword [esp + 0x23c]
push edx
call fcn.004f9a4f
add esp, 4
mov edi, dword [esp + 0x290]
cmp dword [esp + 0x2a4], esi
jae 0x40faee
lea edi, [esp + 0x290]
call fcn.0040f080
lea edi, [esp + 0x350]
call fcn.0040ee30
lea eax, [esp + 0x254]
push eax
mov ecx, edi
mov byte [esp + 0x3ec], 0x15
call fcn.0040cd20
add esp, 4
push 0xffffffffffffffff
push ebx
mov ecx, edi
mov byte [esp + 0x3f0], 0x16
push ecx
lea ecx, [esp + 0x308]
mov dword [esp + 0x320], ebp
mov dword [esp + 0x31c], ebx
mov byte [esp + 0x30c], bl
call fcn.004032e0
lea edx, [esp + 0x36c]
push edx
mov byte [esp + 0x3ec], 0x17
call fcn.0040e660
add esp, 4
lea eax, [esp + 0x3a4]
push eax
mov byte [esp + 0x3ec], 0x18
call fcn.0040e830
add esp, 4
lea ecx, [esp + 0x334]
push ecx
mov byte [esp + 0x3ec], 0x19
call fcn.0040ec70
add esp, 4
lea edx, [esp + 0x388]
push edx
mov byte [esp + 0x3ec], 0x1a
call fcn.0040ea50
add esp, 4
mov byte [esp + 0x3e8], 0x1b
cmp byte [esp + 0x1b], bl
je 0x4101fe
mov ecx, dword [esp + 0x258]
cmp dword [esp + 0x26c], esi
jae 0x40fbd1
lea ecx, [esp + 0x258]
mov edi, dword [esp + 0x230]
mov eax, dword [esp + 0x268]
cmp edi, eax
jae 0x40fbe5
mov eax, edi
mov edx, dword [esp + 0x220]
cmp dword [esp + 0x234], esi
jae 0x40fbfc
lea edx, [esp + 0x220]
call fcn.004052a0
cmp eax, ebx
jne 0x40ff42
mov eax, dword [esp + 0x268]
cmp edi, eax
jb 0x40ff42
xor ecx, ecx
cmp edi, eax
setne cl
mov eax, ecx
cmp eax, ebx
jne 0x40ff42
mov edi, dword [esp + 0x1c]
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x25c]
mov dword [edi + 0x18], ebp
mov dword [edi + 0x14], ebx
push edx
mov ecx, edi
mov byte [edi + 4], bl
call fcn.004032e0
mov dword [esp + 0x20], 1
cmp dword [esp + 0x3a0], esi
jb 0x40fc69
mov eax, dword [esp + 0x38c]
push eax
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x3a0], ebp
mov dword [esp + 0x39c], ebx
mov byte [esp + 0x38c], bl
cmp dword [esp + 0x34c], esi
jb 0x40fc97
mov ecx, dword [esp + 0x338]
push ecx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x34c], ebp
mov dword [esp + 0x348], ebx
mov byte [esp + 0x338], bl
cmp dword [esp + 0x3bc], esi
jb 0x40fcc5
mov edx, dword [esp + 0x3a8]
push edx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x3bc], ebp
mov dword [esp + 0x3b8], ebx
mov byte [esp + 0x3a8], bl
cmp dword [esp + 0x384], esi
jb 0x40fcf3
mov eax, dword [esp + 0x370]
push eax
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x384], ebp
mov dword [esp + 0x380], ebx
mov byte [esp + 0x370], bl
cmp dword [esp + 0x314], esi
jb 0x40fd21
mov ecx, dword [esp + 0x300]
push ecx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x314], ebp
mov dword [esp + 0x310], ebx
mov byte [esp + 0x300], bl
cmp dword [esp + 0x26c], esi
jb 0x40fd4f
mov edx, dword [esp + 0x258]
push edx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x26c], ebp
mov dword [esp + 0x268], ebx
mov byte [esp + 0x258], bl
cmp dword [esp + 0x368], esi
jb 0x40fd7d
mov eax, dword [esp + 0x354]
push eax
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x368], ebp
mov dword [esp + 0x364], ebx
mov byte [esp + 0x354], bl
cmp dword [esp + 0x2a4], esi
jb 0x40fdab
mov ecx, dword [esp + 0x290]
push ecx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x2a4], ebp
mov dword [esp + 0x2a0], ebx
mov byte [esp + 0x290], bl
cmp dword [esp + 0x1fc], esi
jb 0x40fdd9
mov edx, dword [esp + 0x1e8]
push edx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x1fc], ebp
mov dword [esp + 0x1f8], ebx
mov byte [esp + 0x1e8], bl
cmp dword [esp + 0x218], esi
jb 0x40fe07
mov eax, dword [esp + 0x204]
push eax
call fcn.004f9a4f
add esp, 4
lea ecx, [esp + 0x120]
mov dword [esp + 0x218], ebp
mov dword [esp + 0x214], ebx
mov byte [esp + 0x204], bl
mov byte [esp + 0x3e8], 6
call fcn.00412c30
lea ecx, [esp + 0x120]
push ecx
mov dword [esp + method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.004f856e
add esp, 4
cmp dword [esp + 0x2c0], esi
jb 0x40fe64
mov edx, dword [esp + 0x2ac]
push edx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x2c0], ebp
mov dword [esp + 0x2bc], ebx
mov byte [esp + 0x2ac], bl
cmp dword [esp + 0x288], esi
jb 0x40fe92
mov eax, dword [esp + 0x274]
push eax
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x288], ebp
mov dword [esp + 0x284], ebx
mov byte [esp + 0x274], bl
cmp dword [esp + 0x2dc], esi
jb 0x40fec0
mov ecx, dword [esp + 0x2c8]
push ecx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x2dc], ebp
mov dword [esp + 0x2d8], ebx
mov byte [esp + 0x2c8], bl
cmp dword [esp + 0x2f8], esi
jb 0x40feee
mov edx, dword [esp + 0x2e4]
push edx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x2f8], ebp
mov dword [esp + 0x2f4], ebx
mov byte [esp + 0x2e4], bl
cmp dword [esp + 0x234], esi
jb 0x40ff1c
mov eax, dword [esp + 0x220]
push eax
call fcn.004f9a4f
add esp, 4
lea ecx, [esp + 0x3c0]
mov dword [esp + 0x234], ebp
mov dword [esp + 0x230], ebx
mov byte [esp + 0x220], bl
call fcn.00402180
jmp 0x4105ee
cmp byte [esp + 0x3f4], bl
je 0x4100ea
call fcn.00410620
lea ecx, [esp + 0x238]
test al, al
je 0x410076
push ecx
call fcn.00411190
add esp, 4
mov byte [esp + 0x3e8], 0x1c
mov esi, dword [esp + 0x1c]
lea edx, [esp + 0x238]
push edx
mov ecx, esi
call fcn.00402150
lea ecx, [esp + 0x238]
mov dword [esp + 0x20], 1
call fcn.00402180
lea ecx, [esp + 0x388]
call fcn.00402180
lea ecx, [esp + 0x334]
call fcn.00402180
lea ecx, [esp + 0x3a4]
call fcn.00402180
lea ecx, [esp + 0x36c]
call fcn.00402180
lea ecx, [esp + 0x2fc]
call fcn.00402180
lea ecx, [esp + 0x254]
call fcn.00402180
lea ecx, [esp + 0x350]
call fcn.00402180
lea ecx, [esp + 0x28c]
call fcn.00402180
lea ecx, [esp + 0x1e4]
call fcn.00402180
lea ecx, [esp + 0x200]
call fcn.00402180
lea eax, [esp + 0xcc]
mov byte [esp + 0x3e8], 6
call fcn.0040d8a0
lea ecx, [esp + 0x2a8]
call fcn.00402180
lea ecx, [esp + 0x270]
call fcn.00402180
lea ecx, [esp + 0x2c4]
call fcn.00402180
lea ecx, [esp + 0x2e0]
call fcn.00402180
lea ecx, [esp + 0x21c]
call fcn.00402180
lea ecx, [esp + 0x3c0]
call fcn.00402180
mov eax, esi
jmp 0x4105f0
push str.true
call fcn.00402110
lea eax, [esp + 0x254]
push eax
lea ecx, [esp + 0x38c]
push ecx
lea edx, [esp + 0x33c]
push edx
lea eax, [esp + 0x308]
push eax
lea ecx, [esp + 0x248]
push ecx
lea edx, [esp + 0x230]
push edx
lea eax, [esp + 0x1fc]
push eax
lea edx, [esp + 0x3c0]
lea ecx, [esp + 0x388]
mov byte [esp + 0x404], 0x1d
call fcn.0040d0e0
add esp, 0x1c
lea ecx, [esp + 0x238]
mov byte [esp + 0x3e8], 0x1b
call fcn.00402180
lea ecx, [esp + 0x21c]
push ecx
mov edi, 0x568838
lea esi, [esp + 0x23c]
call fcn.00405f80
add esp, 4
lea edx, [esp + 0x254]
push edx
push eax
lea edi, [esp + 0x320]
mov byte [esp + 0x3f0], 0x1e
call fcn.00405100
add esp, 8
mov ecx, esi
mov byte [esp + 0x3e8], 0x20
call fcn.00402180
mov esi, dword [esp + 0x1c]
mov eax, edi
push eax
mov ecx, esi
call fcn.00402150
mov ecx, edi
mov dword [esp + 0x20], 1
call fcn.00402180
lea ecx, [esp + 0x388]
call fcn.00402180
lea ecx, [esp + 0x334]
call fcn.00402180
lea ecx, [esp + 0x3a4]
call fcn.00402180
lea ecx, [esp + 0x36c]
call fcn.00402180
lea ecx, [esp + 0x2fc]
call fcn.00402180
lea ecx, [esp + 0x254]
call fcn.00402180
lea ecx, [esp + 0x350]
call fcn.00402180
lea ecx, [esp + 0x28c]
call fcn.00402180
lea ecx, [esp + 0x1e4]
call fcn.00402180
lea ecx, [esp + 0x200]
call fcn.00402180
lea ecx, [esp + 0x120]
mov byte [esp + 0x3e8], 6
call fcn.00412c30
lea ecx, [esp + 0x120]
push ecx
mov dword [esp + method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.004f856e
add esp, 4
jmp 0x410027
push 0x5616e2
lea ecx, [esp + 0x31c]
call fcn.00402110
push 0x561898
lea ecx, [esp + 0x23c]
mov byte [esp + 0x3ec], 0x21
call fcn.00402110
lea edx, [esp + 0x318]
push edx
lea eax, [esp + 0x38c]
push eax
lea ecx, [esp + 0x33c]
push ecx
lea edx, [esp + 0x308]
push edx
lea eax, [esp + 0x248]
push eax
lea ecx, [esp + 0x268]
push ecx
lea edx, [esp + 0x1fc]
push edx
lea edx, [esp + 0x3c0]
lea ecx, [esp + 0x388]
mov byte [esp + 0x404], 0x22
call fcn.0040d0e0
add esp, 0x1c
cmp dword [esp + 0x250], esi
jb 0x410297
mov eax, dword [esp + 0x23c]
push eax
call fcn.004f9a4f
add esp, 4
mov byte [esp + 0x3e8], 0x1b
mov dword [esp + 0x250], ebp
mov dword [esp + 0x24c], ebx
mov byte [esp + 0x23c], bl
cmp dword [esp + 0x330], esi
jb 0x4102cd
mov ecx, dword [esp + 0x31c]
push ecx
call fcn.004f9a4f
add esp, 4
mov edi, dword [esp + 0x1c]
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x25c]
mov dword [edi + 0x18], ebp
mov dword [edi + 0x14], ebx
push edx
mov ecx, edi
mov byte [edi + 4], bl
call fcn.004032e0
mov dword [esp + 0x20], 1
cmp dword [esp + 0x3a0], esi
jb 0x41030d
mov eax, dword [esp + 0x38c]
push eax
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x3a0], ebp
mov dword [esp + 0x39c], ebx
mov byte [esp + 0x38c], bl
cmp dword [esp + 0x34c], esi
jb 0x41033b
mov ecx, dword [esp + 0x338]
push ecx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x34c], ebp
mov dword [esp + 0x348], ebx
mov byte [esp + 0x338], bl
cmp dword [esp + 0x3bc], esi
jb 0x410369
mov edx, dword [esp + 0x3a8]
push edx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x3bc], ebp
mov dword [esp + 0x3b8], ebx
mov byte [esp + 0x3a8], bl
cmp dword [esp + 0x384], esi
jb 0x410397
mov eax, dword [esp + 0x370]
push eax
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x384], ebp
mov dword [esp + 0x380], ebx
mov byte [esp + 0x370], bl
cmp dword [esp + 0x314], esi
jb 0x4103c5
mov ecx, dword [esp + 0x300]
push ecx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x314], ebp
mov dword [esp + 0x310], ebx
mov byte [esp + 0x300], bl
cmp dword [esp + 0x26c], esi
jb 0x4103f3
mov edx, dword [esp + 0x258]
push edx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x26c], ebp
mov dword [esp + 0x268], ebx
mov byte [esp + 0x258], bl
cmp dword [esp + 0x368], esi
jb 0x410421
mov eax, dword [esp + 0x354]
push eax
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x368], ebp
mov dword [esp + 0x364], ebx
mov byte [esp + 0x354], bl
cmp dword [esp + 0x2a4], esi
jb 0x41044f
mov ecx, dword [esp + 0x290]
push ecx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x2a4], ebp
mov dword [esp + 0x2a0], ebx
mov byte [esp + 0x290], bl
cmp dword [esp + 0x1fc], esi
jb 0x41047d
mov edx, dword [esp + 0x1e8]
push edx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x1fc], ebp
mov dword [esp + 0x1f8], ebx
mov byte [esp + 0x1e8], bl
cmp dword [esp + 0x218], esi
jb 0x4104ab
mov eax, dword [esp + 0x204]
push eax
call fcn.004f9a4f
add esp, 4
lea ecx, [esp + 0x120]
mov dword [esp + 0x218], ebp
mov dword [esp + 0x214], ebx
mov byte [esp + 0x204], bl
mov byte [esp + 0x3e8], 6
call fcn.00412c30
lea ecx, [esp + 0x120]
push ecx
mov dword [esp + method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.004f856e
add esp, 4
cmp dword [esp + 0x2c0], esi
jb 0x410508
mov edx, dword [esp + 0x2ac]
push edx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x2c0], ebp
mov dword [esp + 0x2bc], ebx
mov byte [esp + 0x2ac], bl
cmp dword [esp + 0x288], esi
jb 0x410536
mov eax, dword [esp + 0x274]
push eax
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x288], ebp
mov dword [esp + 0x284], ebx
mov byte [esp + 0x274], bl
cmp dword [esp + 0x2dc], esi
jb 0x410564
mov ecx, dword [esp + 0x2c8]
push ecx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x2dc], ebp
mov dword [esp + 0x2d8], ebx
mov byte [esp + 0x2c8], bl
cmp dword [esp + 0x2f8], esi
jb 0x410592
mov edx, dword [esp + 0x2e4]
push edx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x2f8], ebp
mov dword [esp + 0x2f4], ebx
mov byte [esp + 0x2e4], bl
cmp dword [esp + 0x234], esi
jb 0x4105c0
mov eax, dword [esp + 0x220]
push eax
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x234], ebp
mov dword [esp + 0x230], ebx
mov byte [esp + 0x220], bl
cmp dword [esp + 0x3d8], esi
jb 0x4105ee
mov ecx, dword [esp + 0x3c4]
push ecx
call fcn.004f9a4f
add esp, 4
mov eax, edi
mov ecx, dword [esp + 0x3e0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x3c8]
xor ecx, esp
call fcn.004f8e7f
add esp, 0x3d8
ret