Function at 0x415a20
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x499476
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x9b8
push ebx
mov ebx, ecx
mov eax, dword [ebx + 0x27639c]
push esi
xor esi, esi
cmp eax, esi
push edi
mov dword [esp + 0xc], ebx
jne 0x417264
mov eax, dword [ebx + 0x230140]
cmp eax, 1
jne 0x415a6b
push esi
call fcn.00412fc0
cmp dword [ebx + 0x230144], 1
jne 0x415a8b
mov eax, dword [0x4b4248]
mov dword [ebx + 0x230144], esi
mov eax, dword [eax + 0xb10]
mov dword [eax + 0x664], esi
push str.option.dat
mov ecx, ebx
call fcn.004109c0
mov ecx, dword [0x4b4248]
push 0x104
lea eax, [esp + 0x4ec]
push eax
call fcn.00402f50
lea edi, [esp + 0x4e8]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x415ab7
mov ecx, dword [str.save_]
mov dx, word [0x49c1bc]
mov eax, dword [ebp + 8]
mov dword [edi], ecx
mov word [edi + 4], dx
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x415ad7
lea edi, [esp + 0x4e8]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x415ae8
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [esp + 0x4e8]
and ecx, 3
push 0x49b380
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.0047736a
mov esi, eax
add esp, 8
test esi, esi
je 0x417264
lea ecx, [esp + 0x358]
call fcn.004609d0
push 0x18
push 1
push 0x60
push 0x80
lea ecx, [esp + 0x368]
mov dword [esp + 0x9dc], 0
call fcn.0045f890
mov ecx, dword [esp + 0x388]
push esi
push 0x9000
push 1
push ecx
call fcn.00477961
add esp, 0x10
lea ecx, [esp + 0x5f0]
call fcn.00455e30
lea ecx, [esp + 0x5f0]
mov byte [esp + 0x9cc], 1
call fcn.00455d50
push 0x800
push 0x60
push 0x80
lea ecx, [esp + 0x5fc]
call fcn.00451d20
lea edx, [esp + 0x358]
push edx
lea ecx, [esp + 0x5f4]
call fcn.00447b60
lea ecx, [esp + 0x5f0]
call fcn.00455d50
lea ecx, [esp + 0x358]
call fcn.0045cfc0
xor eax, eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
push esi
mov dword [esp + 0xac], eax
push 0x24
mov dword [esp + 0xb4], eax
lea ecx, [esp + 0x9c]
mov dword [esp + 0xb8], eax
push 1
push ecx
mov dword [esp + 0xc4], eax
call fcn.00477961
push esi
push 0x190
lea edx, [esp + 0x848]
xor eax, eax
push 1
mov ecx, 0x64
lea edi, [esp + 0x84c]
push edx
rep stosd dword es:[edi], eax
call fcn.00477961
mov eax, dword [0x4b4248]
mov dword [esp + 0x44], eax
mov eax, dword [eax + 0xb04]
mov dword [esp + 0x3c], eax
xor eax, eax
xor edx, edx
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], edx
lea ecx, [ebx + 0x5628]
mov dword [esp + 0x78], edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x7c], edx
push esi
mov ecx, 0x10
lea edi, [esp + 0x10c]
push 0x20
rep stosd dword es:[edi], eax
lea eax, [esp + 0x6c]
push 1
push eax
mov dword [esp + 0x90], edx
call fcn.00477961
push esi
push 0x40
lea ecx, [esp + 0x120]
push 1
push ecx
call fcn.00477961
add esp, 0x40
push esi
push 4
lea edx, [esp + 0x48]
push 1
push edx
call fcn.00477961
push esi
push 4
lea eax, [esp + 0x4c]
push 1
push eax
call fcn.00477961
push esi
push 4
lea ecx, [esp + 0x60]
push 1
push ecx
call fcn.00477961
push esi
push 4
lea edx, [esp + 0x74]
push 1
push edx
call fcn.00477961
add esp, 0x40
push 0
mov ecx, ebx
call fcn.00415160
lea eax, [esp + 0x44]
push eax
mov ecx, ebx
call fcn.00411950
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
push esi
push 0xe14
mov dword [ebx + 0x7220], ecx
lea ecx, [edi + 0x30]
push 1
push ecx
mov dword [ebx + 0x7624], edx
mov dword [ebx + 0x7628], eax
call fcn.00477961
push esi
push 0x364
lea eax, [edi + 0xe44]
push 1
push eax
mov dword [esp + 0x48], eax
call fcn.00477961
lea eax, [esp + 0x108]
mov edx, eax
add esp, 0x20
sub edi, edx
lea ecx, [edi + 0x1bb4]
lea ebx, [ebx]
mov dl, byte [eax]
mov byte [ecx + eax], dl
inc eax
test dl, dl
jne 0x415d80
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0xc]
push esi
push 0x59c
mov dword [edi + 0x721c], eax
lea eax, [edi + 0x67d0]
push 1
push eax
call fcn.00477961
push esi
push 0x13c
lea ebx, [edi + 0x6d6c]
push 1
push ebx
call fcn.00477961
lea edx, [edi + 0x3d0]
xor eax, eax
mov ecx, 0xc
mov edi, edx
rep stosd dword es:[edi], eax
or eax, 0xffffffff
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0xc], eax
xor ecx, ecx
mov dword [edx + 0x10], ecx
mov dword [edx + 0x14], ecx
mov dword [edx + 0x18], ecx
mov eax, dword [ebx + 0x68]
mov ecx, dword [ebx + 4]
mov dword [edx + 4], ecx
mov dword [edx + 0x10], eax
mov eax, dword [ebx + 0xd0]
mov ecx, dword [ebx + 0x6c]
mov dword [edx + 8], ecx
mov dword [edx + 0x14], eax
mov eax, dword [ebx + 0x138]
mov ecx, dword [ebx + 0xd4]
mov dword [edx + 0xc], ecx
mov dword [edx + 0x18], eax
mov eax, dword [ebx]
mov ebx, dword [esp + 0x2c]
add esp, 0x20
cmp eax, 1
jne 0x415e4e
mov eax, 0x14
mov dword [edx + 0x24], eax
mov dword [edx + 0x28], eax
mov dword [edx + 0x2c], eax
mov eax, 1
mov dword [edx], 0xffffffff
mov dword [edx + 0x20], 0
mov dword [edx + 0x1c], eax
mov edx, ebx
mov dword [edx + 0x6d6c], eax
xor eax, eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
lea eax, [ebx + 0x67d0]
lea edx, [esp + 0x74]
sub edx, eax
jmp 0x415e90
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x415e90
lea ecx, [esp + 0x74]
push ecx
mov ecx, ebx
call fcn.00412c20
xor edi, edi
mov dword [esp + 0x18], edi
lea esp, [esp]
test edi, edi
jl 0x415ec5
cmp edi, 0x578
jge 0x415ec5
lea eax, [ebx + edi + 0x67f0]
jmp 0x415ec7
xor eax, eax
mov edx, dword [eax + 0x24]
mov ecx, dword [eax + 0x20]
push edx
mov edx, dword [esp + 0x1c]
push ecx
push eax
push edx
mov ecx, ebx
call fcn.00412a10
mov edx, dword [esp + 0x18]
inc edx
add edi, 0x8c
cmp edi, 0x578
mov dword [esp + 0x18], edx
jl 0x415eb0
push esi
push 4
lea eax, [ebx + 0x762c]
add eax, 0x4e0
push 1
push eax
call fcn.00477961
add esp, 0x10
mov dword [esp + 0x18], 0
mov edi, dword [esp + 0x18]
cmp edi, 0xffffffff
mov eax, edi
jne 0x415f2e
mov eax, dword [esp + 0xc]
add eax, 0x762c
mov eax, dword [eax + 0x4e0]
test eax, eax
jl 0x415f50
cmp eax, 3
jge 0x415f50
mov ecx, dword [esp + 0xc]
imul eax, eax, 0x532c
add ecx, 0x762c
lea eax, [eax + ecx + 0x4e4]
jmp 0x415f52
xor eax, eax
push esi
push 0x532c
push 1
push eax
lea ebx, [eax + 0x52dc]
call fcn.00477961
mov edx, dword [ebx + 0x4c]
mov ecx, dword [esp + 0x1c]
add esp, 0x10
cmp edi, 0xffffffff
mov eax, edi
jne 0x415f7d
mov eax, dword [ecx + 0x7b0c]
cmp eax, 0xffffffff
jne 0x415f88
mov eax, dword [ecx + 0x7b0c]
test eax, eax
jl 0x415fa6
cmp eax, 3
jge 0x415fa6
imul eax, eax, 0x532c
add ecx, 0x762c
lea eax, [eax + ecx + 0x4e4]
jmp 0x415fa8
xor eax, eax
mov ecx, dword [esp + 0xc]
push edi
mov dword [eax + 0x5328], edx
call fcn.00411750
cmp edi, 0xffffffff
mov eax, edi
jne 0x415fce
mov eax, dword [esp + 0xc]
add eax, 0x762c
mov eax, dword [eax + 0x4e0]
test eax, eax
jl 0x415fee
cmp eax, 3
jge 0x415fee
mov ecx, dword [esp + 0xc]
imul eax, eax, 0x478
lea edx, [eax + ecx + 0x2df0]
mov dword [esp + 0x14], edx
jmp 0x415ff6
mov dword [esp + 0x14], 0
mov eax, ebx
lea edx, [eax + 1]
jmp 0x416000
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416000
sub eax, edx
mov dword [esp + 0x10], eax
je 0x416029
mov ecx, dword [esp + 0x14]
call fcn.00455d50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
push 0
push eax
push ebx
call fcn.00405620
cmp edi, 0xffffffff
mov ecx, dword [esp + 0xc]
mov eax, edi
jne 0x41603a
mov eax, dword [ecx + 0x7b0c]
xor edx, edx
cmp eax, edx
jl 0x41605d
cmp eax, 3
jge 0x41605d
imul eax, eax, 0x478
lea eax, [eax + ecx + 0x2df0]
add eax, 0x23c
mov dword [esp + 0x10], eax
jmp 0x416061
mov dword [esp + 0x10], edx
cmp edi, 0xffffffff
mov eax, edi
jne 0x416074
lea eax, [ecx + 0x762c]
mov eax, dword [eax + 0x4e0]
cmp eax, edx
jl 0x41609a
cmp eax, 3
jge 0x41609a
mov ecx, dword [esp + 0xc]
imul eax, eax, 0x532c
add ecx, 0x762c
lea ecx, [eax + ecx + 0x4e4]
mov dword [esp + 0x14], ecx
jmp 0x41609e
mov dword [esp + 0x14], edx
mov eax, dword [0x4b4248]
mov edi, dword [eax + 0xb04]
xor edx, edx
mov dl, byte [ebx + 0x2a]
xor eax, eax
mov al, byte [ebx + 0x29]
xor ecx, ecx
mov cl, byte [ebx + 0x28]
push edx
push eax
push ecx
mov ecx, edi
call fcn.00423aa0
mov edx, dword [ebx + 0x30]
push edx
mov ecx, edi
call fcn.00423a70
mov eax, dword [ebx + 0x48]
push eax
mov ecx, edi
call fcn.00423a30
push 0x49c19c
mov ecx, edi
call fcn.00424670
mov ecx, dword [ebx + 0x44]
mov edx, dword [ebx + 0x40]
push ecx
push edx
mov ecx, edi
call fcn.00423a80
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x7b0c]
mov ecx, dword [0x4b4248]
add edx, 0x762c
cmp eax, 0xffffffff
jne 0x41610e
test eax, eax
jl 0x416126
cmp eax, 3
jge 0x416126
imul eax, eax, 0x532c
lea edi, [eax + edx + 0x4e4]
jmp 0x416128
xor edi, edi
mov edx, dword [edx + 0x4e0]
test edx, edx
mov eax, dword [ecx + 0xb04]
mov dword [esp + 0x20], eax
jl 0x416154
cmp edx, 3
jge 0x416154
mov ecx, dword [esp + 0xc]
imul edx, edx, 0x478
lea edx, [edx + ecx + 0x2df0]
jmp 0x416156
xor edx, edx
mov ecx, dword [edx + 0x228]
test ecx, ecx
jne 0x416165
mov eax, dword [edx + 0x78]
jmp 0x41616b
mov eax, dword [edx + 0x1c0]
mov ebx, dword [edi + 0x531c]
shl ebx, 1
sub eax, ebx
test ecx, ecx
mov ebx, eax
jne 0x416180
mov eax, dword [edx + 0x7c]
jmp 0x416186
mov eax, dword [edx + 0x1bc]
mov ecx, dword [edi + 0x5320]
mov edx, dword [edi + 0x5328]
sub eax, ecx
mov ecx, dword [esp + 0x20]
push eax
push ebx
push edx
call fcn.00423ac0
mov ebx, dword [esp + 0x14]
add ebx, 0x5290
mov eax, ebx
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4161b0
sub eax, edx
mov dword [esp + 0x20], eax
je 0x416208
mov eax, dword [0x4b4248]
mov edi, dword [esp + 0xc]
mov eax, dword [eax + 0xb04]
push 0
push 0
add edi, 0x1c94
push 0
mov ecx, edi
mov dword [esp + 0x2c], eax
call fcn.00451da0
push 0
mov ecx, edi
call fcn.0045d550
mov ecx, eax
call fcn.00457e60
mov ecx, dword [esp + 0x20]
push 0x1a
push 0
push 0
push edi
push 0x14
push ebx
call fcn.00424240
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
push 1
push 1
push ecx
mov ecx, dword [esp + 0x28]
push edx
call fcn.004254e0
mov eax, dword [esp + 0x18]
inc eax
cmp eax, 3
mov dword [esp + 0x18], eax
jl 0x415f14
mov ebx, dword [esp + 0xc]
push esi
push 0x532c
lea eax, [ebx + 0x17494]
push 1
push eax
call fcn.00477961
lea eax, [ebx + 0x17494]
mov dword [esp + 0x24], eax
mov eax, dword [0x4b4248]
mov edi, dword [eax + 0xb04]
xor ecx, ecx
mov cl, byte [ebx + 0xce16]
xor edx, edx
mov dl, byte [ebx + 0xce15]
xor eax, eax
mov al, byte [ebx + 0xce14]
add esp, 0x10
push ecx
mov ecx, edi
push edx
push eax
call fcn.00423aa0
mov ecx, dword [ebx + 0xce1c]
push ecx
mov ecx, edi
call fcn.00423a70
mov edx, dword [ebx + 0xce34]
push edx
mov ecx, edi
call fcn.00423a30
push 0x49c19c
mov ecx, edi
call fcn.00424670
mov eax, dword [ebx + 0xce30]
mov ecx, dword [ebx + 0xce2c]
push eax
push ecx
mov ecx, edi
call fcn.00423a80
mov eax, dword [ebx + 0x7b0c]
cmp eax, 0xffffffff
mov ecx, dword [0x4b4248]
jne 0x4162d1
test eax, eax
jl 0x4162e9
cmp eax, 3
jge 0x4162e9
imul eax, eax, 0x532c
lea edx, [eax + ebx + 0x7b10]
jmp 0x4162eb
xor edx, edx
mov eax, dword [ecx + 0xb04]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x7b0c]
test eax, eax
jl 0x416313
cmp eax, 3
jge 0x416313
imul eax, eax, 0x478
lea edi, [eax + ebx + 0x2df0]
jmp 0x416315
xor edi, edi
mov ecx, dword [edi + 0x228]
test ecx, ecx
jne 0x416324
mov eax, dword [edi + 0x78]
jmp 0x41632a
mov eax, dword [edi + 0x1c0]
mov ebx, dword [edx + 0x531c]
shl ebx, 1
sub eax, ebx
test ecx, ecx
mov ebx, eax
jne 0x41633f
mov eax, dword [edi + 0x7c]
jmp 0x416345
mov eax, dword [edi + 0x1bc]
mov edi, dword [edx + 0x5320]
mov ecx, dword [edx + 0x5328]
sub eax, edi
push eax
push ebx
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.00423ac0
mov ecx, dword [esp + 0x28]
mov edi, dword [ecx + 8]
lea ebx, [ecx + 8]
mov edx, 1
xor eax, eax
cmp edi, edx
jne 0x416376
mov eax, edx
cmp dword [ecx + 0xb4], edx
jne 0x41637f
inc eax
cmp dword [ecx + 0x160], edx
jne 0x416388
inc eax
cmp dword [ecx + 0x20c], edx
jne 0x416391
inc eax
cmp dword [ecx + 0x2b8], edx
jne 0x41639a
inc eax
test eax, eax
jle 0x416536
mov edi, dword [esp + 0xc]
add edi, 0x2584
mov ecx, edi
call fcn.00455d50
mov ecx, edi
call fcn.00446e70
mov ecx, edi
call fcn.00446e70
test eax, eax
je 0x4163cc
mov ecx, edi
call fcn.00455d50
push 0x800
push 0x300
push 0x400
mov ecx, edi
call fcn.00451d20
push 0
push 0
push 0
push 0x300
push 0x400
push 0
push 0
mov ecx, edi
call fcn.00447820
lea edx, [esp + 0x64]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x18], 0
lea esp, [esp]
cmp dword [edx], 1
jne 0x41651a
xor eax, eax
mov ecx, 0x41
lea edi, [esp + 0x128]
rep stosd dword es:[edi], eax
lea eax, [ebx + 0x28]
lea edi, [esp + 0x128]
mov dword [esp + 0x64], 0x8e
mov dword [esp + 0x68], 0xd2
mov dword [esp + 0x6c], 0x116
mov dword [esp + 0x70], 0x15a
sub edi, eax
mov cl, byte [eax]
mov byte [edi + eax], cl
inc eax
test cl, cl
jne 0x416465
lea eax, [edx + 0xc]
mov dword [esp + 0x1c], eax
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416480
sub eax, edx
shr eax, 1
lea eax, [eax + eax*2]
shl eax, 3
mov ecx, eax
mov eax, 0x400
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
test eax, eax
jge 0x4164a5
xor eax, eax
mov edx, dword [esp + 0x20]
mov ecx, dword [edx]
mov edx, dword [esp + 0x1c]
add ecx, 2
push ecx
push eax
mov eax, dword [esp + 0x14]
add eax, 0x2584
push eax
push 0x16
push edx
mov ecx, ebx
call fcn.004241f0
lea eax, [esp + 0x128]
push eax
mov ecx, ebx
call fcn.00423af0
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push 0xffffffffffffffff
push edi
push ecx
mov ecx, ebx
call fcn.00423170
mov edx, dword [esp + 0x14]
push 0xffffffffffffffff
push edi
push edx
mov ecx, ebx
call fcn.004231c0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
push eax
push edi
push ecx
mov ecx, ebx
call fcn.00423210
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
add eax, 4
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
inc eax
add edx, 0xac
cmp eax, 5
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], edx
jl 0x416420
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x7b0c]
add eax, 0x762c
test edi, edi
jl 0x41655d
cmp edi, 3
jge 0x41655d
imul edi, edi, 0x532c
lea edi, [edi + eax + 0x4e4]
jmp 0x41655f
xor edi, edi
mov eax, dword [0x4b4248]
mov ebx, dword [eax + 0xb04]
xor edx, edx
mov dl, byte [edi + 0x5306]
xor eax, eax
mov al, byte [edi + 0x5305]
xor ecx, ecx
mov cl, byte [edi + 0x5304]
push edx
push eax
push ecx
mov ecx, ebx
call fcn.00423aa0
mov edx, dword [edi + 0x530c]
push edx
mov ecx, ebx
call fcn.00423a70
mov eax, dword [edi + 0x5324]
push eax
mov ecx, ebx
call fcn.00423a30
push 0x49c19c
mov ecx, ebx
call fcn.00424670
mov ecx, dword [edi + 0x5320]
mov edx, dword [edi + 0x531c]
push ecx
push edx
mov ecx, ebx
call fcn.00423a80
mov eax, dword [esp + 0xc]
mov ecx, dword [0x4b4248]
mov edi, dword [esp + 0xc]
add eax, 0x762c
mov eax, dword [eax + 0x4e0]
cmp eax, 0xffffffff
mov edx, eax
jne 0x4165ef
mov edx, dword [edi + 0x7b0c]
test edx, edx
jl 0x416607
cmp edx, 3
jge 0x416607
imul edx, edx, 0x532c
lea edx, [edx + edi + 0x7b10]
jmp 0x416609
xor edx, edx
mov eax, dword [ecx + 0xb04]
lea ebx, [edi + 0x762c]
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0x4e0]
test eax, eax
jl 0x416637
cmp eax, 3
jge 0x416637
imul eax, eax, 0x478
lea eax, [eax + edi + 0x2df0]
jmp 0x416639
xor eax, eax
mov ecx, dword [eax + 0x228]
test ecx, ecx
mov dword [esp + 0x1c], eax
jne 0x41664c
mov ecx, dword [eax + 0x78]
jmp 0x416652
mov ecx, dword [eax + 0x1c0]
mov eax, dword [edx + 0x531c]
shl eax, 1
sub ecx, eax
mov eax, dword [esp + 0x1c]
cmp dword [eax + 0x228], 0
jne 0x41666e
mov eax, dword [eax + 0x7c]
jmp 0x416674
mov eax, dword [eax + 0x1bc]
sub eax, dword [edx + 0x5320]
push eax
push ecx
mov ecx, dword [edx + 0x5328]
push ecx
mov ecx, dword [esp + 0x34]
call fcn.00423ac0
mov ecx, edi
call fcn.0040f950
mov ecx, edi
call fcn.0040fa10
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0xb0c]
push esi
push 4
push 1
push ebx
mov dword [esp + 0x30], eax
call fcn.00477961
mov ecx, dword [ebx]
add esp, 0x10
push ecx
mov ecx, edi
call fcn.004142e0
cmp dword [ebx], 0
mov dword [esp + 0x18], 0
jle 0x41699d
mov dword [esp + 0x10], 0
lea esp, [esp]
mov eax, dword [esp + 0xc]
add eax, 0x762c
mov eax, dword [eax]
test eax, eax
jle 0x41670a
cmp dword [esp + 0x18], eax
jge 0x41670a
mov eax, dword [esp + 0xc]
mov ebx, dword [eax + 0x7638]
add eax, 0x762c
add ebx, dword [esp + 0x10]
jmp 0x41670c
xor ebx, ebx
mov ecx, dword [ebx + 0x28]
mov dword [esp + 0x14], ecx
call fcn.0042b9c0
push esi
xor eax, eax
push 0x104
mov ecx, 0x41
lea edi, [esp + 0x130]
rep stosd dword es:[edi], eax
lea edx, [esp + 0x130]
push 1
mov ecx, 0x41
lea edi, [esp + 0x23c]
push edx
mov dword [esp + 0x2c], 0
rep stosd dword es:[edi], eax
call fcn.00477961
push esi
push 0x104
lea eax, [esp + 0x248]
push 1
push eax
call fcn.00477961
push esi
push 4
lea ecx, [esp + 0x44]
push 1
push ecx
call fcn.00477961
lea eax, [esp + 0x158]
add esp, 0x30
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416784
sub eax, edx
mov dword [esp + 0x28], eax
je 0x4167f3
mov ecx, dword [esp + 0x24]
push 0x49c30c
lea edx, [esp + 0x12c]
push edx
call fcn.00401aa0
cmp eax, 1
jne 0x4167e1
mov edi, dword [esp + 0x20]
lea eax, [esp + 0x128]
push eax
push ebx
mov ecx, edi
call fcn.0042b630
push 1
push ebx
mov ecx, edi
call fcn.0042b2a0
mov eax, dword [esp + 0xc]
add eax, 0x762c
mov dword [eax + 0x4d8], 1
jmp 0x4167f3
lea ecx, [esp + 0x128]
push ecx
mov ecx, dword [esp + 0x24]
push ebx
call fcn.0042b5f0
push esi
push 0x11c
lea eax, [ebx + 0x2c]
push 1
push eax
call fcn.00477961
push esi
push 4
lea edx, [ebx + 8]
push 1
push edx
call fcn.00477961
push esi
push 4
lea eax, [ebx + 4]
push 1
push eax
call fcn.00477961
push esi
push 4
push 1
push ebx
call fcn.00477961
add esp, 0x40
push esi
push 4
lea edi, [ebx + 0x24]
push 1
push edi
call fcn.00477961
push esi
push 8
lea eax, [ebx + 0xc]
push 1
push eax
call fcn.00477961
push esi
push 4
lea ecx, [ebx + 0x20]
push 1
push ecx
call fcn.00477961
push esi
push 0x30
lea eax, [ebx + 0x268]
push 1
push eax
call fcn.00477961
mov eax, dword [edi]
add esp, 0x40
cmp eax, 2
jne 0x416886
mov eax, dword [esp + 0xc]
add eax, 0x762c
mov dword [eax + 0x4d8], 1
mov ecx, dword [esp + 0x14]
call fcn.0042bdc0
push esi
push 0x28
mov edi, eax
push 1
push edi
call fcn.00477961
mov eax, dword [edi]
mov ecx, dword [esp + 0x24]
add esp, 0x10
sub esp, 0x10
cmp eax, 1
jne 0x4168d6
fld qword [edi + 0x20]
fstp qword [esp + 8]
fld qword [edi + 0x18]
fstp qword [esp]
push 1
call fcn.0042c8f0
mov eax, dword [esp + 0xc]
add eax, 0x762c
mov dword [eax + 0x4d8], 1
jmp 0x4168f0
fld qword [0x49b9f0]
fstp qword [esp + 8]
fld qword [0x49b9f0]
fstp qword [esp]
push 0
call fcn.0042c8f0
mov ecx, dword [esp + 0x14]
call fcn.0042bbb0
push esi
push 0x110
mov edi, eax
push 1
push edi
call fcn.00477961
mov eax, dword [edi]
add esp, 0x10
cmp eax, 1
jne 0x41693b
mov edx, dword [edi + 0x10c]
mov eax, dword [edi + 0x108]
push edx
push eax
add edi, 4
push edi
mov edi, dword [esp + 0x2c]
push ebx
mov ecx, edi
call fcn.0042b090
push ebx
mov ecx, edi
call fcn.0042b180
jmp 0x416947
mov edi, dword [esp + 0x20]
push ebx
mov ecx, edi
call fcn.0042b0c0
mov ecx, dword [ebx + 4]
push ecx
push ebx
mov ecx, edi
call fcn.0042b1e0
push 0
lea eax, [ebx + 0x2c]
push eax
push ebx
mov ecx, edi
call fcn.0042b0e0
mov edx, dword [esp + 0x1c]
push edx
push ebx
mov ecx, edi
call fcn.0042b2c0
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov edx, dword [ecx + 0x762c]
add ecx, 0x762c
inc eax
add edi, 0x298
cmp eax, edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], edi
jl 0x4166e0
mov edi, dword [esp + 0xc]
mov ecx, edi
call fcn.00411b40
lea eax, [edi + 0xf2c]
push eax
mov ecx, edi
call fcn.00411810
push esi
push 4
lea ebx, [edi + 0x7630]
push 1
push ebx
call fcn.00477961
mov ecx, dword [ebx]
add esp, 0x10
push ecx
mov ecx, edi
call fcn.00411ca0
cmp dword [ebx], 0
mov dword [esp + 0x18], 0
jle 0x416abf
mov dword [esp + 0x10], 0
lea ecx, [ecx]
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x7630]
test eax, eax
jle 0x416a10
cmp dword [esp + 0x18], eax
jge 0x416a10
mov edi, dword [ecx + 0x763c]
add edi, dword [esp + 0x10]
jmp 0x416a12
xor edi, edi
push esi
push 0x11c
lea edx, [edi + 0x34]
push 1
push edx
call fcn.00477961
push esi
push 4
lea eax, [edi + 8]
push 1
push eax
call fcn.00477961
push esi
push 4
lea eax, [edi + 4]
push 1
push eax
call fcn.00477961
push esi
push 4
push 1
push edi
call fcn.00477961
add esp, 0x40
push esi
push 0x10
lea ebx, [edi + 0xc]
push 1
push ebx
call fcn.00477961
push esi
push 0x10
lea ecx, [edi + 0x1c]
push 1
push ecx
call fcn.00477961
mov edx, dword [edi + 4]
mov ecx, dword [esp + 0x40]
add esp, 0x20
push edx
push edi
call fcn.0042b1e0
mov ecx, dword [esp + 0x20]
push ebx
push edi
call fcn.0042b260
mov ecx, dword [esp + 0x20]
push ebx
push edi
call fcn.0042b260
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov edx, dword [ecx + 0x7630]
add ecx, 0x7630
inc eax
add edi, 0x2b8
cmp eax, edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], edi
jl 0x4169f0
mov edi, dword [esp + 0xc]
push esi
push 4
lea ebx, [edi + 0x7634]
push 1
push ebx
call fcn.00477961
mov eax, dword [ebx]
add esp, 0x10
test eax, eax
mov dword [esp + 0x18], 0
jle 0x416c3a
add edi, 0x230248
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], edi
jmp 0x416b00
mov eax, dword [esp + 0x14]
test eax, eax
jl 0x416b15
cmp eax, 0x4c0
jge 0x416b15
mov ebx, dword [esp + 0x10]
jmp 0x416b17
xor ebx, ebx
test eax, eax
jl 0x416b35
cmp eax, 0x4c0
jge 0x416b35
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
add eax, 0x762c
lea edi, [eax + ecx + 0x18]
jmp 0x416b37
xor edi, edi
push esi
push 0x40
push 1
push edi
call fcn.00477961
add esp, 0x10
mov ecx, ebx
call fcn.004390f0
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416b51
sub eax, edx
mov dword [esp + 0x28], eax
je 0x416bfc
push edi
mov ecx, ebx
call fcn.00439aa0
mov ecx, dword [esp + 0xc]
call fcn.00411f30
mov edx, dword [edi + 0x28]
push edx
mov ecx, ebx
call fcn.00439050
mov eax, dword [edi + 0x2c]
push eax
mov ecx, ebx
call fcn.00439240
mov ecx, dword [edi + 0x38]
push ecx
mov ecx, ebx
call fcn.00439600
mov edx, dword [edi + 0x3c]
push edx
mov ecx, ebx
call fcn.00438fe0
cmp dword [edi + 0x28], 1
jne 0x416bfc
mov eax, dword [edi + 0x34]
test eax, eax
mov ecx, ebx
jbe 0x416bb5
push eax
push 1
jmp 0x416bb9
push 0
push 0
call fcn.00439030
mov ecx, dword [edi + 0x20]
mov eax, 1
cmp ecx, eax
jne 0x416bd6
mov ecx, ebx
call fcn.00439710
mov eax, 1
cmp dword [edi + 0x24], eax
jne 0x416be7
mov ecx, ebx
call fcn.00439130
mov eax, 1
cmp dword [edi + 0x30], eax
jne 0x416bfc
mov dword [ebx + 0x16a0], 0xffffd8f0
mov dword [ebx + 0x1698], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov edx, dword [ecx + 0x7634]
add ecx, 0x7634
inc eax
add ebx, 0x16c0
add edi, 0x40
cmp eax, edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], edi
jl 0x416b00
mov edi, dword [esp + 0xc]
mov ecx, edi
call fcn.00411f30
push esi
push 0x3c
lea eax, [edi + 0x762c]
add eax, 0x151bc
push 1
push eax
call fcn.00477961
mov eax, dword [esp + 0x34]
mov ebx, dword [eax + 0xb00]
push esi
push 4
xor eax, eax
lea ecx, [esp + 0x48]
push 1
push ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x30], eax
call fcn.00477961
push esi
push 4
lea edx, [esp + 0x54]
push 1
push edx
call fcn.00477961
mov eax, dword [esp + 0x60]
mov ecx, dword [ebx + 8]
add esp, 0x30
cmp ecx, eax
jne 0x416ca4
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [esp + 0x2c]
je 0x416cac
mov dword [esp + 0x10], 1
test eax, eax
mov dword [esp + 0x1c], 0
jle 0x416d4c
lea esp, [esp]
push esi
push 0x30
lea edx, [esp + 0xc0]
xor eax, eax
push 1
mov ecx, 0xc
lea edi, [esp + 0xc4]
push edx
rep stosd dword es:[edi], eax
call fcn.00477961
push 2
lea eax, [esp + 0xd0]
push 0x49c26c
push eax
call fcn.004787a9
add esp, 0x1c
test eax, eax
je 0x416d37
mov eax, dword [esp + 0x10]
test eax, eax
push 1
jne 0x416d20
mov ecx, dword [esp + 0xe0]
push ecx
lea edx, [esp + 0xc4]
push edx
mov ecx, ebx
call fcn.00443830
jmp 0x416d37
lea eax, [esp + 0xbc]
push eax
lea ecx, [esp + 0xc4]
push ecx
mov ecx, ebx
call fcn.00443980
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
inc eax
cmp eax, ecx
mov dword [esp + 0x1c], eax
jl 0x416cc0
mov eax, dword [esp + 0x2c]
test eax, eax
mov dword [esp + 0x1c], 0
jle 0x416def
push esi
push 0x124
lea edx, [esp + 0x238]
xor eax, eax
push 1
mov ecx, 0x49
lea edi, [esp + 0x23c]
push edx
rep stosd dword es:[edi], eax
call fcn.00477961
push 2
lea eax, [esp + 0x248]
push 0x49c26c
push eax
call fcn.004787a9
add esp, 0x1c
test eax, eax
je 0x416dda
mov eax, dword [esp + 0x10]
test eax, eax
push 1
jne 0x416dc3
lea ecx, [esp + 0x258]
push ecx
lea edx, [esp + 0x23c]
push edx
mov ecx, ebx
call fcn.00443920
jmp 0x416dda
lea eax, [esp + 0x234]
push eax
lea ecx, [esp + 0x23c]
push ecx
mov ecx, ebx
call fcn.00443a10
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
inc eax
cmp eax, ecx
mov dword [esp + 0x1c], eax
jl 0x416d60
mov edi, dword [esp + 0xc]
push esi
lea ebx, [edi + 0x762c]
push 4
mov dword [esp + 0x18], ebx
add ebx, 0x151b0
push 1
push ebx
call fcn.00477961
mov eax, dword [ebx]
add esp, 0x10
cmp eax, 1
mov eax, dword [0x4b4248]
mov eax, dword [eax + 0xb10]
jne 0x416e30
cmp dword [edi + 0x1c7dc], 1
jne 0x416e3b
push 1
jmp 0x416e32
push 0
mov ecx, eax
push 0
call fcn.00439ef0
mov edi, dword [esp + 0x10]
push esi
push 4
lea eax, [edi + 0x151b4]
push 1
push eax
mov dword [esp + 0x28], eax
call fcn.00477961
push esi
push 0x48
lea ebx, [edi + 0x228ab4]
push 1
push ebx
call fcn.00477961
push esi
push 8
push 1
add edi, 0x228afc
push edi
call fcn.00477961
mov eax, dword [ebx]
mov ecx, dword [esp + 0x54]
add esp, 0x30
cmp eax, 1
jne 0x416f69
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x2301ac]
test eax, eax
mov edi, dword [ecx + 0xb20]
jne 0x416f1b
push edi
call fcn.00458800
mov ecx, eax
call fcn.0045bb80
cmp eax, 1
jne 0x416f1b
push 0
mov ecx, edi
call fcn.0042a770
lea edx, [ebx + 0x28]
mov eax, edx
lea ecx, [eax + 1]
mov dword [edi + 0x688], 1
mov dword [esp + 0x28], ecx
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416ed1
sub eax, dword [esp + 0x28]
mov dword [esp + 0x28], eax
je 0x416eea
mov ecx, edi
push edx
call fcn.0042a730
mov edx, dword [esp + 0xc]
cmp dword [edx + 0x2301ac], 1
jne 0x416efe
mov ecx, edi
call fcn.0042a840
cmp dword [ebx + 4], 1
jne 0x416f0b
mov ecx, edi
call fcn.00429ff0
mov eax, dword [esp + 0xc]
mov dword [eax + 0x2dec], 1
jmp 0x416f76
mov eax, dword [esp + 0xc]
add eax, 0x181c
push eax
push 0
lea ecx, [ebx + 8]
push ecx
mov ecx, edi
mov dword [edi + 0x688], 1
call fcn.0042aad0
cmp al, 1
jne 0x416f49
push 1
mov ecx, edi
call fcn.00429f10
lea edx, [ebx + 0x28]
mov eax, edx
lea ecx, [eax + 1]
mov dword [esp + 0x28], ecx
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416f55
sub eax, dword [esp + 0x28]
mov dword [esp + 0x28], eax
jmp 0x416ee0
mov ecx, dword [ecx + 0xb20]
push 0
call fcn.0042a770
mov ebx, dword [0x4b4248]
push 0x104
lea edx, [esp + 0x12c]
xor eax, eax
mov ecx, 0x41
lea edi, [esp + 0x12c]
push edx
rep stosd dword es:[edi], eax
mov ecx, dword [ebx + 0xb00]
push str.DATE
call fcn.004438d0
mov ecx, dword [ebx + 0xb10]
lea eax, [esp + 0x128]
push eax
mov eax, dword [esp + 0x10]
add eax, 0x5628
mov dword [esp + 0x24], eax
add eax, 0x1bb4
push eax
call fcn.00439e10
mov edi, dword [esp + 0x24]
mov ecx, edi
call fcn.004587f0
mov ecx, eax
call fcn.00458db0
mov ecx, dword [edi + 0xb74]
mov ebx, dword [edi + 0xb70]
mov edi, dword [edi + 0xb78]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xc]
add eax, 0x762c
mov dword [esp + 0x1c], ecx
cmp dword [eax + 0x151bc], 1
mov dword [esp + 0x10], eax
jne 0x41704d
mov edx, dword [eax + 0x151cc]
mov ecx, dword [eax + 0x151c4]
push 0x1e
push edx
mov edx, dword [eax + 0x151c8]
mov eax, dword [eax + 0x151c0]
push ecx
push edx
push eax
mov ecx, ebx
call fcn.0040ac60
mov ecx, dword [esp + 0x14]
push 1
push 1
push 0xa0000000
push ecx
mov ecx, ebx
call fcn.0040ae00
jmp 0x417072
mov ecx, dword [esp + 0x24]
push ebx
call fcn.00458800
mov ecx, eax
call fcn.0045bb80
cmp eax, 1
jne 0x417072
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 0xb70]
call fcn.0040afb0
mov ebx, dword [esp + 0x10]
cmp dword [ebx + 0x151d0], 1
jne 0x4170d2
fld qword [0x49b9f0]
mov eax, dword [ebx + 0x151e0]
mov ecx, dword [ebx + 0x151dc]
mov edx, dword [ebx + 0x151d4]
sub esp, 8
fstp qword [esp]
push 0x14
fild dword [ebx + 0x151d8]
push 0x32
push eax
sub esp, 8
fstp qword [esp]
push ecx
mov ecx, dword [esp + 0x3c]
push edx
call fcn.0040b1c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
push 1
push 1
push 0xa0000000
push eax
call fcn.0040b840
jmp 0x4170fd
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0xb74]
push eax
call fcn.00458800
mov ecx, eax
call fcn.0045bb80
cmp eax, 1
jne 0x4170fd
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx + 0xb74]
call fcn.0040afb0
cmp dword [ebx + 0x151e4], 1
jne 0x417163
fld qword [0x49ba20]
mov edx, dword [ebx + 0x151f4]
mov eax, dword [ebx + 0x151f0]
mov ecx, dword [ebx + 0x151e8]
sub esp, 0x10
fstp qword [esp + 8]
fld qword [0x49b9f0]
fstp qword [esp]
push 0x50
fild dword [ebx + 0x151ec]
push 0x32
push edx
sub esp, 8
fstp qword [esp]
push eax
push ecx
mov ecx, edi
call fcn.00409d40
mov edx, dword [esp + 0x14]
push 1
push 1
push 0xa0000000
push edx
mov ecx, edi
call fcn.0040a610
mov edi, dword [esp + 0x24]
jmp 0x41718c
mov edi, dword [esp + 0x24]
mov eax, dword [edi + 0xb78]
push eax
mov ecx, edi
call fcn.00458800
mov ecx, eax
call fcn.0045bb80
cmp eax, 1
jne 0x41718c
mov ecx, dword [edi + 0xb78]
call fcn.0040afb0
push esi
call fcn.004771ea
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0xe44]
add esp, 4
test ecx, ecx
jne 0x4171c6
mov ecx, dword [eax + 0x1740]
test ecx, ecx
jne 0x4171c6
mov eax, dword [esp + 0x18]
cmp dword [eax], 0
jne 0x4171c6
mov ebx, dword [esp + 0xc]
mov dword [ebx + 0x2de8], 1
jmp 0x4171d4
mov ebx, dword [esp + 0xc]
mov dword [ebx + 0x2de8], 0
mov edx, dword [esp + 0x34]
mov ecx, dword [edi + 0xb14]
push edx
lea eax, [esp + 0x48]
push eax
call fcn.0043b9b0
mov edi, dword [ebp + 8]
mov esi, str.save_sel.sav
mov ecx, 0xd
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x417201
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x417211
push str.save_sel.sav
mov ecx, ebx
call fcn.00410290
lea ecx, [esp + 0x5f0]
mov byte [esp + 0x9cc], 0
call fcn.004555f0
lea ecx, [esp + 0x358]
mov dword [esp + 0x9cc], 0xffffffff
call fcn.00460820
push str.option.dat
mov ecx, ebx
call fcn.00412d40
mov eax, 1
mov ecx, dword [esp + 0x9c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [esp + 0x9c4]
pop edi
pop esi
xor eax, eax
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 4