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

Disassembly:
mov eax, dword [0x4596fc]
sub esp, 0x170
test eax, eax
jne 0x407c4b
push 0x400
mov dword [0x459704], 0x400
call fcn.00445e37
add esp, 4
mov dword [0x4596fc], eax
mov edx, dword [0x459814]
xor ecx, ecx
mov dword [0x459700], ecx
push ebx
mov edx, dword [edx + 0x68]
mov ebx, 1
push ebp
push esi
test byte [edx + 0x18], bl
mov edx, dword [0x459704]
push edi
mov ebp, 0x40
je 0x407cc1
cmp edx, ebp
jae 0x407cab
push ebp
push eax
call fcn.004460cb
add esp, 8
test eax, eax
jne 0x407c97
mov eax, dword [0x4595e0]
mov dword [eax + 0x140], ebx
jmp 0x409d8b
mov ecx, dword [0x459700]
mov dword [0x4596fc], eax
lea edx, [ecx + 0x40]
mov dword [0x459704], edx
mov edx, dword [0x459814]
lea edi, [ecx + eax]
mov ecx, 0x10
mov edx, dword [edx + 0x68]
mov esi, dword [edx + 0x14]
jmp 0x407d0e
cmp edx, ebp
jae 0x407cf7
push ebp
push eax
call fcn.004460cb
add esp, 8
test eax, eax
jne 0x407ce3
mov eax, dword [0x4595e0]
mov dword [eax + 0x140], ebx
jmp 0x409d8b
mov ecx, dword [0x459700]
mov dword [0x4596fc], eax
lea edx, [ecx + 0x40]
mov dword [0x459704], edx
mov edx, dword [0x459814]
lea edi, [ecx + eax]
mov ecx, 0x10
mov edx, dword [edx + 0x68]
mov edx, dword [edx + 0x14]
mov esi, dword [edx + 0x10]
rep movsd dword es:[edi], dword [esi]
mov edx, dword [0x459700]
mov eax, dword [0x459814]
add edx, ebp
mov dword [0x459700], edx
mov ecx, dword [eax + 0x68]
mov eax, dword [ecx + 0x10]
test eax, eax
jne 0x407db4
mov edi, 0x459708
or ecx, 0xffffffff
xor eax, eax
lea esi, [esp + 0x54]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x18], esi
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x18]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [edx + 0x40]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp eax, dword [0x459704]
jbe 0x407da0
mov ecx, dword [0x4596fc]
push eax
push ecx
call fcn.004460cb
add esp, 8
test eax, eax
jne 0x407d8d
mov edx, dword [0x4595e0]
mov dword [edx + 0x140], ebx
jmp 0x409d8b
mov edx, dword [0x459700]
mov dword [0x4596fc], eax
lea eax, [edx + 0x40]
mov dword [0x459704], eax
mov ecx, dword [0x4596fc]
lea esi, [esp + 0x54]
lea edi, [edx + ecx]
mov ecx, 0x10
jmp 0x407e12
mov ecx, dword [0x459704]
lea eax, [edx + 0x40]
cmp eax, ecx
jbe 0x407df9
mov edx, dword [0x4596fc]
push eax
push edx
call fcn.004460cb
add esp, 8
test eax, eax
jne 0x407de5
mov eax, dword [0x4595e0]
mov dword [eax + 0x140], ebx
jmp 0x409d8b
mov edx, dword [0x459700]
mov dword [0x4596fc], eax
lea ecx, [edx + 0x40]
mov dword [0x459704], ecx
mov eax, dword [0x459814]
mov ecx, dword [0x4596fc]
mov eax, dword [eax + 0x68]
lea edi, [edx + ecx]
mov ecx, 0x10
mov esi, dword [eax + 0x10]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x459700]
add eax, ebp
mov dword [0x459700], eax
mov eax, dword [0x459814]
mov esi, dword [eax + 0x78]
test esi, esi
jne 0x407e92
mov esi, dword [eax + 0x7c]
mov eax, dword [eax + 0x68]
test esi, esi
jne 0x407e6e
mov esi, dword [eax + 4]
mov ecx, dword [eax]
cmp esi, ecx
jb 0x407e4c
mov edx, dword [eax + 8]
add edx, ecx
cmp esi, edx
jae 0x407e4c
sub esi, ecx
jmp 0x407e4e
xor esi, esi
push 0
push esi
push 0x45487c
call fcn.00439bc0
add esp, 8
push eax
push 0x454860
call fcn.00439780
add esp, 0xc
jmp 0x407e97
mov edx, dword [eax]
push 0
sub esi, edx
push esi
push 0x454850
call fcn.00439bc0
add esp, 8
push eax
push 0x454834
call fcn.00439780
add esp, 0xc
jmp 0x407e97
mov ecx, dword [eax + 0x68]
sub esi, dword [ecx]
mov ecx, dword [0x459700]
mov edx, dword [0x459704]
lea eax, [ecx + 4]
cmp eax, edx
jbe 0x407ee2
mov edx, dword [0x4596fc]
push eax
push edx
call fcn.004460cb
add esp, 8
test eax, eax
jne 0x407ece
mov eax, dword [0x4595e0]
mov dword [eax + 0x140], ebx
jmp 0x409d8b
mov ecx, dword [0x459700]
mov dword [0x4596fc], eax
lea edx, [ecx + 4]
mov dword [0x459704], edx
mov eax, dword [0x4596fc]
mov dword [ecx + eax], esi
mov eax, dword [0x459700]
mov ecx, dword [0x459814]
add eax, 4
mov dword [0x459700], eax
mov ebp, dword [ecx + 0x68]
mov dword [esp + 0x14], ebp
test byte [ebp + 0x18], 1
je 0x4081ae
mov ecx, dword [ebp + 0x14]
test ecx, ecx
je 0x4081ae
mov edx, dword [ecx + 0x48]
test edx, edx
je 0x4081ae
mov edx, dword [0x459704]
lea ecx, [eax + 1]
cmp ecx, edx
jbe 0x407f5c
mov edx, dword [0x4596fc]
push ecx
push edx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x409d7b
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 1]
mov dword [0x459704], ecx
mov edx, dword [0x4596fc]
mov byte [eax + edx], 2
mov eax, dword [0x459700]
inc eax
mov dword [0x459700], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x48]
lea ecx, [eax + 4]
mov esi, dword [edx + 4]
mov edx, dword [0x459704]
cmp ecx, edx
mov dword [esp + 0x10], esi
jbe 0x407fb5
mov eax, dword [0x4596fc]
push ecx
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408b10
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 4]
mov dword [0x459704], ecx
mov edx, dword [0x4596fc]
xor ebx, ebx
mov dword [eax + edx], esi
mov eax, dword [0x459700]
add eax, 4
test esi, esi
mov dword [0x459700], eax
jbe 0x4081ae
mov edx, dword [0x459704]
lea ecx, [eax + 0x40]
cmp ecx, edx
jbe 0x40800c
mov eax, dword [0x4596fc]
push ecx
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408543
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 0x40]
mov dword [0x459704], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 0x14]
mov ecx, dword [ecx + 0x48]
mov esi, dword [ecx]
mov ecx, dword [0x4596fc]
mov esi, dword [esi + ebx*4]
lea edi, [eax + ecx]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x459700]
add eax, 0x40
mov dword [0x459700], eax
mov edx, dword [edx + 0x14]
mov ecx, dword [edx + 0x48]
mov edx, dword [ecx]
lea ecx, [eax + 4]
mov ebp, dword [edx + ebx*4]
mov edx, dword [0x459704]
cmp ecx, edx
jbe 0x40807a
mov eax, dword [0x4596fc]
push ecx
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x409d7b
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 4]
mov dword [0x459704], ecx
mov ecx, dword [0x4596fc]
mov edx, dword [ebp + 0x44]
mov dword [eax + ecx], edx
mov eax, dword [0x459700]
mov edx, dword [0x459704]
add eax, 4
mov dword [0x459700], eax
mov cl, byte [ebp + 0x44]
test cl, 0x10
lea ecx, [eax + 4]
je 0x408155
cmp ecx, edx
jbe 0x4080d7
mov edx, dword [0x4596fc]
push ecx
push edx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408b10
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 4]
mov dword [0x459704], ecx
mov ecx, dword [0x4596fc]
mov edx, dword [ebp + 0x40]
mov dword [eax + ecx], edx
mov eax, dword [0x459700]
add eax, 4
mov dword [0x459700], eax
mov edx, dword [ebp + 0x40]
lea ecx, [edx + eax]
mov edx, dword [0x459704]
cmp ecx, edx
jbe 0x40812c
mov eax, dword [0x4596fc]
push ecx
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408543
mov dword [0x4596fc], eax
mov ecx, dword [ebp + 0x40]
mov eax, dword [0x459700]
add ecx, eax
mov dword [0x459704], ecx
mov edx, dword [0x4596fc]
mov ecx, dword [ebp + 0x40]
mov esi, dword [ebp + 0x48]
lea edi, [eax + edx]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x459700]
mov ecx, dword [ebp + 0x40]
add eax, ecx
jmp 0x408198
cmp ecx, edx
jbe 0x408184
push ecx
mov ecx, dword [0x4596fc]
push ecx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x409d7b
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea edx, [eax + 4]
mov dword [0x459704], edx
mov edx, dword [0x4596fc]
mov ecx, dword [ebp + 0x48]
mov dword [eax + edx], ecx
mov eax, dword [0x459700]
add eax, 4
mov ecx, dword [esp + 0x10]
inc ebx
cmp ebx, ecx
mov dword [0x459700], eax
jb 0x407fd5
mov ebp, dword [esp + 0x14]
mov ecx, dword [ebp + 0xc]
mov edx, dword [0x459704]
test ecx, ecx
lea ecx, [eax + 1]
je 0x40852c
cmp ecx, edx
jbe 0x4081f0
mov eax, dword [0x4596fc]
push ecx
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x409d7b
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 1]
mov dword [0x459704], ecx
mov edx, dword [0x4596fc]
mov byte [eax + edx], 1
mov eax, dword [0x459700]
inc eax
mov edx, dword [0x459704]
mov dword [0x459700], eax
mov ebp, dword [ebp + 0xc]
mov dword [esp + 0x14], ebp
test byte [ebp + 0x18], 1
lea ecx, [eax + 0x40]
je 0x40825c
cmp ecx, edx
jbe 0x408249
mov eax, dword [0x4596fc]
push ecx
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408b10
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 0x40]
mov dword [0x459704], ecx
mov edx, dword [0x4596fc]
mov esi, dword [ebp + 0x14]
mov ecx, 0x10
lea edi, [eax + edx]
jmp 0x40829e
cmp ecx, edx
jbe 0x40828a
mov eax, dword [0x4596fc]
push ecx
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408543
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 0x40]
mov dword [0x459704], ecx
mov ecx, dword [0x4596fc]
mov edx, dword [ebp + 0x14]
mov esi, dword [edx + 0x10]
lea edi, [eax + ecx]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
mov edx, dword [0x459700]
mov ebx, 0x40
add edx, ebx
mov dword [0x459700], edx
mov eax, dword [ebp + 0x1c]
test eax, eax
jne 0x408330
mov edi, 0x459708
or ecx, 0xffffffff
xor eax, eax
lea esi, [esp + 0x54]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x18], esi
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x18]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [edx + 0x40]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp eax, dword [0x459704]
jbe 0x40831c
mov ecx, dword [0x4596fc]
push eax
push ecx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x409d7b
mov edx, dword [0x459700]
mov dword [0x4596fc], eax
lea eax, [edx + 0x40]
mov dword [0x459704], eax
mov ecx, dword [0x4596fc]
lea esi, [esp + 0x54]
lea edi, [edx + ecx]
mov ecx, 0x10
jmp 0x40837b
mov ecx, dword [0x459704]
lea eax, [edx + 0x40]
cmp eax, ecx
jbe 0x408368
mov edx, dword [0x4596fc]
push eax
push edx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408b10
mov edx, dword [0x459700]
mov dword [0x4596fc], eax
lea eax, [edx + 0x40]
mov dword [0x459704], eax
mov ecx, dword [0x4596fc]
mov eax, dword [ebp + 0x1c]
mov esi, dword [eax]
lea edi, [edx + ecx]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x459700]
mov ecx, dword [0x459704]
add eax, ebx
mov edx, eax
mov dword [0x459700], eax
lea eax, [edx + 4]
cmp eax, ecx
jbe 0x4083c3
push eax
mov eax, dword [0x4596fc]
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408543
mov ecx, dword [0x459700]
mov dword [0x4596fc], eax
add ecx, 4
mov dword [0x459704], ecx
mov eax, dword [0x459700]
mov ecx, dword [0x4596fc]
mov edx, dword [ebp + 0x20]
mov dword [eax + ecx], edx
mov edx, dword [0x459700]
add edx, 4
mov dword [0x459700], edx
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x408460
mov edi, 0x459708
or ecx, 0xffffffff
xor eax, eax
lea esi, [esp + 0x54]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x18], esi
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x18]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [edx + 0x40]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp eax, dword [0x459704]
jbe 0x40844c
mov ecx, dword [0x4596fc]
push eax
push ecx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x409d7b
mov edx, dword [0x459700]
mov dword [0x4596fc], eax
lea eax, [edx + 0x40]
mov dword [0x459704], eax
mov ecx, dword [0x4596fc]
lea esi, [esp + 0x54]
lea edi, [edx + ecx]
mov ecx, 0x10
jmp 0x4084a9
mov ecx, dword [0x459704]
lea eax, [edx + 0x40]
cmp eax, ecx
jbe 0x408498
mov edx, dword [0x4596fc]
push eax
push edx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408b10
mov edx, dword [0x459700]
mov dword [0x4596fc], eax
lea eax, [edx + 0x40]
mov dword [0x459704], eax
mov ecx, dword [0x4596fc]
mov esi, dword [ebp + 0x10]
lea edi, [edx + ecx]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x459700]
add eax, ebx
mov dword [0x459700], eax
mov eax, dword [ebp + 4]
mov ecx, dword [ebp]
cmp eax, ecx
jb 0x4084d0
mov edx, dword [ebp + 8]
add edx, ecx
cmp eax, edx
jae 0x4084d0
sub eax, ecx
mov esi, eax
jmp 0x4084d2
xor esi, esi
mov eax, dword [0x459700]
mov ecx, dword [0x459704]
add eax, 4
cmp eax, ecx
jbe 0x40850c
mov ecx, dword [0x4596fc]
push eax
push ecx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408543
mov edx, dword [0x459700]
mov dword [0x4596fc], eax
add edx, 4
mov dword [0x459704], edx
mov eax, dword [0x459700]
mov ecx, dword [0x4596fc]
mov dword [eax + ecx], esi
mov eax, dword [0x459700]
add eax, 4
mov dword [0x459700], eax
jmp 0x407f04
cmp ecx, edx
jbe 0x40856b
mov eax, dword [0x4596fc]
push ecx
push eax
call fcn.004460cb
add esp, 8
test eax, eax
jne 0x408558
mov ecx, dword [0x4595e0]
mov dword [ecx + 0x140], 1
jmp 0x409d8b
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea edx, [eax + 1]
mov dword [0x459704], edx
mov ecx, dword [0x4596fc]
mov byte [eax + ecx], 0
mov eax, dword [0x459700]
mov edx, dword [0x459814]
inc eax
mov dword [0x459700], eax
mov ecx, dword [edx + 0xd0]
mov edx, dword [ecx + 4]
lea ecx, [eax + 4]
mov dword [esp + 0x10], edx
mov edx, dword [0x459704]
cmp ecx, edx
jbe 0x4085c6
mov eax, dword [0x4596fc]
push ecx
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408543
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea edx, [eax + 4]
mov dword [0x459704], edx
mov edx, dword [0x4596fc]
mov ecx, dword [esp + 0x10]
xor ebx, ebx
mov dword [eax + edx], ecx
mov eax, dword [0x459700]
add eax, 4
test ecx, ecx
mov dword [0x459700], eax
jbe 0x4087c9
mov edx, dword [0x459704]
lea ecx, [eax + 0x40]
cmp ecx, edx
jbe 0x408621
mov eax, dword [0x4596fc]
push ecx
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408b10
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 0x40]
mov dword [0x459704], ecx
mov edx, dword [0x459814]
mov ecx, dword [edx + 0xd0]
mov edx, dword [ecx]
mov ecx, dword [0x4596fc]
mov esi, dword [edx + ebx*4]
lea edi, [eax + ecx]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x459700]
mov edx, dword [0x459814]
add eax, 0x40
mov dword [0x459700], eax
mov ecx, dword [edx + 0xd0]
mov edx, dword [ecx]
lea ecx, [eax + 4]
mov ebp, dword [edx + ebx*4]
mov edx, dword [0x459704]
cmp ecx, edx
jbe 0x408697
mov eax, dword [0x4596fc]
push ecx
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408543
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 4]
mov dword [0x459704], ecx
mov ecx, dword [0x4596fc]
mov edx, dword [ebp + 0x44]
mov dword [eax + ecx], edx
mov eax, dword [0x459700]
mov edx, dword [0x459704]
add eax, 4
mov dword [0x459700], eax
mov cl, byte [ebp + 0x44]
test cl, 0x10
lea ecx, [eax + 4]
je 0x408774
cmp ecx, edx
jbe 0x4086f4
mov edx, dword [0x4596fc]
push ecx
push edx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x409d7b
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 4]
mov dword [0x459704], ecx
mov ecx, dword [0x4596fc]
mov edx, dword [ebp + 0x40]
mov dword [eax + ecx], edx
mov eax, dword [0x459700]
add eax, 4
mov dword [0x459700], eax
mov edx, dword [ebp + 0x40]
lea ecx, [eax + edx]
mov edx, dword [0x459704]
cmp ecx, edx
jbe 0x40874b
mov eax, dword [0x4596fc]
push ecx
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408b10
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
mov edx, dword [ebp + 0x40]
mov ecx, eax
add ecx, edx
mov dword [0x459704], ecx
mov edx, dword [0x4596fc]
mov ecx, dword [ebp + 0x40]
mov esi, dword [ebp + 0x48]
lea edi, [eax + edx]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x459700]
mov ecx, dword [ebp + 0x40]
add eax, ecx
jmp 0x4087b7
cmp ecx, edx
jbe 0x4087a3
push ecx
mov ecx, dword [0x4596fc]
push ecx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408543
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea edx, [eax + 4]
mov dword [0x459704], edx
mov edx, dword [0x4596fc]
mov ecx, dword [ebp + 0x48]
mov dword [eax + edx], ecx
mov eax, dword [0x459700]
add eax, 4
mov ecx, dword [esp + 0x10]
inc ebx
cmp ebx, ecx
mov dword [0x459700], eax
jb 0x4085ea
mov edx, dword [0x459814]
lea ecx, [eax + 4]
mov esi, dword [edx + 0x4a0]
mov edx, dword [0x459704]
cmp ecx, edx
mov dword [esp + 0x10], esi
jbe 0x408810
mov eax, dword [0x4596fc]
push ecx
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408543
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea edx, [eax + 4]
mov dword [0x459704], edx
mov ecx, dword [0x4596fc]
mov dword [esp + 0x1c], 0
mov dword [eax + ecx], esi
mov eax, dword [0x459700]
mov ecx, dword [0x4596fc]
add eax, 4
test esi, esi
mov dword [0x459700], eax
jbe 0x408ae5
mov edx, dword [0x459814]
mov esi, dword [esp + 0x1c]
mov edx, dword [edx + 0x49c]
mov ebp, dword [edx + esi*4]
test ebp, ebp
je 0x408ad0
mov esi, dword [0x459704]
lea edx, [eax + 0x40]
cmp edx, esi
jbe 0x40888c
push edx
push ecx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408b10
mov ecx, eax
mov eax, dword [0x459700]
mov dword [0x4596fc], ecx
lea edx, [eax + 0x40]
mov dword [0x459704], edx
lea edi, [eax + ecx]
mov ecx, 0x10
mov esi, ebp
rep movsd dword es:[edi], dword [esi]
mov edx, dword [0x459700]
add edx, 0x40
mov dword [0x459700], edx
mov ecx, dword [ebp + 0x80]
mov edx, dword [ebp + 0x84]
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 0x88]
mov dword [esp + 0x2c], edx
mov edx, dword [ebp + 0x90]
mov dword [esp + 0x30], ecx
mov ecx, dword [ebp + 0x94]
mov dword [esp + 0x34], edx
mov edx, dword [ebp + 0x48]
mov dword [esp + 0x38], ecx
mov ecx, dword [ebp + 0x4c]
mov dword [esp + 0x3c], edx
mov eax, dword [ebp + 0x40]
lea edx, [ebp + 0x50]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x20], eax
mov ecx, dword [edx]
mov eax, dword [ebp + 0x44]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x24], eax
mov ecx, dword [edx + 4]
mov dword [esp + 0x48], ecx
mov ecx, dword [edx + 8]
test eax, 0x1000000
mov edx, dword [edx + 0xc]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], edx
je 0x408935
mov ecx, dword [ebp + 0xc4]
call fcn.0042b800
movsx ecx, word [eax + 2]
sub dword [esp + 0x3c], ecx
movsx edx, word [eax + 4]
sub dword [esp + 0x40], edx
mov ecx, dword [0x459700]
mov edx, dword [0x459704]
lea eax, [ecx + 0x34]
cmp eax, edx
jbe 0x408973
push eax
mov eax, dword [0x4596fc]
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408543
mov ecx, dword [0x459700]
mov dword [0x4596fc], eax
lea edx, [ecx + 0x34]
mov dword [0x459704], edx
mov eax, dword [0x4596fc]
lea esi, [esp + 0x20]
xor edx, edx
lea edi, [ecx + eax]
mov ecx, 0xd
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x459700]
mov dword [esp + 0x14], edx
add ecx, 0x34
mov dword [0x459700], ecx
mov eax, dword [ebp + 0xc0]
test eax, eax
je 0x4089b4
mov eax, dword [eax + 0x98]
inc edx
test eax, eax
jne 0x4089a5
mov dword [esp + 0x14], edx
mov edx, dword [0x459704]
lea eax, [ecx + 4]
cmp eax, edx
jbe 0x4089ed
mov ecx, dword [0x4596fc]
push eax
push ecx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x409d7b
mov ecx, dword [0x459700]
mov dword [0x4596fc], eax
lea edx, [ecx + 4]
mov dword [0x459704], edx
mov eax, dword [0x4596fc]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], 0
mov dword [ecx + eax], edx
mov eax, dword [0x459700]
add eax, 4
mov dword [0x459700], eax
mov ebx, dword [ebp + 0xc0]
test edx, edx
jbe 0x408a8e
mov edx, dword [0x459704]
lea ecx, [eax + 0xa0]
cmp ecx, edx
jbe 0x408a56
push ecx
mov ecx, dword [0x4596fc]
push ecx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408b10
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea edx, [eax + 0xa0]
mov dword [0x459704], edx
mov ecx, dword [0x4596fc]
mov edx, dword [esp + 0x14]
mov esi, ebx
lea edi, [eax + ecx]
mov ecx, 0x28
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x459700]
mov ecx, dword [esp + 0x18]
add eax, 0xa0
inc ecx
mov dword [0x459700], eax
mov ebx, dword [ebx + 0x98]
cmp ecx, edx
mov dword [esp + 0x18], ecx
jb 0x408a18
test dword [ebp + 0x44], 0x4000000
je 0x408aca
mov edx, dword [0x4596fc]
mov ecx, dword [ebp + 0xc4]
push 0x459704
push 0x459700
push edx
call fcn.00434120
test eax, eax
je 0x409d9f
mov ecx, eax
mov eax, dword [0x459700]
mov dword [0x4596fc], ecx
jmp 0x408ad0
mov ecx, dword [0x4596fc]
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
inc edx
cmp edx, esi
mov dword [esp + 0x1c], edx
jb 0x40883c
mov edx, dword [0x459814]
mov edi, dword [0x459704]
mov esi, dword [edx + 0x4a8]
lea edx, [eax + 4]
cmp edx, edi
mov dword [esp + 0x10], esi
jbe 0x408b3a
push edx
push ecx
call fcn.004460cb
add esp, 8
test eax, eax
jne 0x408b24
mov eax, dword [0x4595e0]
mov dword [eax + 0x140], 1
jmp 0x409d8b
mov ecx, eax
mov eax, dword [0x459700]
mov dword [0x4596fc], ecx
lea edx, [eax + 4]
mov dword [0x459704], edx
mov dword [eax + ecx], esi
mov ecx, dword [0x459700]
add ecx, 4
xor ebx, ebx
test esi, esi
mov dword [0x459700], ecx
jbe 0x408dec
mov edx, dword [0x459704]
lea eax, [ecx + 0x40]
cmp eax, edx
jbe 0x408b8e
push eax
mov eax, dword [0x4596fc]
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x409d7b
mov ecx, dword [0x459700]
mov dword [0x4596fc], eax
lea edx, [ecx + 0x40]
mov dword [0x459704], edx
mov eax, dword [0x459814]
mov edx, dword [eax + 0x4a4]
mov eax, dword [0x4596fc]
mov esi, dword [edx + ebx*4]
lea edi, [ecx + eax]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
mov edx, dword [0x459700]
mov ecx, dword [0x459814]
add edx, 0x40
mov dword [0x459700], edx
mov eax, dword [ecx + 0x4a4]
mov ebp, dword [eax + ebx*4]
test byte [ebp + 0x42], 2
je 0x408c2d
mov edi, 0x459708
or ecx, 0xffffffff
xor eax, eax
lea esi, [esp + 0x54]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x18], esi
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x18]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [edx + 0x40]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x48]
mov dword [esp + 0x55], ecx
mov ecx, dword [0x459704]
cmp eax, ecx
jbe 0x408c96
mov edx, dword [0x4596fc]
push eax
push edx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408b10
jmp 0x408c83
mov eax, dword [ebp + 0x48]
test eax, eax
jne 0x408caa
mov edi, 0x459708
or ecx, 0xffffffff
xor eax, eax
lea esi, [esp + 0x54]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x18], esi
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x18]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [edx + 0x40]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp eax, dword [0x459704]
jbe 0x408c96
mov ecx, dword [0x4596fc]
push eax
push ecx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408543
mov edx, dword [0x459700]
mov dword [0x4596fc], eax
lea eax, [edx + 0x40]
mov dword [0x459704], eax
mov ecx, dword [0x4596fc]
lea esi, [esp + 0x54]
lea edi, [edx + ecx]
mov ecx, 0x10
jmp 0x408cf3
mov ecx, dword [0x459704]
lea eax, [edx + 0x40]
cmp eax, ecx
jbe 0x408ce2
mov edx, dword [0x4596fc]
push eax
push edx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x409d7b
mov edx, dword [0x459700]
mov dword [0x4596fc], eax
lea eax, [edx + 0x40]
mov dword [0x459704], eax
mov ecx, dword [0x4596fc]
mov esi, dword [ebp + 0x48]
lea edi, [edx + ecx]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
mov edx, dword [0x459700]
add edx, 0x40
mov dword [0x459700], edx
mov eax, dword [ebp + 0x78]
test eax, eax
je 0x408d60
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x408d60
mov ecx, dword [0x459704]
lea eax, [edx + 0x40]
cmp eax, ecx
jbe 0x408d4a
mov edx, dword [0x4596fc]
push eax
push edx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408b10
mov edx, dword [0x459700]
mov dword [0x4596fc], eax
lea eax, [edx + 0x40]
mov dword [0x459704], eax
mov ecx, dword [0x4596fc]
mov eax, dword [ebp + 0x78]
mov esi, dword [eax + 8]
lea edi, [edx + ecx]
mov ecx, 0x10
jmp 0x408dce
mov edi, 0x459708
or ecx, 0xffffffff
xor eax, eax
lea ebp, [esp + 0x54]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [edx + 0x40]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp eax, dword [0x459704]
jbe 0x408dbc
mov ecx, dword [0x4596fc]
push eax
push ecx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408543
mov edx, dword [0x459700]
mov dword [0x4596fc], eax
lea eax, [edx + 0x40]
mov dword [0x459704], eax
mov ecx, dword [0x4596fc]
lea esi, [esp + 0x54]
lea edi, [edx + ecx]
mov ecx, 0x10
mov eax, dword [esp + 0x10]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x459700]
add ecx, 0x40
inc ebx
cmp ebx, eax
mov dword [0x459700], ecx
jb 0x408b56
mov edx, dword [0x459814]
mov eax, dword [edx + 0x98]
test eax, eax
mov dword [esp + 0x10], eax
je 0x40907e
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x4c]
test edx, edx
je 0x40906b
mov edx, dword [0x459704]
lea eax, [ecx + 1]
cmp eax, edx
jbe 0x408e4c
mov ecx, dword [0x4596fc]
push eax
push ecx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408543
mov ecx, dword [0x459700]
mov dword [0x4596fc], eax
lea edx, [ecx + 1]
mov dword [0x459704], edx
mov eax, dword [0x4596fc]
mov byte [ecx + eax], 1
mov eax, dword [0x459700]
mov edx, dword [0x459704]
inc eax
mov dword [0x459700], eax
lea ecx, [eax + 0x84]
cmp ecx, edx
jbe 0x408e9e
push ecx
mov ecx, dword [0x4596fc]
push ecx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x409d7b
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea edx, [eax + 0x84]
mov dword [0x459704], edx
mov ecx, dword [0x4596fc]
mov ebx, dword [esp + 0x10]
mov esi, dword [ebx + 0x4c]
lea edi, [eax + ecx]
mov ecx, 0x21
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x459700]
add eax, 0x84
mov dword [0x459700], eax
mov ecx, dword [ebx + 0x58]
cmp byte [ecx], 0
jne 0x408fc6
mov bl, byte [ecx + 0x48]
mov edx, dword [0x459704]
lea ecx, [eax + 1]
cmp ecx, edx
jbe 0x408f0b
mov edx, dword [0x4596fc]
push ecx
push edx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408b10
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 1]
mov dword [0x459704], ecx
mov edx, dword [0x4596fc]
xor ebp, ebp
mov byte [eax + edx], bl
mov ecx, dword [0x459700]
movsx ebx, bl
inc ecx
test ebx, ebx
mov dword [0x459700], ecx
jle 0x40906b
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x58]
mov eax, dword [edx + 0x44]
mov edx, dword [eax + ebp*4]
cmp byte [edx], 0
jne 0x408f56
push 0
push str.SaveAction_Error
push 0x4547fc
call fcn.00439780
add esp, 0xc
jmp 0x408fb2
mov edx, dword [0x459704]
lea eax, [ecx + 0x40]
cmp eax, edx
jbe 0x408f8e
push eax
mov eax, dword [0x4596fc]
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408543
mov ecx, dword [0x459700]
mov dword [0x4596fc], eax
lea edx, [ecx + 0x40]
mov dword [0x459704], edx
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x58]
mov eax, dword [edx + 0x44]
mov edx, dword [0x4596fc]
mov esi, dword [eax + ebp*4]
lea edi, [ecx + edx]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
add dword [0x459700], 0x40
mov ecx, dword [0x459700]
inc ebp
cmp ebp, ebx
jl 0x408f2e
jmp 0x40906b
mov edx, dword [0x459704]
lea ecx, [eax + 1]
cmp ecx, edx
jbe 0x408ffd
mov eax, dword [0x4596fc]
push ecx
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x409d7b
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 1]
mov dword [0x459704], ecx
mov edx, dword [0x4596fc]
mov byte [eax + edx], 1
mov eax, dword [0x459700]
mov edx, dword [0x459704]
inc eax
mov dword [0x459700], eax
lea ecx, [eax + 0x40]
cmp ecx, edx
jbe 0x409049
mov eax, dword [0x4596fc]
push ecx
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408b10
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 0x40]
mov dword [0x459704], ecx
mov edx, dword [0x4596fc]
mov esi, dword [ebx + 0x58]
mov ecx, 0x10
lea edi, [eax + edx]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x459700]
add ecx, 0x40
mov dword [0x459700], ecx
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x50]
test eax, eax
mov dword [esp + 0x10], eax
jne 0x408e04
mov edx, dword [0x459814]
mov eax, dword [edx + 0x9c]
test eax, eax
mov dword [esp + 0x10], eax
je 0x409310
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x4c]
test edx, edx
je 0x4092fd
mov edx, dword [0x459704]
lea eax, [ecx + 1]
cmp eax, edx
jbe 0x4090de
mov ecx, dword [0x4596fc]
push eax
push ecx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408543
mov ecx, dword [0x459700]
mov dword [0x4596fc], eax
lea edx, [ecx + 1]
mov dword [0x459704], edx
mov eax, dword [0x4596fc]
mov byte [ecx + eax], 1
mov eax, dword [0x459700]
mov edx, dword [0x459704]
inc eax
mov dword [0x459700], eax
lea ecx, [eax + 0x84]
cmp ecx, edx
jbe 0x409130
push ecx
mov ecx, dword [0x4596fc]
push ecx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x409d7b
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea edx, [eax + 0x84]
mov dword [0x459704], edx
mov ecx, dword [0x4596fc]
mov ebx, dword [esp + 0x10]
mov esi, dword [ebx + 0x4c]
lea edi, [eax + ecx]
mov ecx, 0x21
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x459700]
add eax, 0x84
mov dword [0x459700], eax
mov ecx, dword [ebx + 0x58]
cmp byte [ecx], 0
jne 0x409258
mov bl, byte [ecx + 0x48]
mov edx, dword [0x459704]
lea ecx, [eax + 1]
cmp ecx, edx
jbe 0x40919d
mov edx, dword [0x4596fc]
push ecx
push edx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408b10
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 1]
mov dword [0x459704], ecx
mov edx, dword [0x4596fc]
xor ebp, ebp
mov byte [eax + edx], bl
mov ecx, dword [0x459700]
movsx ebx, bl
inc ecx
test ebx, ebx
mov dword [0x459700], ecx
jle 0x4092fd
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x58]
mov eax, dword [edx + 0x44]
mov edx, dword [eax + ebp*4]
cmp byte [edx], 0
jne 0x4091e8
push 0
push str.SaveAction_Error
push 0x4547fc
call fcn.00439780
add esp, 0xc
jmp 0x409244
mov edx, dword [0x459704]
lea eax, [ecx + 0x40]
cmp eax, edx
jbe 0x409220
push eax
mov eax, dword [0x4596fc]
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408543
mov ecx, dword [0x459700]
mov dword [0x4596fc], eax
lea edx, [ecx + 0x40]
mov dword [0x459704], edx
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x58]
mov eax, dword [edx + 0x44]
mov edx, dword [0x4596fc]
mov esi, dword [eax + ebp*4]
lea edi, [ecx + edx]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
add dword [0x459700], 0x40
mov ecx, dword [0x459700]
inc ebp
cmp ebp, ebx
jl 0x4091c0
jmp 0x4092fd
mov edx, dword [0x459704]
lea ecx, [eax + 1]
cmp ecx, edx
jbe 0x40928f
mov eax, dword [0x4596fc]
push ecx
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x409d7b
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 1]
mov dword [0x459704], ecx
mov edx, dword [0x4596fc]
mov byte [eax + edx], 1
mov eax, dword [0x459700]
mov edx, dword [0x459704]
inc eax
mov dword [0x459700], eax
lea ecx, [eax + 0x40]
cmp ecx, edx
jbe 0x4092db
mov eax, dword [0x4596fc]
push ecx
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408b10
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 0x40]
mov dword [0x459704], ecx
mov edx, dword [0x4596fc]
mov esi, dword [ebx + 0x58]
mov ecx, 0x10
lea edi, [eax + edx]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x459700]
add ecx, 0x40
mov dword [0x459700], ecx
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x50]
test eax, eax
mov dword [esp + 0x10], eax
jne 0x409096
mov edx, dword [0x459814]
mov eax, dword [edx + 0xa0]
test eax, eax
mov dword [esp + 0x10], eax
je 0x4095a2
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x4c]
test edx, edx
je 0x40958f
mov edx, dword [0x459704]
lea eax, [ecx + 1]
cmp eax, edx
jbe 0x409370
mov ecx, dword [0x4596fc]
push eax
push ecx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408543
mov ecx, dword [0x459700]
mov dword [0x4596fc], eax
lea edx, [ecx + 1]
mov dword [0x459704], edx
mov eax, dword [0x4596fc]
mov byte [ecx + eax], 1
mov eax, dword [0x459700]
mov edx, dword [0x459704]
inc eax
mov dword [0x459700], eax
lea ecx, [eax + 0x84]
cmp ecx, edx
jbe 0x4093c2
push ecx
mov ecx, dword [0x4596fc]
push ecx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x409d7b
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea edx, [eax + 0x84]
mov dword [0x459704], edx
mov ecx, dword [0x4596fc]
mov ebx, dword [esp + 0x10]
mov esi, dword [ebx + 0x4c]
lea edi, [eax + ecx]
mov ecx, 0x21
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x459700]
add eax, 0x84
mov dword [0x459700], eax
mov ecx, dword [ebx + 0x58]
cmp byte [ecx], 0
jne 0x4094ea
mov bl, byte [ecx + 0x48]
mov edx, dword [0x459704]
lea ecx, [eax + 1]
cmp ecx, edx
jbe 0x40942f
mov edx, dword [0x4596fc]
push ecx
push edx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408b10
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 1]
mov dword [0x459704], ecx
mov edx, dword [0x4596fc]
xor ebp, ebp
mov byte [eax + edx], bl
mov ecx, dword [0x459700]
movsx ebx, bl
inc ecx
test ebx, ebx
mov dword [0x459700], ecx
jle 0x40958f
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x58]
mov eax, dword [edx + 0x44]
mov edx, dword [eax + ebp*4]
cmp byte [edx], 0
jne 0x40947a
push 0
push str.SaveAction_Error
push 0x4547fc
call fcn.00439780
add esp, 0xc
jmp 0x4094d6
mov edx, dword [0x459704]
lea eax, [ecx + 0x40]
cmp eax, edx
jbe 0x4094b2
push eax
mov eax, dword [0x4596fc]
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408543
mov ecx, dword [0x459700]
mov dword [0x4596fc], eax
lea edx, [ecx + 0x40]
mov dword [0x459704], edx
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x58]
mov eax, dword [edx + 0x44]
mov edx, dword [0x4596fc]
mov esi, dword [eax + ebp*4]
lea edi, [ecx + edx]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
add dword [0x459700], 0x40
mov ecx, dword [0x459700]
inc ebp
cmp ebp, ebx
jl 0x409452
jmp 0x40958f
mov edx, dword [0x459704]
lea ecx, [eax + 1]
cmp ecx, edx
jbe 0x409521
mov eax, dword [0x4596fc]
push ecx
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x409d7b
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 1]
mov dword [0x459704], ecx
mov edx, dword [0x4596fc]
mov byte [eax + edx], 1
mov eax, dword [0x459700]
mov edx, dword [0x459704]
inc eax
mov dword [0x459700], eax
lea ecx, [eax + 0x40]
cmp ecx, edx
jbe 0x40956d
mov eax, dword [0x4596fc]
push ecx
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408b10
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 0x40]
mov dword [0x459704], ecx
mov edx, dword [0x4596fc]
mov esi, dword [ebx + 0x58]
mov ecx, 0x10
lea edi, [eax + edx]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x459700]
add ecx, 0x40
mov dword [0x459700], ecx
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x50]
test eax, eax
mov dword [esp + 0x10], eax
jne 0x409328
mov edx, dword [0x459814]
mov dword [esp + 0x14], 0
mov eax, dword [edx + 0xd0]
mov eax, dword [eax + 4]
test eax, eax
mov dword [esp + 0x1c], eax
jbe 0x40987f
mov esi, dword [esp + 0x14]
mov ecx, dword [0x459814]
push esi
mov ecx, dword [ecx + 0xd0]
call fcn.0043b540
mov eax, dword [eax + 0x50]
test eax, eax
mov dword [esp + 0x10], eax
je 0x409868
jmp 0x4095f0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x4c]
test ecx, ecx
je 0x409851
mov ecx, dword [0x459700]
mov edx, dword [0x459704]
lea eax, [ecx + 1]
cmp eax, edx
jbe 0x409639
mov edx, dword [0x4596fc]
push eax
push edx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408543
mov ecx, dword [0x459700]
mov dword [0x4596fc], eax
lea eax, [ecx + 1]
mov dword [0x459704], eax
mov edx, dword [0x4596fc]
mov byte [ecx + edx], 1
mov eax, dword [0x459700]
mov edx, dword [0x459704]
inc eax
mov dword [0x459700], eax
lea ecx, [eax + 0x84]
cmp ecx, edx
jbe 0x40968b
mov eax, dword [0x4596fc]
push ecx
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x409d7b
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 0x84]
mov dword [0x459704], ecx
mov edx, dword [0x4596fc]
mov ebx, dword [esp + 0x10]
mov ecx, 0x21
mov esi, dword [ebx + 0x4c]
lea edi, [eax + edx]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x459700]
add eax, 0x84
mov dword [0x459700], eax
mov ecx, dword [ebx + 0x58]
cmp byte [ecx], 0
jne 0x4097b4
mov bl, byte [ecx + 0x48]
mov edx, dword [0x459704]
lea ecx, [eax + 1]
cmp ecx, edx
jbe 0x4096f7
mov eax, dword [0x4596fc]
push ecx
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408b10
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 1]
mov dword [0x459704], ecx
mov edx, dword [0x4596fc]
xor ebp, ebp
mov byte [eax + edx], bl
mov ecx, dword [0x459700]
movsx ebx, bl
inc ecx
test ebx, ebx
mov dword [0x459700], ecx
jle 0x409851
jmp 0x409722
mov ecx, dword [0x459700]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x58]
mov eax, dword [edx + 0x44]
mov edx, dword [eax + ebp*4]
cmp byte [edx], 0
jne 0x40974a
push 0
push str.SaveAction_Error
push 0x4547fc
call fcn.00439780
add esp, 0xc
jmp 0x4097a6
mov edx, dword [0x459704]
lea eax, [ecx + 0x40]
cmp eax, edx
jbe 0x409782
push eax
mov eax, dword [0x4596fc]
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408543
mov ecx, dword [0x459700]
mov dword [0x4596fc], eax
lea edx, [ecx + 0x40]
mov dword [0x459704], edx
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x58]
mov eax, dword [edx + 0x44]
mov edx, dword [0x4596fc]
mov esi, dword [eax + ebp*4]
lea edi, [ecx + edx]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
add dword [0x459700], 0x40
inc ebp
cmp ebp, ebx
jl 0x40971c
jmp 0x409851
mov edx, dword [0x459704]
lea ecx, [eax + 1]
cmp ecx, edx
jbe 0x4097eb
mov eax, dword [0x4596fc]
push ecx
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x409d7b
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 1]
mov dword [0x459704], ecx
mov edx, dword [0x4596fc]
mov byte [eax + edx], 1
mov eax, dword [0x459700]
mov edx, dword [0x459704]
inc eax
mov dword [0x459700], eax
lea ecx, [eax + 0x40]
cmp ecx, edx
jbe 0x409837
mov eax, dword [0x4596fc]
push ecx
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408b10
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 0x40]
mov dword [0x459704], ecx
mov edx, dword [0x4596fc]
mov esi, dword [ebx + 0x58]
mov ecx, 0x10
lea edi, [eax + edx]
rep movsd dword es:[edi], dword [esi]
add dword [0x459700], 0x40
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x50]
test eax, eax
mov dword [esp + 0x10], eax
jne 0x4095ec
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
inc esi
cmp esi, eax
mov dword [esp + 0x14], esi
jb 0x4095c9
mov ecx, dword [0x459700]
mov edx, dword [0x459814]
mov dword [esp + 0x14], 0
mov eax, dword [edx + 0x4a0]
test eax, eax
mov dword [esp + 0x1c], eax
jbe 0x409b5d
mov esi, dword [esp + 0x14]
mov eax, dword [0x459814]
push esi
lea ecx, [eax + 0x49c]
call fcn.0043b540
mov eax, dword [eax + 0xc8]
test eax, eax
mov dword [esp + 0x10], eax
je 0x409b46
jmp 0x4098cc
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x4c]
test ecx, ecx
je 0x409b2f
mov ecx, dword [0x459700]
mov edx, dword [0x459704]
lea eax, [ecx + 1]
cmp eax, edx
jbe 0x409916
mov ecx, dword [0x4596fc]
push eax
push ecx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408543
mov ecx, dword [0x459700]
mov dword [0x4596fc], eax
lea edx, [ecx + 1]
mov dword [0x459704], edx
mov eax, dword [0x4596fc]
mov byte [ecx + eax], 1
mov eax, dword [0x459700]
mov edx, dword [0x459704]
inc eax
mov dword [0x459700], eax
lea ecx, [eax + 0x84]
cmp ecx, edx
jbe 0x409968
push ecx
mov ecx, dword [0x4596fc]
push ecx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x409d7b
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea edx, [eax + 0x84]
mov dword [0x459704], edx
mov ecx, dword [0x4596fc]
mov ebx, dword [esp + 0x10]
mov esi, dword [ebx + 0x4c]
lea edi, [eax + ecx]
mov ecx, 0x21
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x459700]
add eax, 0x84
mov dword [0x459700], eax
mov ecx, dword [ebx + 0x58]
cmp byte [ecx], 0
jne 0x409a92
mov bl, byte [ecx + 0x48]
mov edx, dword [0x459704]
lea ecx, [eax + 1]
cmp ecx, edx
jbe 0x4099d5
mov edx, dword [0x4596fc]
push ecx
push edx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408b10
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 1]
mov dword [0x459704], ecx
mov edx, dword [0x4596fc]
xor ebp, ebp
mov byte [eax + edx], bl
mov ecx, dword [0x459700]
movsx ebx, bl
inc ecx
test ebx, ebx
mov dword [0x459700], ecx
jle 0x409b2f
jmp 0x409a00
mov ecx, dword [0x459700]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x58]
mov eax, dword [edx + 0x44]
mov edx, dword [eax + ebp*4]
cmp byte [edx], 0
jne 0x409a28
push 0
push str.SaveAction_Error
push 0x4547fc
call fcn.00439780
add esp, 0xc
jmp 0x409a84
mov edx, dword [0x459704]
lea eax, [ecx + 0x40]
cmp eax, edx
jbe 0x409a60
push eax
mov eax, dword [0x4596fc]
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408543
mov ecx, dword [0x459700]
mov dword [0x4596fc], eax
lea edx, [ecx + 0x40]
mov dword [0x459704], edx
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x58]
mov eax, dword [edx + 0x44]
mov edx, dword [0x4596fc]
mov esi, dword [eax + ebp*4]
lea edi, [ecx + edx]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
add dword [0x459700], 0x40
inc ebp
cmp ebp, ebx
jl 0x4099fa
jmp 0x409b2f
mov edx, dword [0x459704]
lea ecx, [eax + 1]
cmp ecx, edx
jbe 0x409ac9
mov eax, dword [0x4596fc]
push ecx
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x409d7b
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 1]
mov dword [0x459704], ecx
mov edx, dword [0x4596fc]
mov byte [eax + edx], 1
mov eax, dword [0x459700]
mov edx, dword [0x459704]
inc eax
mov dword [0x459700], eax
lea ecx, [eax + 0x40]
cmp ecx, edx
jbe 0x409b15
mov eax, dword [0x4596fc]
push ecx
push eax
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408b10
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 0x40]
mov dword [0x459704], ecx
mov edx, dword [0x4596fc]
mov esi, dword [ebx + 0x58]
mov ecx, 0x10
lea edi, [eax + edx]
rep movsd dword es:[edi], dword [esi]
add dword [0x459700], 0x40
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x50]
test eax, eax
mov dword [esp + 0x10], eax
jne 0x4098c8
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
inc esi
cmp esi, eax
mov dword [esp + 0x14], esi
jb 0x4098a3
mov ecx, dword [0x459700]
mov edx, dword [0x459704]
lea eax, [ecx + 1]
cmp eax, edx
jbe 0x409b95
mov ecx, dword [0x4596fc]
push eax
push ecx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x409d7b
mov ecx, dword [0x459700]
mov dword [0x4596fc], eax
lea eax, [ecx + 1]
mov dword [0x459704], eax
mov edx, dword [0x4596fc]
lea ebx, [esp + 0xbc]
mov byte [ecx + edx], 0
mov edx, dword [0x459700]
inc edx
mov dword [0x459700], edx
mov edx, dword [0x459814]
mov eax, dword [edx + 0xe8]
test eax, eax
je 0x409bc8
mov edi, dword [eax + 0x58]
jmp 0x409bcd
mov edi, 0x459708
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [edx + 0x1c]
lea edx, [esp + 0xfc]
test edi, edi
jne 0x409bfd
mov edi, 0x459708
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x17c]
push ecx
call fcn.00437380
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x13c]
mov eax, ecx
mov esi, edi
mov edi, edx
mov edx, dword [0x459704]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [0x459700]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [eax + 0xc4]
cmp ecx, edx
jbe 0x409c93
push ecx
mov ecx, dword [0x4596fc]
push ecx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x409d7b
mov dword [0x4596fc], eax
mov eax, dword [0x459700]
lea ecx, [eax + 0xc4]
mov dword [0x459704], ecx
mov edx, dword [0x4596fc]
mov ecx, 0x31
lea esi, [esp + 0xbc]
mov ebp, 4
lea edi, [eax + edx]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [0x459700]
add edi, 0xc4
mov eax, edi
mov dword [0x459700], edi
and eax, 3
sub ebp, eax
lea ecx, [edi + ebp]
mov eax, ecx
xor edx, edx
mov esi, 7
div esi
test edx, edx
je 0x409cdf
test cl, 0xd
jne 0x409ce7
add ebp, 4
add ecx, 4
jmp 0x409ccb
test ebp, ebp
je 0x409de1
mov dword [esp + 0x18], 0xedcba754
cmp ebp, 4
jbe 0x409d5a
mov ecx, dword [0x459704]
lea eax, [edi + 4]
cmp eax, ecx
jbe 0x409d35
mov ecx, dword [0x4596fc]
push eax
push ecx
call fcn.004460cb
add esp, 8
test eax, eax
je 0x408543
mov edi, dword [0x459700]
mov dword [0x4596fc], eax
lea edx, [edi + 4]
mov dword [0x459704], edx
mov eax, dword [0x4596fc]
mov dword [edi + eax], 0xedcba754
mov edi, dword [0x459700]
add edi, 4
sub ebp, 4
mov dword [0x459700], edi
jne 0x409cf7
jmp 0x409de1
mov ecx, dword [0x459704]
lea eax, [edi + ebp]
cmp eax, ecx
jbe 0x409dbf
mov ecx, dword [0x4596fc]
push eax
push ecx
call fcn.004460cb
add esp, 8
test eax, eax
jne 0x409dac
mov edx, dword [0x4595e0]
mov dword [edx + 0x140], 1
push 0
push str.save_error
push 0x454688
call fcn.00439780
add esp, 0xc
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x170
ret
mov edi, dword [0x459700]
mov dword [0x4596fc], eax
lea eax, [edi + ebp]
mov dword [0x459704], eax
mov edx, dword [0x4596fc]
mov ecx, ebp
mov eax, ecx
lea esi, [esp + 0x18]
add edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
add dword [0x459700], ebp
lea edx, [esp + 0x94]
push edx
call fcn.00409e20
mov eax, dword [0x459700]
mov ecx, dword [0x4596fc]
push eax
lea edx, [esp + 0x9c]
push ecx
push edx
call fcn.0040f960
add esp, 0x10
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x170
ret