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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x474ecb
mov eax, dword fs:[0]
push eax
sub esp, 0x3f8
push ebx
push esi
push edi
mov eax, dword [0x48b2b0]
xor eax, esp
push eax
lea eax, [esp + 0x408]
mov dword fs:[0], eax
mov edx, dword [ebp + 0x24]
mov eax, dword [edx + 0x10]
mov ecx, dword [edx + 0x14]
mov dword [esp + 0x10c], eax
or eax, ecx
mov dword [esp + 0x110], ecx
jne 0x45180f
mov dword [esp + 0x10c], 1
mov dword [esp + 0x110], eax
cmp dword [ebp + 0xc], 0
je 0x451866
mov eax, dword [ebp + 0xc]
mov edi, dword [eax + 0x13c]
mov ebx, dword [eax + 0x138]
test edi, edi
ja 0x45182c
test ebx, ebx
jbe 0x451866
cmp byte [edx + 0x21], 0
jne 0x451866
mov esi, dword [ebp + 8]
mov eax, dword [esi]
mov ecx, dword [eax + 0x10]
push 0
push 0
push 0
push 0
push esi
call ecx
test eax, eax
jne 0x45474e
mov edx, dword [ebp + 0x1c]
push eax
push edi
push ebx
push edx
mov ecx, esi
call fcn.004504a0
add esp, 0x10
test eax, eax
jne 0x45474e
xor ebx, ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], 4
mov dword [esp + 0x48], vtable.CRecordVector_int_.0
mov dword [esp + 0x410], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], 0xc
mov dword [esp + 0x1c], vtable.CRecordVector_struct_NArchive::N7z::CFolderRepack_.0
mov byte [esp + 0x410], 1
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x114], ebx
mov dword [esp + 0x118], ebx
mov byte [esp + 0x16], bl
cmp dword [ebp + 0xc], ebx
je 0x451b7e
mov eax, dword [ebp + 0xc]
mov edi, dword [eax + 0x6c]
lea esi, [esp + 0x48]
call fcn.0043af00
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 0x6c], ebx
jle 0x45193d
nop
mov ecx, dword [esp + 0x4c]
cmp dword [esp + 0x50], ecx
jne 0x451921
cmp ecx, 0x40
mov eax, 1
jl 0x45190b
mov eax, ecx
shr eax, 2
jmp 0x451915
cmp ecx, 8
jl 0x451915
mov eax, 8
lea edi, [eax + ecx]
lea esi, [esp + 0x48]
call fcn.0043af00
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov ecx, dword [ebp + 0xc]
mov dword [edx + eax*4], 0xffffffff
inc dword [esp + 0x50]
inc ebx
cmp ebx, dword [ecx + 0x6c]
jl 0x4518f0
mov edx, dword [ebp + 0x10]
xor eax, eax
cmp dword [edx + 8], eax
jle 0x451961
mov ecx, dword [edx + 0xc]
mov ecx, dword [ecx + eax*4]
mov ecx, dword [ecx]
cmp ecx, 0xffffffff
je 0x45195b
mov esi, dword [esp + 0x54]
mov dword [esi + ecx*4], eax
inc eax
cmp eax, dword [edx + 8]
jl 0x451947
mov edx, dword [ebp + 0xc]
cmp dword [edx + 0x44], 0
mov dword [esp + 0x44], 0
jle 0x451b6f
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x5c]
mov eax, dword [esp + 0x44]
mov ecx, dword [ecx + eax*4]
mov edx, dword [edx + 0x1a4]
mov eax, dword [edx + eax*4]
xor esi, esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], esi
cmp ecx, esi
jbe 0x451b5a
mov ecx, dword [esp + 0x54]
lea edx, [ecx + eax*4]
mov eax, dword [ebp + 0xc]
mov ebx, dword [eax + 0x70]
sub ebx, ecx
jmp 0x4519c0
mov ecx, dword [ebx + edx]
cmp byte [ecx + 0x1c], 0
je 0x4519f6
mov eax, dword [edx]
inc esi
test eax, eax
jl 0x4519f6
mov edi, dword [ebp + 0x10]
mov edi, dword [edi + 0xc]
mov eax, dword [edi + eax*4]
cmp byte [eax + 0x38], 0
jne 0x4519f6
mov eax, dword [ecx]
inc dword [esp + 0x38]
add dword [esp + 0x8c], eax
mov ecx, dword [ecx + 4]
adc dword [esp + 0x90], ecx
add edx, 4
cmp esi, dword [esp + 0x18]
jb 0x4519c0
cmp dword [esp + 0x38], 0
je 0x451b5a
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x48]
mov ecx, dword [esp + 0x44]
mov ebx, dword [eax + ecx*4]
mov edi, dword [ebx + 8]
lea eax, [edi - 1]
test eax, eax
jl 0x451a48
mov edx, dword [ebx + 0xc]
lea ecx, [edx + eax*4]
jmp 0x451a30
mov edx, dword [ecx]
cmp dword [edx], 0x6f10701
jne 0x451a40
cmp dword [edx + 4], 0
je 0x451aaf
dec eax
sub ecx, 4
test eax, eax
jge 0x451a30
mov byte [esp + 0x17], 0
xor esi, esi
test edi, edi
jle 0x451a7d
mov edx, dword [ebx + 0xc]
mov eax, dword [edx]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
cmp ecx, 0x3030103
jne 0x451a69
test eax, eax
je 0x451ab6
cmp ecx, 0x303011b
jne 0x451a75
test eax, eax
je 0x451ab6
inc esi
add edx, 4
cmp esi, edi
jl 0x451a56
xor al, al
xor ebx, ebx
test al, al
movzx eax, byte [esp + 0x17]
setne bl
neg eax
sbb eax, eax
and eax, 2
add ebx, eax
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x24], eax
jne 0x451ad0
cmp eax, 0x40
mov ecx, 1
jl 0x451aba
mov ecx, eax
shr ecx, 2
jmp 0x451ac4
mov byte [esp + 0x17], 1
jmp 0x451a4d
mov al, 1
jmp 0x451a7f
cmp eax, 8
jl 0x451ac4
mov ecx, 8
lea edi, [ecx + eax]
lea esi, [esp + 0x1c]
call fcn.0043af00
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
lea ecx, [eax + eax*2]
lea eax, [edx + ecx*4]
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x38]
mov dword [eax], edx
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
inc dword [esp + 0x24]
cmp ecx, dword [esp + 0x18]
jne 0x451b10
mov eax, dword [ebp + 0xc]
call fcn.00442880
add dword [esp + 0x94], eax
adc dword [esp + 0x98], edx
jmp 0x451b5a
mov ecx, dword [esp + 0x8c]
add dword [esp + 0x94], ecx
mov eax, dword [esp + 0x90]
adc dword [esp + 0x98], eax
cmp eax, dword [esp + 0x118]
jb 0x451b4e
ja 0x451b40
cmp ecx, dword [esp + 0x114]
jbe 0x451b4e
mov dword [esp + 0x114], ecx
mov dword [esp + 0x118], eax
cmp byte [esp + 0x17], 0
je 0x451b5a
mov byte [esp + 0x16], 1
mov eax, dword [esp + 0x44]
mov ecx, dword [ebp + 0xc]
inc eax
cmp eax, dword [ecx + 0x44]
mov dword [esp + 0x44], eax
jl 0x451976
mov edx, dword [ebp + 0xc]
push edx
lea eax, [esp + 0x20]
call fcn.00454900
xor ebx, ebx
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 8]
xor esi, esi
xor edx, edx
xor edi, edi
cmp eax, ebx
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], edx
mov dword [esp + 0x34], eax
jle 0x451c14
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x38], eax
jmp 0x451bb0
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx]
cmp byte [ecx + 0x38], 0
je 0x451bfa
mov eax, dword [ecx + 0x20]
add dword [esp + 0x94], eax
mov ecx, dword [ecx + 0x24]
adc dword [esp + 0x98], ecx
cmp dword [esp + 0x10c], 1
jne 0x451be4
cmp dword [esp + 0x110], 0
je 0x451bea
add esi, eax
adc edx, ecx
jmp 0x451bf8
cmp ecx, edx
jb 0x451bf8
ja 0x451bf4
cmp eax, esi
jbe 0x451bf8
mov esi, eax
mov edx, ecx
xor ebx, ebx
add dword [esp + 0x38], 4
inc edi
cmp edi, dword [esp + 0x34]
jl 0x451bb0
mov dword [esp + 0x90], edx
mov dword [esp + 0x8c], esi
mov eax, dword [esp + 0x118]
cmp eax, edx
jb 0x451c41
ja 0x451c2a
cmp dword [esp + 0x114], esi
jbe 0x451c41
mov esi, dword [esp + 0x114]
mov edx, eax
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], edx
cmp edx, ebx
ja 0x451c61
jb 0x451c4f
cmp esi, 0x10000
jae 0x451c61
mov dword [esp + 0x8c], 0x10000
mov dword [esp + 0x90], ebx
mov eax, dword [esp + 0x98]
mov edi, dword [ebp + 0x20]
mov ecx, dword [esp + 0x94]
mov edx, dword [edi]
mov edx, dword [edx + 0xc]
push eax
push ecx
push edi
call edx
mov esi, eax
cmp esi, ebx
je 0x451d00
mov byte [esp + 0x410], 0
mov eax, dword [esp + 0x24]
push eax
mov edi, vtable.CBaseRecordVector.0
push ebx
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], edi
call dword [0x47dd70]
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0045a013
mov dword [esp + 0x414], 0xffffffff
mov edx, dword [esp + 0x54]
add esp, 4
push edx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x4c], edi
push ebx
lea ecx, [esp + 0x50]
call dword [0x47dd70]
mov eax, dword [esp + 0x54]
push eax
call fcn.0045a013
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x408]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x38
call fcn.0045a06d
mov ebx, eax
xor eax, eax
add esp, 4
mov dword [esp + 0x64], ebx
cmp ebx, eax
jne 0x451d2b
push 0x483da4
lea ecx, [esp + 0x1a]
xor al, al
push ecx
mov byte [esp + 0x1e], al
call fcn.0045e39b
mov dword [ebx + 4], eax
mov dword [ebx], vtable.CLocalProgress.0
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], eax
lea esi, [ebx + 0xc]
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x2c], eax
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], eax
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], eax
mov byte [ebx + 0x31], 1
mov byte [ebx + 0x30], 1
mov edx, dword [ebx]
mov eax, dword [edx + 4]
push ebx
mov dword [esp + 0x118], ebx
call eax
mov byte [esp + 0x410], 2
mov eax, dword [esi]
test eax, eax
je 0x451d82
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esi], 0
mov eax, dword [edi]
mov ecx, dword [eax + 4]
push edi
call ecx
mov eax, dword [ebx + 8]
test eax, eax
je 0x451d99
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, edi
push esi
mov dword [ebx + 8], edi
mov ecx, dword [eax]
mov edx, dword [ecx]
push 0x47eb48
push eax
call edx
lea eax, [esp + 0x21c]
push eax
mov byte [ebx + 0x10], 1
call fcn.00451530
mov byte [esp + 0x410], 3
cmp dword [esp + 0x24], 0
je 0x451e8a
lea esi, [esp + 0x21c]
call fcn.0042e7d0
mov esi, eax
xor edi, edi
cmp esi, edi
je 0x451e8c
lea ecx, [esp + 0x21c]
push ecx
mov byte [esp + 0x414], 2
call fcn.00454770
mov byte [esp + 0x410], 1
mov edx, dword [ebx]
mov eax, dword [edx + 8]
push ebx
call eax
mov byte [esp + 0x410], 0
mov ecx, dword [esp + 0x24]
push ecx
mov ebx, vtable.CBaseRecordVector.0
push edi
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], ebx
call dword [0x47dd70]
mov edx, dword [esp + 0x28]
push edx
call fcn.0045a013
mov dword [esp + 0x414], 0xffffffff
mov eax, dword [esp + 0x54]
add esp, 4
push eax
push edi
lea ecx, [esp + 0x50]
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x50], ebx
call dword [0x47dd70]
mov ecx, dword [esp + 0x54]
push ecx
call fcn.0045a013
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x408]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor edi, edi
mov dword [esp + 0x124], edi
mov dword [esp + 0x128], edi
mov dword [esp + 0x12c], edi
mov edi, 4
mov dword [esp + 0x130], edi
mov dword [esp + method.CObjectVector_struct_NArchive::N7z::CSolidGroup_.virtual_0], vtable.CObjectVector_struct_NArchive::N7z::CSolidGroup_.0
mov esi, edi
lea ebx, [ebx]
xor eax, eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], edi
mov dword [esp + 0xa0], vtable.CRecordVector_unsigned_int_.0
lea edx, [esp + 0xa0]
push edx
lea ecx, [esp + 0x124]
mov byte [esp + 0x414], 5
call fcn.00454a10
mov byte [esp + 0x410], 4
mov eax, dword [esp + 0xa8]
push eax
push 0
lea ecx, [esp + 0xa8]
mov dword [esp + 0xa8], vtable.CBaseRecordVector.0
call dword [0x47dd70]
mov ecx, dword [esp + 0xac]
push ecx
call fcn.0045a013
add esp, 4
sub esi, 1
jne 0x451ec0
mov eax, dword [ebp + 0x24]
mov dl, byte [eax + 8]
mov eax, dword [eax]
cmp dword [eax + 8], 1
mov byte [esp + 0x6b], dl
mov dword [esp + 0x34], eax
jne 0x451f63
cmp dword [eax + 0x1c], esi
je 0x451f68
mov byte [esp + 0x6b], 0
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 8]
xor edi, edi
mov dword [esp + 0x30], edi
test eax, eax
jle 0x4520a8
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + edi*4]
cmp byte [eax + 0x38], 0
je 0x45209a
cmp byte [eax + 0x3b], 0
jne 0x45209a
cmp byte [eax + 0x3a], 0
jne 0x45209a
mov edx, dword [eax + 0x20]
or edx, dword [eax + 0x24]
je 0x45209a
cmp byte [esp + 0x6b], 0
mov byte [esp + 0x17], 0
je 0x45202d
lea edx, [eax + 0x28]
mov eax, dword [edx + 4]
test eax, eax
je 0x45202d
mov ecx, dword [edx]
cmp word [ecx + eax*2 - 2], 0x2e
lea eax, [ecx + eax*2 - 2]
je 0x451fdd
cmp eax, ecx
je 0x45202d
sub eax, 2
cmp word [eax], 0x2e
jne 0x451fd0
sub eax, ecx
sar eax, 1
test eax, eax
jl 0x45202d
inc eax
lea esi, [esp + 0xf8]
call fcn.00432620
mov edi, eax
xor esi, esi
mov eax, dword [esi + 0x48ce50]
push eax
mov eax, dword [edi]
push eax
call fcn.0043ae50
add esp, 8
test eax, eax
je 0x45206a
add esi, 4
cmp esi, 0x14
jb 0x451ff6
mov byte [esp + 0x17], 0
mov ecx, dword [esp + 0xf8]
push ecx
call fcn.0045a013
mov edi, dword [esp + 0x34]
add esp, 4
mov edx, dword [esp + 0x34]
movzx eax, byte [edx + 0x2c]
mov edx, dword [esp + 0x12c]
neg eax
sbb eax, eax
xor ecx, ecx
and eax, 2
cmp byte [esp + 0x17], cl
setne cl
add eax, ecx
mov esi, dword [edx + eax*4]
mov eax, dword [esi + 4]
cmp dword [esi + 8], eax
jne 0x45208b
cmp eax, 0x40
mov ecx, 1
jl 0x452071
mov ecx, eax
shr ecx, 2
jmp 0x45207b
mov byte [esp + 0x17], 1
jmp 0x452019
cmp eax, 8
jl 0x45207b
mov ecx, 8
lea edi, [ecx + eax]
call fcn.0043af00
mov ebx, dword [esp + 0x64]
mov edi, dword [esp + 0x30]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [ecx + eax*4], edi
inc dword [esi + 8]
mov ecx, dword [ebp + 0x10]
inc edi
cmp edi, dword [ecx + 8]
mov dword [esp + 0x30], edi
jl 0x451f7c
cmp byte [esp + 0x16], 0
mov dword [esp + 0x180], 0
je 0x4524b9
push 0x14
call fcn.0045a06d
mov edi, eax
add esp, 4
test edi, edi
jne 0x4520e3
push 0x483da4
lea edx, [esp + 0x1a]
xor al, al
push edx
mov byte [esp + 0x1e], al
call fcn.0045e39b
mov dword [esp + 0x34], edi
xor eax, eax
mov byte [esp + 0x410], 6
mov dword [edi + 4], eax
mov dword [edi], vtable.NArchive::N7z::CCryptoGetTextPassword.0
lea esi, [edi + 8]
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
xor ecx, ecx
mov eax, 4
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004596ad
add esp, 4
cmp dword [esi + 8], 0
mov dword [esp + 0x18], eax
jle 0x45215b
xor eax, eax
cmp dword [esi + 4], eax
jle 0x452150
mov ecx, dword [esp + 0x18]
jmp 0x452140
mov edx, dword [esi]
mov dx, word [edx + eax*2]
mov word [ecx + eax*2], dx
inc eax
cmp eax, dword [esi + 4]
jl 0x452140
mov eax, dword [esi]
push eax
call fcn.0045a013
add esp, 4
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 4]
mov dword [esi], eax
xor edx, edx
mov word [eax + ecx*2], dx
mov byte [esp + 0x410], 4
mov dword [esi + 8], 4
mov eax, dword [edi]
mov ecx, dword [eax + 4]
push edi
mov dword [esp + 0x184], edi
call ecx
mov eax, dword [esp + 0x254]
test eax, eax
je 0x45219b
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov ecx, dword [ebp + 0x24]
mov eax, dword [ecx]
mov dword [esp + 0x254], edi
cmp byte [eax + 0x2c], 0
je 0x45224e
lea edi, [eax + 0x30]
mov dword [esp + 0x34], edi
cmp edi, esi
je 0x4524b9
mov edx, dword [esi]
xor eax, eax
mov dword [esi + 4], 0
mov word [edx], ax
mov ebx, dword [edi + 4]
inc ebx
cmp ebx, dword [esi + 8]
je 0x45222e
xor ecx, ecx
mov eax, ebx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004596ad
add esp, 4
cmp dword [esi + 8], 0
mov edi, eax
jle 0x45221c
xor eax, eax
cmp dword [esi + 4], eax
jle 0x452211
mov ecx, dword [esi]
mov dx, word [ecx + eax*2]
mov word [edi + eax*2], dx
inc eax
cmp eax, dword [esi + 4]
jl 0x452201
mov eax, dword [esi]
push eax
call fcn.0045a013
add esp, 4
mov eax, dword [esi + 4]
mov dword [esi], edi
xor ecx, ecx
mov word [edi + eax*2], cx
mov edi, dword [esp + 0x34]
mov dword [esi + 8], ebx
mov edx, dword [edi]
mov ecx, dword [esi]
movzx eax, word [edx]
mov word [ecx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x452232
mov edx, dword [edi + 4]
mov dword [esi + 4], edx
jmp 0x4524b9
cmp dword [ebp + 0x28], 0
jne 0x452315
lea eax, [esp + 0x120]
push eax
mov byte [esp + 0x414], 3
call fcn.00454980
lea ecx, [esp + 0x21c]
push ecx
mov byte [esp + 0x414], 2
call fcn.00454770
mov byte [esp + 0x410], 1
mov edx, dword [ebx]
mov eax, dword [edx + 8]
push ebx
call eax
mov byte [esp + 0x410], 0
mov ecx, dword [esp + 0x24]
push ecx
xor edi, edi
mov esi, vtable.CBaseRecordVector.0
push edi
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], esi
call dword [0x47dd70]
mov edx, dword [esp + 0x28]
push edx
call fcn.0045a013
mov dword [esp + 0x414], 0xffffffff
mov eax, dword [esp + 0x54]
add esp, 4
push eax
push edi
lea ecx, [esp + 0x50]
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x50], esi
call dword [0x47dd70]
mov ecx, dword [esp + 0x54]
push ecx
call fcn.0045a013
add esp, 4
mov eax, 0x80004001
mov ecx, dword [esp + 0x408]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x38], 0
mov eax, dword [ebp + 0x28]
mov byte [esp + 0x410], 7
mov edx, dword [eax]
mov edx, dword [edx + 0xc]
lea ecx, [esp + 0x38]
push ecx
push eax
call edx
mov edi, eax
test edi, edi
je 0x452404
mov eax, dword [esp + 0x38]
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
lea ecx, [esp + 0x120]
push ecx
mov byte [esp + 0x414], 3
call fcn.00454980
lea edx, [esp + 0x21c]
push edx
mov byte [esp + 0x414], 2
call fcn.00454770
mov byte [esp + 0x410], 1
mov eax, dword [ebx]
mov ecx, dword [eax + 8]
push ebx
call ecx
mov byte [esp + 0x410], 0
mov edx, dword [esp + 0x24]
push edx
xor ebx, ebx
mov esi, vtable.CBaseRecordVector.0
push ebx
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], esi
call dword [0x47dd70]
mov eax, dword [esp + 0x28]
push eax
call fcn.0045a013
mov dword [esp + 0x414], 0xffffffff
mov ecx, dword [esp + 0x54]
add esp, 4
push ecx
push ebx
lea ecx, [esp + 0x50]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x50], esi
call dword [0x47dd70]
mov edx, dword [esp + 0x54]
push edx
call fcn.0045a013
add esp, 4
mov eax, edi
mov ecx, dword [esp + 0x408]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x38]
mov eax, dword [esi]
xor ecx, ecx
mov dword [esi + 4], 0
mov word [eax], cx
xor edi, edi
mov dword [esp + 0x34], edx
cmp word [edx], cx
je 0x452428
inc edi
cmp word [edx + edi*2], cx
jne 0x452421
lea eax, [edi + 1]
cmp eax, dword [esi + 8]
je 0x452490
xor ecx, ecx
lea eax, [edi + 1]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004596ad
add esp, 4
cmp dword [esi + 8], 0
mov ebx, eax
jle 0x45247b
xor eax, eax
cmp dword [esi + 4], eax
jle 0x452470
jmp 0x452460
mov ecx, dword [esi]
mov dx, word [ecx + eax*2]
mov word [ebx + eax*2], dx
inc eax
cmp eax, dword [esi + 4]
jl 0x452460
mov eax, dword [esi]
push eax
call fcn.0045a013
add esp, 4
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x34]
xor ecx, ecx
mov dword [esi], ebx
mov word [ebx + eax*2], cx
lea eax, [edi + 1]
mov dword [esi + 8], eax
mov ecx, dword [esi]
movzx eax, word [edx]
mov word [ecx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x452492
mov byte [esp + 0x410], 4
mov edx, dword [esp + 0x38]
push edx
mov dword [esi + 4], edi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ebx, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x14]
call fcn.0044cbc0
mov edi, eax
xor ebx, ebx
cmp edi, ebx
je 0x45258b
lea eax, [esp + 0x120]
push eax
mov byte [esp + 0x414], 3
call fcn.00454980
lea ecx, [esp + 0x21c]
push ecx
mov byte [esp + 0x414], 2
call fcn.00454770
mov eax, dword [esp + 0x64]
mov byte [esp + 0x410], 1
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov byte [esp + 0x410], bl
mov ecx, dword [esp + 0x24]
push ecx
mov esi, vtable.CBaseRecordVector.0
push ebx
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], esi
call dword [0x47dd70]
mov edx, dword [esp + 0x28]
push edx
call fcn.0045a013
mov dword [esp + 0x414], 0xffffffff
mov eax, dword [esp + 0x54]
add esp, 4
push eax
push ebx
lea ecx, [esp + 0x50]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x50], esi
call dword [0x47dd70]
mov ecx, dword [esp + 0x54]
push ecx
call fcn.0045a013
add esp, 4
mov eax, edi
mov ecx, dword [esp + 0x408]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x4c]
mov edx, dword [eax]
push ebx
push 1
push ebx
push 0x18
push eax
mov eax, dword [edx + 0x10]
call eax
mov esi, eax
cmp esi, ebx
jne 0x453cf5
mov eax, dword [esp + 0x64]
mov dword [esp + 0xc8], ebx
mov dword [eax + 0x18], ebx
mov dword [eax + 0x1c], ebx
mov dword [esp + 0x38], ebx
jmp 0x4525c0
mov ecx, dword [esp + 0x12c]
mov ebx, dword [esp + 0x38]
mov edx, dword [ecx + ebx*4]
lea eax, [esp + 0x138]
push eax
mov dword [esp + 0x38], edx
call fcn.0043fd70
mov byte [esp + 0x410], 8
test bl, 1
je 0x45260a
mov eax, dword [ebp + 0x24]
movzx ecx, byte [eax + 9]
mov edx, dword [eax]
push ecx
lea ecx, [esp + 0x13c]
call fcn.00450ce0
add esp, 4
jmp 0x45278b
mov edx, dword [ebp + 0x24]
mov eax, dword [esp + 0x140]
mov ebx, dword [edx]
mov edx, dword [esp + 0x138]
push eax
mov eax, dword [edx + 4]
push 0
lea ecx, [esp + 0x140]
call eax
mov eax, dword [ebx + 8]
mov ecx, dword [esp + 0x140]
lea edi, [ecx + eax]
lea esi, [esp + 0x138]
mov dword [esp + 0x18], eax
call fcn.0043af00
xor esi, esi
cmp dword [esp + 0x18], esi
jle 0x452677
mov edi, dword [esp + 0x18]
jmp 0x452660
mov edx, dword [ebx + 0xc]
mov ecx, dword [edx + esi*4]
lea edx, [esp + 0x138]
call fcn.00441ec0
inc esi
cmp esi, edi
jl 0x452660
mov eax, dword [esp + 0x154]
mov edx, dword [esp + 0x14c]
push eax
mov eax, dword [edx + 4]
push 0
lea ecx, [esp + 0x154]
call eax
lea ecx, [ebx + 0x14]
push ecx
lea eax, [esp + 0x150]
call fcn.004426d0
mov edx, dword [ebx + 0x28]
mov dword [esp + 0x160], edx
mov al, byte [ebx + 0x2c]
add ebx, 0x30
lea ecx, [esp + 0x168]
mov byte [esp + 0x164], al
cmp ebx, ecx
je 0x45278b
mov eax, dword [esp + 0x168]
xor edx, edx
mov dword [esp + 0x16c], 0
mov word [eax], dx
mov edi, dword [ebx + 4]
inc edi
cmp edi, dword [esp + 0x170]
je 0x452764
xor ecx, ecx
mov eax, edi
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004596ad
add esp, 4
cmp dword [esp + 0x170], 0
mov esi, eax
jle 0x452749
xor eax, eax
cmp dword [esp + 0x16c], eax
jle 0x452739
mov ecx, dword [esp + 0x168]
mov dx, word [ecx + eax*2]
mov word [esi + eax*2], dx
inc eax
cmp eax, dword [esp + 0x16c]
jl 0x452720
mov eax, dword [esp + 0x168]
push eax
call fcn.0045a013
add esp, 4
mov edx, dword [esp + 0x16c]
xor ecx, ecx
mov dword [esp + 0x168], esi
mov word [esi + edx*2], cx
mov dword [esp + 0x170], edi
mov edx, dword [ebx]
mov ecx, dword [esp + 0x168]
lea ecx, [ecx]
movzx eax, word [edx]
mov word [ecx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x452770
mov eax, dword [ebx + 4]
mov dword [esp + 0x16c], eax
mov ecx, dword [esp + 0x38]
shr ecx, 1
test cl, 1
je 0x452895
cmp byte [esp + 0x164], 0
jne 0x4528b4
mov ebx, dword [esp + 0x180]
test ebx, ebx
je 0x45288b
add ebx, 8
lea edx, [esp + 0x168]
cmp ebx, edx
je 0x45288b
mov ecx, dword [esp + 0x168]
xor eax, eax
mov dword [esp + 0x16c], 0
mov word [ecx], ax
mov edi, dword [ebx + 4]
inc edi
cmp edi, dword [esp + 0x170]
je 0x452864
xor ecx, ecx
mov eax, edi
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004596ad
add esp, 4
cmp dword [esp + 0x170], 0
mov esi, eax
jle 0x452849
xor eax, eax
cmp dword [esp + 0x16c], eax
jle 0x452839
nop
mov ecx, dword [esp + 0x168]
mov dx, word [ecx + eax*2]
mov word [esi + eax*2], dx
inc eax
cmp eax, dword [esp + 0x16c]
jl 0x452820
mov eax, dword [esp + 0x168]
push eax
call fcn.0045a013
add esp, 4
mov edx, dword [esp + 0x16c]
xor ecx, ecx
mov dword [esp + 0x168], esi
mov word [esi + edx*2], cx
mov dword [esp + 0x170], edi
mov edx, dword [ebx]
mov ecx, dword [esp + 0x168]
lea ecx, [ecx]
movzx eax, word [edx]
mov word [ecx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x452870
mov eax, dword [ebx + 4]
mov dword [esp + 0x16c], eax
mov byte [esp + 0x164], 1
jmp 0x4528b4
mov edx, dword [esp + 0x168]
xor ecx, ecx
mov byte [esp + 0x164], 0
mov dword [esp + 0x16c], 0
mov word [edx], cx
lea eax, [esp + 0x2ec]
push eax
lea ecx, [esp + 0x13c]
call fcn.004412d0
mov esi, dword [esp + 0xc8]
mov byte [esp + 0x410], 9
cmp esi, dword [esp + 0x24]
jge 0x4531ed
mov edx, dword [esp + 0x28]
lea ecx, [esi + esi*2]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x5c], eax
cmp dword [eax + 4], ecx
jne 0x4531ed
mov edx, dword [eax]
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebx + 0x5c]
mov eax, dword [eax + 8]
lea edi, [edx*4]
mov dword [esp + 0x44], edi
cmp eax, dword [edi + ecx]
jne 0x452a8a
mov eax, ebx
call fcn.00442880
mov ecx, dword [ebx + 0x17c]
mov dword [esp + 0x188], edx
mov edx, dword [ebx + 0x190]
mov edx, dword [edi + edx]
mov dword [esp + 0x184], eax
mov eax, dword [ecx + edx*8]
mov ecx, dword [ecx + edx*8 + 4]
add eax, dword [ebx + 0x148]
mov edx, dword [ebp + 0x14]
mov edx, dword [edx + 0x50]
adc ecx, dword [ebx + 0x14c]
push 0
push 0
mov dword [esp + 0x20], edx
mov edx, dword [ebp + 8]
mov esi, dword [edx]
push ecx
push eax
mov eax, dword [esi + 0x10]
push edx
call eax
mov esi, dword [esp + 0x64]
test eax, eax
jne 0x452996
mov ecx, dword [esp + 0x188]
mov edx, dword [esp + 0x184]
mov eax, dword [esp + 0x18]
push esi
push ecx
mov ecx, dword [ebp + 8]
push edx
push eax
call fcn.004504a0
add esp, 0x10
mov dword [esp + 0x18], eax
test eax, eax
jne 0x453a1b
mov ecx, dword [esp + 0x184]
add dword [esi + 0x18], ecx
mov edx, dword [esp + 0x188]
mov dword [esp + 0x18], 0
adc dword [esi + 0x1c], edx
mov eax, dword [ebx + 0x48]
mov ecx, dword [edi + eax]
cmp dword [ecx + 0x30], 0
mov edx, dword [ebx + 0x190]
mov edi, dword [edi + edx]
mov dword [esp + 0x60], ecx
jle 0x452a79
lea edx, [edi*8]
mov dword [esp + 0x40], edx
mov eax, dword [ebx + 0xc]
mov ecx, dword [edx + eax]
mov eax, dword [edx + eax + 4]
mov esi, dword [ebp + 0x18]
mov dword [esp + 0x190], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x18c], ecx
cmp dword [esi + 8], eax
jne 0x452a30
cmp eax, 0x40
mov ecx, 1
jl 0x452a1a
mov ecx, eax
shr ecx, 2
jmp 0x452a24
cmp eax, 8
jl 0x452a24
mov ecx, 8
lea edi, [eax + ecx]
call fcn.0043af00
mov edx, dword [esp + 0x40]
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov edi, dword [esp + 0x18c]
mov dword [eax + ecx*8], edi
mov edi, dword [esp + 0x190]
mov dword [eax + ecx*8 + 4], edi
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x60]
inc dword [esi + 8]
inc eax
add edx, 8
cmp eax, dword [ecx + 0x30]
mov dword [esp + 0x18], eax
mov dword [esp + 0x40], edx
jl 0x4529e6
push ecx
lea ecx, [esi + 0x3c]
call fcn.0044c060
jmp 0x452f77
mov esi, dword [ebp + 0x18]
push ecx
lea ecx, [esi + 0x3c]
call fcn.0044c060
jmp 0x452f77
xor edi, edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edi
mov esi, dword [sym.imp.KERNEL32.dll_CreateEventW]
push edi
push 1
push 1
push edi
call esi
mov dword [esp + 0x6c], eax
cmp eax, edi
jne 0x452abf
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, edi
jne 0x452aeb
mov eax, 1
jmp 0x452aeb
push edi
push edi
push 1
push edi
call esi
mov dword [esp + 0x70], eax
cmp eax, edi
je 0x452aae
push edi
push edi
push 1
push edi
call esi
mov dword [esp + 0x74], eax
cmp eax, edi
jne 0x452af5
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, edi
je 0x4539ee
mov esi, eax
cmp esi, edi
jne 0x4539f3
xor esi, esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x3c], esi
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x40]
push edx
lea edi, [esp + 0x74]
mov byte [esp + 0x418], 0xc
call fcn.0042e1c0
mov dword [esp + 0xd0], esi
mov dword [esp + 0xd4], esi
mov dword [esp + 0xd8], esi
mov dword [esp + 0xdc], 1
mov dword [esp + 0xcc], vtable.CRecordVector_bool_.0
mov ecx, dword [esp + 0x44]
mov byte [esp + 0x410], 0xd
mov eax, dword [ebx + 0x5c]
mov eax, dword [ecx + eax]
mov edx, dword [ebx + 0x1a4]
mov ecx, dword [ecx + edx]
mov dword [esp + 0x18], eax
mov dword [esp + 0x40], esi
cmp eax, esi
jbe 0x452c27
lea eax, [ecx*4]
mov dword [esp + 0x60], eax
mov ecx, eax
lea edi, [esi + 1]
jmp 0x452b89
mov esi, dword [esp + 0xd0]
mov edx, dword [ebx + 0x70]
mov eax, dword [ecx + edx]
cmp byte [eax + 0x1c], 0
mov byte [esp + 0x16], 0
je 0x452bbd
mov eax, dword [esp + 0x54]
mov eax, dword [ecx + eax]
add dword [esp + 0x40], edi
test eax, eax
jl 0x452bbd
mov edx, dword [ebp + 0x10]
mov edx, dword [edx + 0xc]
mov eax, dword [edx + eax*4]
cmp byte [eax + 0x38], 0
jne 0x452bbd
mov byte [esp + 0x16], 1
cmp dword [esp + 0xd4], esi
jne 0x452bf6
cmp esi, 0x40
mov eax, edi
jl 0x452bd4
mov eax, esi
shr eax, 2
jmp 0x452bde
cmp esi, 8
jl 0x452bde
mov eax, 8
lea edi, [eax + esi]
lea esi, [esp + 0xcc]
call fcn.0043af00
mov ecx, dword [esp + 0x60]
mov edi, 1
mov eax, dword [esp + 0xd8]
mov esi, dword [esp + 0xd4]
mov dl, byte [esp + 0x16]
mov byte [eax + esi], dl
mov eax, dword [esp + 0x40]
add dword [esp + 0xd4], edi
add ecx, 4
mov dword [esp + 0x60], ecx
cmp eax, dword [esp + 0x18]
jb 0x452b82
mov eax, dword [ebx + 0x1a4]
add eax, dword [esp + 0x44]
mov esi, dword [esp + 0x238]
mov eax, dword [eax]
mov edi, dword [esp + 0x30]
lea ecx, [esp + 0xcc]
mov dword [esi + 0x10], ebx
mov dword [esi + 0x1c], eax
mov dword [esi + 0x14], ecx
test edi, edi
je 0x452c5a
mov edx, dword [edi]
mov eax, dword [edx + 4]
push edi
call eax
mov eax, dword [esi + 0x18]
test eax, eax
je 0x452c69
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esi + 0x18], edi
mov eax, esi
mov dword [esi + 0x20], 0
mov byte [esi + 0x24], 0
call fcn.00451380
mov esi, eax
test esi, esi
jne 0x453bf7
test edi, edi
je 0x452c98
mov eax, dword [edi]
mov ecx, dword [eax + 8]
push edi
call ecx
mov dword [esp + 0x30], esi
mov edi, dword [ebp + 8]
test edi, edi
je 0x452ca7
mov edx, dword [edi]
mov eax, dword [edx + 4]
push edi
call eax
mov eax, dword [esp + 0x234]
test eax, eax
je 0x452cba
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov ecx, dword [ebx + 0x48]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x234], edi
mov edx, dword [eax + ecx]
mov ecx, dword [ebx + 0x190]
add eax, ecx
mov ecx, dword [ebx + 0x17c]
mov dword [esp + 0x250], edx
mov edx, dword [eax]
mov esi, dword [ecx + edx*8]
mov edx, dword [ecx + edx*8 + 4]
add esi, dword [ebx + 0x148]
mov ecx, dword [ebx + 0xc]
adc edx, dword [ebx + 0x14c]
mov dword [esp + 0x244], esi
mov dword [esp + 0x248], edx
mov eax, dword [eax]
lea edx, [ecx + eax*8]
mov eax, dword [esp + 0x220]
push eax
mov dword [esp + 0x250], edx
mov byte [esp + 0x230], 0
call dword [sym.imp.KERNEL32.dll_SetEvent]
test eax, eax
jne 0x452d32
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp + 0x18]
mov edi, dword [ecx + 8]
xor eax, eax
mov edx, 4
mov esi, 8
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], edx
mov dword [esp + method.CObjectVector_struct_NArchive::N7z::CCoderInfo_.virtual_0], vtable.CObjectVector_struct_NArchive::N7z::CCoderInfo_.0
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c0], esi
mov dword [esp + method.CBaseRecordVector.virtual_0], vtable.CRecordVector_struct_NArchive::N7z::CBindPair_.0
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x1d4], edx
mov dword [esp + method.CBaseRecordVector.virtual_0], vtable.CRecordVector_unsigned_int_.0
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x1e4], eax
mov dword [esp + 0x1e8], esi
mov dword [esp + method.CBaseRecordVector.virtual_0], vtable.CRecordVector_unsigned_long_long_unsigned___int64__.0
mov byte [esp + 0x1f0], al
mov esi, dword [esp + 0x64]
mov edx, dword [ebp + 0x14]
push esi
push ecx
mov byte [esp + 0x418], 0xe
mov eax, dword [edx + 0x50]
mov edx, dword [esp + 0x44]
push eax
lea eax, [esp + 0x1a8]
push eax
lea ecx, [esp + 0x9c]
push ecx
push edx
lea eax, [esp + 0x304]
push eax
call fcn.00440530
mov dword [esp + 0x18], eax
test eax, eax
jne 0x453d3f
mov ecx, dword [esp + 0x224]
push 0xffffffffffffffff
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [esp + 0x230]
test eax, eax
jne 0x453f0f
mov ecx, dword [ebp + 0x18]
cmp edi, dword [ecx + 8]
jge 0x452e67
mov eax, dword [ecx + 0xc]
mov edx, dword [eax + edi*8]
add dword [esi + 0x28], edx
mov eax, dword [eax + edi*8 + 4]
adc dword [esi + 0x2c], eax
inc edi
cmp edi, dword [ecx + 8]
jl 0x452e51
lea edi, [esp + 0x19c]
call fcn.00442820
add dword [esi + 0x20], eax
mov ecx, edi
push ecx
adc dword [esi + 0x24], edx
mov ecx, dword [ebp + 0x18]
add ecx, 0x3c
call fcn.0044c060
mov edx, edi
push edx
mov byte [esp + 0x414], 0xd
call fcn.00446570
mov byte [esp + 0x410], 0xc
mov eax, dword [esp + 0xd4]
push eax
xor esi, esi
push esi
lea ecx, [esp + 0xd4]
mov dword [esp + 0xd4], vtable.CBaseRecordVector.0
call dword [0x47dd70]
mov ecx, dword [esp + 0xd8]
push ecx
call fcn.0045a013
add esp, 4
mov byte [esp + 0x410], 0xb
mov dword [esp + 0xd0], esi
mov dword [esp + 0xd4], esi
mov dword [esp + 0xd8], esi
cmp dword [esp + 0x3c], esi
je 0x452f01
mov eax, dword [esp + 0x3c]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov byte [esp + 0x410], 0xa
mov eax, dword [esp + 0x30]
xor edi, edi
cmp eax, edi
je 0x452f1b
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x410], 9
mov eax, dword [esp + 0x74]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp eax, edi
je 0x452f40
push eax
call esi
test eax, eax
jne 0x452f40
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x452f44
mov dword [esp + 0x74], edi
mov eax, dword [esp + 0x70]
cmp eax, edi
je 0x452f5b
push eax
call esi
test eax, eax
jne 0x452f5b
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x452f5f
mov dword [esp + 0x70], edi
mov eax, dword [esp + 0x6c]
cmp eax, edi
je 0x452f74
push eax
call esi
test eax, eax
jne 0x452f74
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, dword [ebp + 0x18]
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 8]
mov eax, dword [esi + 0x54]
add esi, 0x50
mov dword [esp + 0x5c], ecx
cmp dword [esi + 8], eax
jne 0x452fb0
cmp eax, 0x40
mov ecx, 1
jl 0x452f9e
mov ecx, eax
shr ecx, 2
jmp 0x452fa8
cmp eax, 8
jl 0x452fa8
mov ecx, 8
lea edi, [ecx + eax]
call fcn.0043af00
mov edx, dword [esi + 8]
mov ecx, dword [esp + 0x5c]
mov eax, dword [esi + 0xc]
mov dword [eax + edx*4], ecx
inc dword [esi + 8]
mov edx, dword [ebx + 0x5c]
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + edx]
mov edx, dword [ebx + 0x1a4]
mov eax, dword [eax + edx]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], 0
mov dword [esp + 0x40], eax
test ecx, ecx
jbe 0x4531d2
jmp 0x452ff3
mov ebx, dword [ebp + 0xc]
xor eax, eax
push 4
lea esi, [esp + 0x80]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
call fcn.0042c310
mov byte [esp + 0x88], 1
mov byte [esp + 0x89], 0
mov byte [esp + 0x8a], 0
mov byte [esp + 0x8b], 0
mov esi, dword [esp + 0x40]
lea ecx, [esp + 0x6c]
push ecx
push ebx
lea ebx, [esp + 0x1fc]
mov byte [esp + 0x418], 0xf
call fcn.0044fc70
xor ebx, ebx
cmp byte [esp + 0x88], bl
je 0x4531ab
mov edx, dword [esp + 0x54]
mov eax, dword [edx + esi*4]
inc dword [esp + 0x60]
cmp eax, ebx
jl 0x4531ab
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 0xc]
mov edi, dword [edx + eax*4]
cmp byte [edi + 0x38], bl
jne 0x4531ab
cmp byte [edi + 0x39], bl
je 0x453197
push 4
lea esi, [esp + 0xe0]
mov dword [esp + 0xe0], ebx
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xe8], ebx
call fcn.0042c310
mov byte [esp + 0xe8], 1
mov byte [esp + 0xe9], bl
mov byte [esp + 0xea], bl
mov byte [esp + 0xeb], bl
lea ecx, [esp + 0x1f4]
push ecx
lea ebx, [esp + 0xd0]
mov esi, edi
mov byte [esp + 0x414], 0x10
call fcn.00451050
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x7c]
mov bl, byte [esp + 0x8e]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0xd0], edx
movzx edx, byte [esp + 0x8c]
mov dword [esp + 0x78], eax
add esp, 4
lea edi, [esp + 0xdc]
lea eax, [esp + 0x7c]
mov dword [esp + 0xd8], ecx
mov byte [esp + 0xea], bl
mov byte [esp + 0xe8], dl
call fcn.00432560
mov cl, byte [esp + 0xe8]
movzx edx, byte [esp + 0xe9]
mov al, byte [esp + 0xeb]
mov byte [esp + 0x88], cl
mov byte [esp + 0x410], 0xf
mov ecx, dword [esp + 0xdc]
push ecx
mov byte [esp + 0x8d], dl
mov byte [esp + 0x8e], bl
mov byte [esp + 0x8f], al
call fcn.0045a013
add esp, 4
mov edi, dword [ebp + 0x18]
lea edx, [esp + 0x6c]
push edx
lea esi, [esp + 0x1f8]
call fcn.0044fdd0
mov byte [esp + 0x410], 9
mov eax, dword [esp + 0x7c]
push eax
call fcn.0045a013
mov ecx, dword [esp + 0x60]
inc dword [esp + 0x44]
add esp, 4
cmp dword [esp + 0x60], ecx
jb 0x452ff0
mov eax, dword [esp + 0xc8]
inc eax
cmp eax, dword [esp + 0x24]
mov dword [esp + 0xc8], eax
mov esi, eax
jl 0x4528e1
mov edx, dword [esp + 0x34]
mov ebx, dword [edx + 8]
mov dword [esp + 0x18], ebx
test ebx, ebx
jne 0x453230
lea eax, [esp + 0x2ec]
push eax
mov byte [esp + 0x414], 8
call fcn.00441bd0
lea ecx, [esp + 0x138]
push ecx
mov byte [esp + 0x414], 4
call fcn.004414d0
mov edi, vtable.CBaseRecordVector.0
jmp 0x453943
xor eax, eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], 0x14
mov dword [esp + 0xa0], 0x47e8e4
mov edi, ebx
lea esi, [esp + 0xa0]
mov byte [esp + 0x410], 0x11
call fcn.0043af00
cmp dword [esp + 0x110], 0
ja 0x453287
cmp dword [esp + 0x10c], 1
jbe 0x453291
mov byte [esp + 0x134], 1
jmp 0x453299
mov byte [esp + 0x134], 0
xor esi, esi
test ebx, ebx
jle 0x4532ff
mov edi, dword [esp + 0x34]
mov edx, dword [edi + 0xc]
mov ecx, dword [edx + esi*4]
lea eax, [edx + esi*4]
mov edx, dword [ebp + 0x10]
mov edx, dword [edx + 0xc]
mov ecx, dword [edx + ecx*4]
mov edx, dword [esp + 0x134]
mov eax, dword [eax]
push edx
push eax
lea edx, [esp + 0xd4]
push edx
call fcn.00450a00
mov edx, dword [eax]
sub esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov dword [ecx + 0xc], edx
mov dword [ecx + 0x10], eax
lea eax, [esp + 0xb4]
call fcn.00454b90
inc esi
cmp esi, ebx
jl 0x4532a3
lea ecx, [esp + 0x134]
push ecx
lea eax, [esp + 0xa4]
call fcn.00454c00
xor eax, eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], 4
mov dword [esp + 0xb4], vtable.CRecordVector_unsigned_int_.0
mov edi, ebx
lea esi, [esp + 0xb4]
mov byte [esp + 0x410], 0x12
call fcn.0043af00
test ebx, ebx
jle 0x4533e4
mov dword [esp + 0x40], 0
mov dword [esp + 0x34], ebx
mov eax, 1
nop
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0xac]
mov edx, dword [ecx + edx + 4]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x5c], edx
cmp dword [esp + 0xbc], ecx
jne 0x4533bd
cmp ecx, 0x40
jl 0x45339f
mov eax, ecx
shr eax, 2
jmp 0x4533a9
cmp ecx, 8
jl 0x4533a9
mov eax, 8
lea edi, [eax + ecx]
lea esi, [esp + 0xb4]
call fcn.0043af00
mov eax, 1
mov esi, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x5c]
add dword [esp + 0x40], 0x14
mov dword [ecx + esi*4], edx
add dword [esp + 0xbc], eax
sub dword [esp + 0x34], eax
jne 0x453370
mov dword [esp + 0x30], 0
test ebx, ebx
jle 0x453877
xor ebx, ebx
push 4
lea esi, [esp + 0x178]
mov dword [esp + 0x198], ebx
mov dword [esp + 0x178], ebx
mov dword [esp + 0x17c], ebx
mov dword [esp + 0x180], ebx
call fcn.0042c310
mov byte [esp + 0x410], 0x13
mov edi, dword [esp + 0x30]
xor esi, esi
cmp edi, dword [esp + 0x18]
jge 0x453528
jmp 0x453440
mov eax, esi
cdq
cmp edx, dword [esp + 0x110]
ja 0x45351f
jb 0x45345f
cmp eax, dword [esp + 0x10c]
jae 0x45351f
mov ecx, dword [esp + 0xc0]
lea eax, [esi + edi]
mov edx, dword [ecx + eax*4]
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx + edx*4]
mov edx, dword [ecx + 0x20]
add dword [esp + 0x194], edx
mov eax, dword [ecx + 0x24]
adc ebx, eax
mov eax, dword [ebp + 0x24]
cmp ebx, dword [eax + 0x1c]
ja 0x45351f
jb 0x4534a2
mov edx, dword [esp + 0x194]
cmp edx, dword [eax + 0x18]
ja 0x45351f
cmp byte [eax + 0x20], 0
je 0x453511
lea eax, [esp + 0xf8]
call fcn.004506b0
mov byte [esp + 0x410], 0x14
test esi, esi
jne 0x4534d9
lea edi, [esp + 0xf8]
lea eax, [esp + 0x174]
call fcn.00432560
mov edi, dword [esp + 0x30]
jmp 0x4534f9
mov eax, dword [esp + 0x174]
mov ecx, dword [esp + 0xf8]
push eax
push ecx
call fcn.0043ae50
add esp, 8
test eax, eax
jne 0x4536d8
mov byte [esp + 0x410], 0x13
mov edx, dword [esp + 0xf8]
push edx
call fcn.0045a013
add esp, 4
inc esi
lea eax, [esi + edi]
cmp eax, dword [esp + 0x18]
jl 0x453440
mov dword [esp + 0x3c], esi
cmp esi, 1
jge 0x453530
mov dword [esp + 0x3c], 1
push 0x78
call fcn.0045a06d
add esp, 4
test eax, eax
je 0x4540e5
mov dword [esp + 0x34], eax
push eax
mov byte [esp + 0x414], 0x15
call fcn.004438a0
mov byte [esp + 0x410], 0x13
mov dword [esp + 0x44], eax
mov dword [esp + 0x94], eax
test eax, eax
je 0x453573
mov edx, dword [eax]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [ebp + 0x20]
mov esi, dword [esp + 0x44]
mov byte [esp + 0x410], 0x16
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0xc0]
add eax, eax
add eax, eax
mov dword [esp + 0x34], eax
push ecx
add eax, edx
push eax
call fcn.004439a0
lea eax, [esp + 0x19c]
call fcn.00447ea0
mov esi, dword [esp + 0x64]
mov ebx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
push esi
push ebx
mov byte [esp + 0x418], 0x17
mov eax, dword [eax + 0x50]
mov edi, dword [ebx + 8]
push eax
mov eax, dword [esp + 0x50]
lea ecx, [esp + 0x1a8]
push ecx
lea edx, [esp + 0x9c]
push edx
push eax
lea ecx, [esp + 0x304]
push ecx
call fcn.00440530
mov dword [esp + 0x5c], eax
test eax, eax
jne 0x4540fa
cmp edi, dword [ebx + 8]
jge 0x453616
lea esp, [esp]
mov eax, dword [ebx + 0xc]
mov edx, dword [eax + edi*8]
add dword [esi + 0x28], edx
mov eax, dword [eax + edi*8 + 4]
adc dword [esi + 0x2c], eax
inc edi
cmp edi, dword [ebx + 8]
jl 0x453600
lea edi, [esp + 0x19c]
call fcn.00442820
add dword [esi + 0x20], eax
mov ecx, edi
push ecx
adc dword [esi + 0x24], edx
lea ecx, [ebx + 0x3c]
call fcn.0044c060
xor edi, edi
cmp dword [esp + 0x3c], edi
mov dword [esp + 0x60], edi
mov dword [esp + 0x5c], edi
jle 0x4537de
mov edx, dword [esp + 0x34]
mov dword [esp + 0x40], edx
nop
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x40]
mov ecx, dword [edx + ecx]
mov edx, dword [ebp + 0x10]
mov edx, dword [edx + 0xc]
mov ebx, dword [edx + ecx*4]
xor eax, eax
push 4
lea esi, [esp + 0x80]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
call fcn.0042c310
mov byte [esp + 0x88], 1
mov byte [esp + 0x89], 0
mov byte [esp + 0x8a], 0
mov byte [esp + 0x8b], 0
mov byte [esp + 0x410], 0x18
cmp byte [ebx + 0x39], 0
je 0x4536f9
mov esi, dword [esp + 0x34]
lea eax, [esp + 0xcc]
push eax
lea ebx, [esp + 0x70]
call fcn.00451050
add esp, 4
jmp 0x453714
mov byte [esp + 0x410], 0x13
mov ecx, dword [esp + 0xf8]
push ecx
mov dword [esp + 0x40], esi
call fcn.0045a013
add esp, 4
jmp 0x453523
mov edx, dword [ebp + 0xc]
mov eax, dword [esp + 0x34]
mov esi, dword [eax]
lea ecx, [esp + 0x6c]
push ecx
push edx
lea ebx, [esp + 0xd4]
call fcn.0044fc70
xor ebx, ebx
cmp byte [esp + 0xf0], bl
jne 0x4542b0
cmp byte [esp + 0x89], bl
jne 0x4542b0
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 0x48]
cmp byte [edi + ecx], bl
jne 0x453753
mov byte [esp + 0x410], 0x17
mov edx, dword [esp + 0x7c]
push edx
call fcn.0045a013
jmp 0x4537c4
mov ecx, dword [eax + 0x5c]
mov edx, dword [ecx + edi*4]
mov ecx, dword [eax + 0x70]
mov eax, dword [ecx + edi*8]
mov ecx, dword [ecx + edi*8 + 4]
mov dword [esp + 0x6c], eax
or eax, ecx
mov dword [esp + 0x78], edx
mov dword [esp + 0x70], ecx
je 0x45378c
mov eax, 1
add dword [esp + 0x60], eax
mov byte [esp + 0x8a], al
mov byte [esp + 0x88], al
jmp 0x45379a
mov byte [esp + 0x8a], bl
mov byte [esp + 0x88], bl
mov edi, dword [ebp + 0x18]
lea eax, [esp + 0x6c]
push eax
lea esi, [esp + 0xd0]
call fcn.0044fdd0
mov byte [esp + 0x410], 0x17
mov ecx, dword [esp + 0x7c]
push ecx
call fcn.0045a013
mov edi, dword [esp + 0x60]
add dword [esp + 0x44], 4
inc edi
add esp, 4
cmp edi, dword [esp + 0x3c]
mov dword [esp + 0x5c], edi
jl 0x453650
mov ebx, dword [ebp + 0x18]
mov eax, dword [ebx + 0x54]
cmp dword [ebx + 0x58], eax
lea esi, [ebx + 0x50]
jne 0x45380c
cmp eax, 0x40
mov ecx, 1
jl 0x4537fa
mov ecx, eax
shr ecx, 2
jmp 0x453804
cmp eax, 8
jl 0x453804
mov ecx, 8
lea edi, [ecx + eax]
call fcn.0043af00
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x60]
mov dword [eax + edx*4], ecx
inc dword [esi + 8]
mov esi, dword [esp + 0x30]
add esi, dword [esp + 0x3c]
lea edx, [esp + 0x19c]
push edx
mov dword [esp + 0x34], esi
mov byte [esp + 0x414], 0x16
call fcn.00446570
mov eax, dword [esp + 0x44]
mov byte [esp + 0x410], 0x13
test eax, eax
je 0x453855
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x410], 0x12
mov eax, dword [esp + 0x174]
push eax
call fcn.0045a013
add esp, 4
cmp esi, dword [esp + 0x18]
jl 0x4533f4
mov byte [esp + 0x410], 0x11
mov ecx, dword [esp + 0xbc]
push ecx
xor esi, esi
mov edi, vtable.CBaseRecordVector.0
push esi
lea ecx, [esp + 0xbc]
mov dword [esp + 0xbc], edi
call dword [0x47dd70]
mov edx, dword [esp + 0xc0]
push edx
call fcn.0045a013
mov byte [esp + 0x414], 9
mov eax, dword [esp + 0xac]
add esp, 4
push eax
push esi
lea ecx, [esp + 0xa8]
mov dword [esp + 0xc0], esi
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], esi
mov dword [esp + 0xa8], edi
call dword [0x47dd70]
mov ecx, dword [esp + 0xac]
push ecx
call fcn.0045a013
add esp, 4
lea edx, [esp + 0x2ec]
push edx
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], esi
mov dword [esp + 0xb0], esi
mov byte [esp + 0x414], 8
call fcn.00441bd0
lea eax, [esp + 0x138]
push eax
mov byte [esp + 0x414], 4
call fcn.004414d0
mov esi, dword [esp + 0xc8]
mov eax, dword [esp + 0x38]
inc eax
cmp eax, 4
mov dword [esp + 0x38], eax
jl 0x4525c0
cmp esi, dword [esp + 0x24]
je 0x454476
lea ecx, [esp + 0x120]
push ecx
mov byte [esp + 0x414], 3
call fcn.00454980
lea edx, [esp + 0x21c]
push edx
mov byte [esp + 0x414], 2
call fcn.00454770
mov eax, dword [esp + 0x64]
mov byte [esp + 0x410], 1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x410], 0
mov eax, dword [esp + 0x24]
push eax
xor esi, esi
push esi
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], edi
call dword [0x47dd70]
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0045a013
mov dword [esp + 0x414], 0xffffffff
mov edx, dword [esp + 0x54]
add esp, 4
push edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x4c], edi
push esi
jmp 0x454444
mov esi, 1
mov eax, dword [esp + 0x74]
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp eax, edi
je 0x453b01
push eax
call ebx
test eax, eax
jne 0x453b01
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x453b05
lea ecx, [esp + 0x2ec]
push ecx
mov byte [esp + 0x414], 8
call fcn.00441bd0
lea edx, [esp + 0x138]
push edx
mov byte [esp + 0x414], 4
call fcn.004414d0
lea eax, [esp + 0x120]
push eax
mov byte [esp + 0x414], 3
call fcn.00454980
lea ecx, [esp + 0x21c]
push ecx
mov byte [esp + 0x414], 2
call fcn.00454770
mov byte [esp + 0x410], 1
mov edx, dword [esi]
mov eax, dword [edx + 8]
push esi
call eax
mov byte [esp + 0x410], 0
mov ecx, dword [esp + 0x24]
push ecx
xor edi, edi
mov esi, vtable.CBaseRecordVector.0
push edi
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], esi
call dword [0x47dd70]
mov edx, dword [esp + 0x28]
push edx
call fcn.0045a013
mov dword [esp + 0x414], 0xffffffff
mov eax, dword [esp + 0x54]
add esp, 4
push eax
push edi
lea ecx, [esp + 0x50]
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x50], esi
call dword [0x47dd70]
mov ecx, dword [esp + 0x54]
push ecx
call fcn.0045a013
mov eax, dword [esp + 0x1c]
add esp, 4
mov ecx, dword [esp + 0x408]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x74], edi
mov eax, dword [esp + 0x70]
cmp eax, edi
je 0x453b1c
push eax
call ebx
test eax, eax
jne 0x453b1c
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x453b20
mov dword [esp + 0x70], edi
mov eax, dword [esp + 0x6c]
cmp eax, edi
je 0x453b37
push eax
call ebx
test eax, eax
jne 0x453b37
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x453b3b
mov dword [esp + 0x6c], edi
lea edx, [esp + 0x2ec]
push edx
mov byte [esp + 0x414], 8
call fcn.00441bd0
lea eax, [esp + 0x138]
push eax
mov byte [esp + 0x414], 4
call fcn.004414d0
lea ecx, [esp + 0x120]
push ecx
mov byte [esp + 0x414], 3
call fcn.00454980
lea edx, [esp + 0x21c]
push edx
mov byte [esp + 0x414], 2
call fcn.00454770
mov eax, dword [esp + 0x64]
mov byte [esp + 0x410], 1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x410], 0
mov eax, dword [esp + 0x24]
push eax
mov ebx, vtable.CBaseRecordVector.0
push edi
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], ebx
call dword [0x47dd70]
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0045a013
mov dword [esp + 0x414], 0xffffffff
mov edx, dword [esp + 0x54]
add esp, 4
push edx
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x4c], ebx
push edi
jmp 0x451cd1
mov byte [esp + 0x410], 0xc
mov ecx, dword [esp + 0xd4]
push ecx
push 0
lea ecx, [esp + 0xd4]
mov dword [esp + 0xd4], vtable.CBaseRecordVector.0
call dword [0x47dd70]
mov edx, dword [esp + 0xd8]
push edx
call fcn.0045a013
xor ebx, ebx
mov byte [esp + 0x414], 0xb
mov eax, dword [esp + 0x40]
add esp, 4
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], ebx
cmp eax, ebx
je 0x453c60
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x410], 0xa
cmp edi, ebx
je 0x453c74
mov eax, dword [edi]
mov ecx, dword [eax + 8]
push edi
call ecx
mov eax, dword [esp + 0x74]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp eax, ebx
je 0x453c91
push eax
call edi
test eax, eax
jne 0x453c91
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x453c95
mov dword [esp + 0x74], ebx
mov eax, dword [esp + 0x70]
cmp eax, ebx
je 0x453cac
push eax
call edi
test eax, eax
jne 0x453cac
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x453cb0
mov dword [esp + 0x70], ebx
mov eax, dword [esp + 0x6c]
cmp eax, ebx
je 0x453cc7
push eax
call edi
test eax, eax
jne 0x453cc7
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x453ccb
mov dword [esp + 0x6c], ebx
lea edx, [esp + 0x2ec]
push edx
mov byte [esp + 0x414], 8
call fcn.00441bd0
lea eax, [esp + 0x138]
push eax
mov byte [esp + 0x414], 4
call fcn.004414d0
lea ecx, [esp + 0x120]
push ecx
mov byte [esp + 0x414], 3
call fcn.00454980
lea edx, [esp + 0x21c]
push edx
mov byte [esp + 0x414], 2
call fcn.00454770
mov eax, dword [esp + 0x64]
mov byte [esp + 0x410], 1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x410], bl
jmp 0x451c8a
lea ecx, [esp + 0x19c]
push ecx
mov byte [esp + 0x414], 0xd
call fcn.00446570
mov byte [esp + 0x410], 0xc
mov edx, dword [esp + 0xd4]
push edx
xor edi, edi
push edi
lea ecx, [esp + 0xd4]
mov dword [esp + 0xd4], vtable.CBaseRecordVector.0
call dword [0x47dd70]
mov eax, dword [esp + 0xd8]
push eax
call fcn.0045a013
mov byte [esp + 0x414], 0xb
mov eax, dword [esp + 0x40]
add esp, 4
mov dword [esp + 0xd0], edi
mov dword [esp + 0xd4], edi
mov dword [esp + 0xd8], edi
cmp eax, edi
je 0x453dbc
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x410], 0xa
mov eax, dword [esp + 0x30]
cmp eax, edi
je 0x453dd4
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x74]
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp eax, edi
je 0x453df1
push eax
call ebx
test eax, eax
jne 0x453df1
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x453df5
mov dword [esp + 0x74], edi
mov eax, dword [esp + 0x70]
cmp eax, edi
je 0x453e0c
push eax
call ebx
test eax, eax
jne 0x453e0c
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x453e10
mov dword [esp + 0x70], edi
mov eax, dword [esp + 0x6c]
cmp eax, edi
je 0x453e27
push eax
call ebx
test eax, eax
jne 0x453e27
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x453e2b
mov dword [esp + 0x6c], edi
lea eax, [esp + 0x2ec]
push eax
mov byte [esp + 0x414], 8
call fcn.00441bd0
lea ecx, [esp + 0x138]
push ecx
mov byte [esp + 0x414], 4
call fcn.004414d0
lea edx, [esp + 0x120]
push edx
mov byte [esp + 0x414], 3
call fcn.00454980
lea eax, [esp + 0x21c]
push eax
mov byte [esp + 0x414], 2
call fcn.00454770
mov byte [esp + 0x410], 1
mov ecx, dword [esi]
mov edx, dword [ecx + 8]
push esi
call edx
mov byte [esp + 0x410], 0
mov eax, dword [esp + 0x24]
push eax
mov esi, vtable.CBaseRecordVector.0
push edi
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], esi
call dword [0x47dd70]
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0045a013
mov dword [esp + 0x414], 0xffffffff
mov edx, dword [esp + 0x54]
add esp, 4
push edx
push edi
lea ecx, [esp + 0x50]
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x50], esi
call dword [0x47dd70]
mov eax, dword [esp + 0x54]
push eax
call fcn.0045a013
mov eax, dword [esp + 0x1c]
add esp, 4
mov ecx, dword [esp + 0x408]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0x19c]
push ecx
mov ebx, eax
mov byte [esp + 0x414], 0xd
call fcn.00446570
mov byte [esp + 0x410], 0xc
mov edx, dword [esp + 0xd4]
push edx
xor edi, edi
push edi
lea ecx, [esp + 0xd4]
mov dword [esp + 0xd4], vtable.CBaseRecordVector.0
call dword [0x47dd70]
mov eax, dword [esp + 0xd8]
push eax
call fcn.0045a013
mov byte [esp + 0x414], 0xb
mov eax, dword [esp + 0x40]
add esp, 4
mov dword [esp + 0xd0], edi
mov dword [esp + 0xd4], edi
mov dword [esp + 0xd8], edi
cmp eax, edi
je 0x453f8e
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x410], 0xa
mov eax, dword [esp + 0x30]
cmp eax, edi
je 0x453fa6
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x74]
cmp eax, edi
je 0x453fc1
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x453fc1
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x453fc5
mov dword [esp + 0x74], edi
mov eax, dword [esp + 0x70]
cmp eax, edi
je 0x453fe0
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x453fe0
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x453fe4
mov dword [esp + 0x70], edi
mov eax, dword [esp + 0x6c]
cmp eax, edi
je 0x453fff
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x453fff
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x454003
mov dword [esp + 0x6c], edi
lea eax, [esp + 0x2ec]
push eax
mov byte [esp + 0x414], 8
call fcn.00441bd0
lea ecx, [esp + 0x138]
push ecx
mov byte [esp + 0x414], 4
call fcn.004414d0
lea edx, [esp + 0x120]
push edx
mov byte [esp + 0x414], 3
call fcn.00454980
lea eax, [esp + 0x21c]
push eax
mov byte [esp + 0x414], 2
call fcn.00454770
mov byte [esp + 0x410], 1
mov ecx, dword [esi]
mov edx, dword [ecx + 8]
push esi
call edx
mov byte [esp + 0x410], 0
mov eax, dword [esp + 0x24]
push eax
mov esi, vtable.CBaseRecordVector.0
push edi
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], esi
call dword [0x47dd70]
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0045a013
mov dword [esp + 0x414], 0xffffffff
mov edx, dword [esp + 0x54]
add esp, 4
push edx
push edi
lea ecx, [esp + 0x50]
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x50], esi
call dword [0x47dd70]
mov eax, dword [esp + 0x54]
push eax
call fcn.0045a013
add esp, 4
mov eax, ebx
mov ecx, dword [esp + 0x408]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x483da4
lea ecx, [esp + 0x1a]
xor al, al
push ecx
mov byte [esp + 0x1e], al
call fcn.0045e39b
lea edx, [esp + 0x19c]
push edx
mov byte [esp + 0x414], 0x16
call fcn.00446570
mov eax, dword [esp + 0x44]
xor ebx, ebx
mov byte [esp + 0x410], 0x13
cmp eax, ebx
je 0x454129
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x174]
push eax
call fcn.0045a013
mov byte [esp + 0x414], 0x11
mov ecx, dword [esp + 0xc0]
add esp, 4
push ecx
mov edi, vtable.CBaseRecordVector.0
push ebx
lea ecx, [esp + 0xbc]
mov dword [esp + 0xbc], edi
call dword [0x47dd70]
mov edx, dword [esp + 0xc0]
push edx
call fcn.0045a013
mov byte [esp + 0x414], 9
mov eax, dword [esp + 0xac]
add esp, 4
push eax
push ebx
lea ecx, [esp + 0xa8]
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xa8], edi
call dword [0x47dd70]
mov ecx, dword [esp + 0xac]
push ecx
call fcn.0045a013
add esp, 4
lea edx, [esp + 0x2ec]
push edx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], ebx
mov byte [esp + 0x414], 8
call fcn.00441bd0
lea eax, [esp + 0x138]
push eax
mov byte [esp + 0x414], 4
call fcn.004414d0
lea ecx, [esp + 0x120]
push ecx
mov byte [esp + 0x414], 3
call fcn.00454980
lea edx, [esp + 0x21c]
push edx
mov byte [esp + 0x414], 2
call fcn.00454770
mov byte [esp + 0x410], 1
mov eax, dword [esi]
mov ecx, dword [eax + 8]
push esi
call ecx
mov byte [esp + 0x410], bl
mov edx, dword [esp + 0x24]
push edx
push ebx
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], edi
call dword [0x47dd70]
mov eax, dword [esp + 0x28]
push eax
call fcn.0045a013
mov dword [esp + 0x414], 0xffffffff
mov ecx, dword [esp + 0x54]
add esp, 4
push ecx
push ebx
lea ecx, [esp + 0x50]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x50], edi
call dword [0x47dd70]
mov edx, dword [esp + 0x54]
push edx
call fcn.0045a013
mov eax, dword [esp + 0x60]
add esp, 4
mov ecx, dword [esp + 0x408]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x7c]
push eax
call fcn.0045a013
add esp, 4
lea ecx, [esp + 0x19c]
push ecx
mov byte [esp + 0x414], 0x16
call fcn.00446570
mov eax, dword [esp + 0x44]
mov byte [esp + 0x410], 0x13
cmp eax, ebx
je 0x4542ea
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov ecx, dword [esp + 0x174]
push ecx
call fcn.0045a013
mov byte [esp + 0x414], 0x11
mov edx, dword [esp + 0xc0]
add esp, 4
push edx
mov esi, vtable.CBaseRecordVector.0
push ebx
lea ecx, [esp + 0xbc]
mov dword [esp + 0xbc], esi
call dword [0x47dd70]
mov eax, dword [esp + 0xc0]
push eax
call fcn.0045a013
mov byte [esp + 0x414], 9
mov ecx, dword [esp + 0xac]
add esp, 4
push ecx
push ebx
lea ecx, [esp + 0xa8]
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xa8], esi
call dword [0x47dd70]
mov edx, dword [esp + 0xac]
push edx
call fcn.0045a013
add esp, 4
lea eax, [esp + 0x2ec]
push eax
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], ebx
mov byte [esp + 0x414], 8
call fcn.00441bd0
lea ecx, [esp + 0x138]
push ecx
mov byte [esp + 0x414], 4
call fcn.004414d0
lea edx, [esp + 0x120]
push edx
mov byte [esp + 0x414], 3
call fcn.00454980
lea eax, [esp + 0x21c]
push eax
mov byte [esp + 0x414], 2
call fcn.00454770
mov eax, dword [esp + 0x64]
mov byte [esp + 0x410], 1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x410], bl
mov eax, dword [esp + 0x24]
push eax
push ebx
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], esi
call dword [0x47dd70]
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0045a013
mov dword [esp + 0x414], 0xffffffff
mov edx, dword [esp + 0x54]
add esp, 4
push edx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x4c], esi
push ebx
lea ecx, [esp + 0x50]
call dword [0x47dd70]
mov eax, dword [esp + 0x54]
push eax
call fcn.0045a013
add esp, 4
mov eax, 0x80004005
mov ecx, dword [esp + 0x408]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor ecx, ecx
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], ecx
mov dword [esp + 0x108], 4
mov dword [esp + 0xf8], vtable.CRecordVector_int_.0
mov esi, dword [ebp + 0x10]
mov byte [esp + 0x410], 0x19
xor ebx, ebx
cmp dword [esi + 8], ecx
jle 0x45455a
lea esp, [esp]
mov edx, dword [esi + 0xc]
mov eax, dword [edx + ebx*4]
cmp byte [eax + 0x38], 0
je 0x4544e0
cmp byte [eax + 0x3b], 0
jne 0x4544f6
cmp byte [eax + 0x3a], 0
jne 0x4544f6
mov edx, dword [eax + 0x20]
or edx, dword [eax + 0x24]
jmp 0x4544f4
mov eax, dword [eax]
cmp eax, 0xffffffff
je 0x4544f6
mov edx, dword [ebp + 0xc]
mov edx, dword [edx + 0x70]
mov eax, dword [edx + eax*4]
cmp byte [eax + 0x1c], 0
jne 0x454550
cmp dword [esp + 0x100], ecx
jne 0x454531
cmp ecx, 0x40
mov eax, 1
jl 0x454510
mov eax, ecx
shr eax, 2
jmp 0x45451a
cmp ecx, 8
jl 0x45451a
mov eax, 8
lea edi, [ecx + eax]
lea esi, [esp + 0xf8]
call fcn.0043af00
mov esi, dword [ebp + 0x10]
mov edi, vtable.CBaseRecordVector.0
mov ecx, dword [esp + 0x100]
mov eax, dword [esp + 0x104]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x100]
mov ecx, dword [esp + 0xfc]
inc ebx
cmp ebx, dword [esi + 8]
jl 0x4544c0
push esi
lea eax, [esp + 0xfc]
call fcn.004548a0
mov eax, dword [esp + 0x100]
mov dword [esp + 0x30], 0
test eax, eax
jle 0x45465f
jmp 0x454583
mov esi, dword [ebp + 0x10]
mov edx, dword [esp + 0x104]
mov ecx, dword [esp + 0x30]
mov edx, dword [edx + ecx*4]
mov ecx, dword [esi + 0xc]
mov edi, dword [ecx + edx*4]
xor eax, eax
push 4
lea esi, [esp + 0x80]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
call fcn.0042c310
mov byte [esp + 0x88], 1
mov byte [esp + 0x89], 0
mov byte [esp + 0x8a], 0
mov byte [esp + 0x8b], 0
mov byte [esp + 0x410], 0x1a
cmp byte [edi + 0x39], 0
je 0x454602
lea edx, [esp + 0x1f4]
push edx
lea ebx, [esp + 0x70]
mov esi, edi
call fcn.00451050
add esp, 4
jmp 0x454619
mov ecx, dword [ebp + 0xc]
mov esi, dword [edi]
lea eax, [esp + 0x6c]
push eax
push ecx
lea ebx, [esp + 0x1fc]
call fcn.0044fc70
mov edi, dword [ebp + 0x18]
lea edx, [esp + 0x6c]
push edx
lea esi, [esp + 0x1f8]
call fcn.0044fdd0
mov byte [esp + 0x410], 0x19
mov eax, dword [esp + 0x7c]
push eax
call fcn.0045a013
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x104]
inc ecx
add esp, 4
cmp ecx, eax
mov dword [esp + 0x30], ecx
jl 0x454580
mov edi, vtable.CBaseRecordVector.0
push eax
xor esi, esi
mov byte [esp + 0x414], 4
push esi
lea ecx, [esp + 0x100]
mov dword [esp + 0x100], edi
call dword [0x47dd70]
mov ecx, dword [esp + 0x104]
push ecx
call fcn.0045a013
mov ebx, dword [ebp + 0x18]
add esp, 4
mov dword [esp + 0xfc], esi
mov dword [esp + 0x100], esi
mov dword [esp + 0x104], esi
call fcn.004503e0
lea edx, [esp + 0x120]
push edx
mov byte [esp + 0x414], 3
call fcn.00454980
lea eax, [esp + 0x21c]
push eax
mov byte [esp + 0x414], 2
call fcn.00454770
mov eax, dword [esp + 0x64]
mov byte [esp + 0x410], 1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor ebx, ebx
mov byte [esp + 0x410], bl
mov eax, dword [esp + 0x24]
push eax
push ebx
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], edi
call dword [0x47dd70]
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0045a013
mov dword [esp + 0x414], 0xffffffff
mov edx, dword [esp + 0x54]
add esp, 4
push edx
push ebx
lea ecx, [esp + 0x50]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x50], edi
call dword [0x47dd70]
mov eax, dword [esp + 0x54]
push eax
call fcn.0045a013
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x408]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret