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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x50d11b
mov eax, dword fs:[0]
push eax
sub esp, 0x3f0
push ebx
push esi
push edi
mov eax, dword [0x53a1a4]
xor eax, esp
push eax
lea eax, [esp + 0x400]
mov dword fs:[0], eax
mov ecx, dword [ebp + 0x24]
mov eax, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
mov dword [esp + 0xf4], eax
or eax, ecx
mov dword [esp + 0xf8], ecx
jne 0x4d288f
mov dword [esp + 0xf4], 1
mov dword [esp + 0xf8], eax
mov ebx, dword [ebp + 0xc]
test ebx, ebx
je 0x4d28f5
mov edi, dword [ebx + 0x13c]
mov eax, dword [ebx + 0x138]
mov dword [esp + 0x18c], eax
test edi, edi
ja 0x4d28b1
test eax, eax
jbe 0x4d28f5
mov eax, dword [ebp + 0x24]
cmp byte [eax + 0x21], 0
jne 0x4d28f5
mov esi, dword [ebp + 8]
mov ecx, dword [esi]
mov edx, dword [ecx + 0x10]
push 0
push 0
push 0
push 0
push esi
call edx
test eax, eax
jne 0x4d55e8
mov ecx, dword [ebp + 0x1c]
push eax
mov eax, dword [esp + 0x190]
push edi
push eax
push ecx
mov ecx, esi
call fcn.004d15f0
add esp, 0x10
test eax, eax
jne 0x4d55e8
xor eax, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], 4
mov dword [esp + 0x44], vtable.CRecordVector_int_.0
mov dword [esp + 0x408], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 0xc
mov dword [esp + 0x1c], vtable.CRecordVector_struct_NArchive::N7z::CFolderRepack_.0
mov byte [esp + 0x408], 1
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], eax
mov byte [esp + 0x37], al
cmp ebx, eax
je 0x4d2c0e
mov edx, dword [ebp + 0xc]
mov edi, dword [edx + 0x6c]
lea esi, [esp + 0x44]
call fcn.004bd4b0
mov eax, dword [ebp + 0xc]
xor ebx, ebx
cmp dword [eax + 0x6c], ebx
jle 0x4d29cd
nop
mov ecx, dword [esp + 0x48]
cmp dword [esp + 0x4c], ecx
jne 0x4d29b1
cmp ecx, 0x40
mov eax, 1
jl 0x4d299b
mov eax, ecx
shr eax, 2
jmp 0x4d29a5
cmp ecx, 8
jl 0x4d29a5
mov eax, 8
lea edi, [eax + ecx]
lea esi, [esp + 0x44]
call fcn.004bd4b0
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov eax, dword [ebp + 0xc]
mov dword [ecx + edx*4], 0xffffffff
inc dword [esp + 0x4c]
inc ebx
cmp ebx, dword [eax + 0x6c]
jl 0x4d2980
mov edx, dword [ebp + 0x10]
xor eax, eax
cmp dword [edx + 8], eax
jle 0x4d29f1
mov ecx, dword [edx + 0xc]
mov ecx, dword [ecx + eax*4]
mov ecx, dword [ecx]
cmp ecx, 0xffffffff
je 0x4d29eb
mov esi, dword [esp + 0x50]
mov dword [esi + ecx*4], eax
inc eax
cmp eax, dword [edx + 8]
jl 0x4d29d7
mov edx, dword [ebp + 0xc]
cmp dword [edx + 0x44], 0
mov dword [esp + 0x68], 0
jle 0x4d2bff
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x5c]
mov eax, dword [esp + 0x68]
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 + 0x10], ecx
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], esi
cmp ecx, esi
jbe 0x4d2bea
mov ecx, dword [esp + 0x50]
lea edx, [ecx + eax*4]
mov eax, dword [ebp + 0xc]
mov ebx, dword [eax + 0x70]
sub ebx, ecx
jmp 0x4d2a50
mov ecx, dword [ebx + edx]
cmp byte [ecx + 0x1c], 0
je 0x4d2a86
mov eax, dword [edx]
inc esi
test eax, eax
jl 0x4d2a86
mov edi, dword [ebp + 0x10]
mov edi, dword [edi + 0xc]
mov eax, dword [edi + eax*4]
cmp byte [eax + 0x38], 0
jne 0x4d2a86
mov eax, dword [ecx]
inc dword [esp + 0x38]
add dword [esp + 0x94], eax
mov ecx, dword [ecx + 4]
adc dword [esp + 0x98], ecx
add edx, 4
cmp esi, dword [esp + 0x10]
jb 0x4d2a50
cmp dword [esp + 0x38], 0
je 0x4d2bea
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x48]
mov ecx, dword [esp + 0x68]
mov ebx, dword [eax + ecx*4]
mov edi, dword [ebx + 8]
lea eax, [edi - 1]
test eax, eax
jl 0x4d2ad8
mov edx, dword [ebx + 0xc]
lea ecx, [edx + eax*4]
jmp 0x4d2ac0
mov edx, dword [ecx]
cmp dword [edx], 0x6f10701
jne 0x4d2ad0
cmp dword [edx + 4], 0
je 0x4d2b3f
dec eax
sub ecx, 4
test eax, eax
jge 0x4d2ac0
mov byte [esp + 0x17], 0
xor esi, esi
test edi, edi
jle 0x4d2b0d
mov edx, dword [ebx + 0xc]
mov eax, dword [edx]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
cmp ecx, 0x3030103
jne 0x4d2af9
test eax, eax
je 0x4d2b46
cmp ecx, 0x303011b
jne 0x4d2b05
test eax, eax
je 0x4d2b46
inc esi
add edx, 4
cmp esi, edi
jl 0x4d2ae6
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 0x4d2b60
cmp eax, 0x40
mov ecx, 1
jl 0x4d2b4a
mov ecx, eax
shr ecx, 2
jmp 0x4d2b54
mov byte [esp + 0x17], 1
jmp 0x4d2add
mov al, 1
jmp 0x4d2b0f
cmp eax, 8
jl 0x4d2b54
mov ecx, 8
lea edi, [ecx + eax]
lea esi, [esp + 0x1c]
call fcn.004bd4b0
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
lea ecx, [eax + eax*2]
lea eax, [edx + ecx*4]
mov edx, dword [esp + 0x68]
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 + 0x10]
jne 0x4d2ba0
mov eax, dword [ebp + 0xc]
call fcn.004c4d00
add dword [esp + 0x9c], eax
adc dword [esp + 0xa0], edx
jmp 0x4d2bea
mov ecx, dword [esp + 0x94]
add dword [esp + 0x9c], ecx
mov eax, dword [esp + 0x98]
adc dword [esp + 0xa0], eax
cmp eax, dword [esp + 0x100]
jb 0x4d2bde
ja 0x4d2bd0
cmp ecx, dword [esp + 0xfc]
jbe 0x4d2bde
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x100], eax
cmp byte [esp + 0x17], 0
je 0x4d2bea
mov byte [esp + 0x37], 1
mov eax, dword [esp + 0x68]
mov ecx, dword [ebp + 0xc]
inc eax
cmp eax, dword [ecx + 0x44]
mov dword [esp + 0x68], eax
jl 0x4d2a06
mov edx, dword [ebp + 0xc]
push edx
lea eax, [esp + 0x20]
call fcn.004d5780
xor eax, eax
mov edi, dword [ebp + 0x10]
mov ecx, dword [edi + 8]
xor esi, esi
xor edx, edx
xor ebx, ebx
cmp ecx, eax
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], edx
mov dword [esp + 0x40], ecx
jle 0x4d2ca4
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x38], ecx
jmp 0x4d2c40
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx]
cmp byte [ecx + 0x38], 0
je 0x4d2c8a
mov eax, dword [ecx + 0x20]
add dword [esp + 0x9c], eax
mov ecx, dword [ecx + 0x24]
adc dword [esp + 0xa0], ecx
cmp dword [esp + 0xf4], 1
jne 0x4d2c74
cmp dword [esp + 0xf8], 0
je 0x4d2c7a
add esi, eax
adc edx, ecx
jmp 0x4d2c88
cmp ecx, edx
jb 0x4d2c88
ja 0x4d2c84
cmp eax, esi
jbe 0x4d2c88
mov esi, eax
mov edx, ecx
xor eax, eax
add dword [esp + 0x38], 4
inc ebx
cmp ebx, dword [esp + 0x40]
jl 0x4d2c40
mov dword [esp + 0x98], edx
mov dword [esp + 0x94], esi
mov ecx, dword [esp + 0x100]
cmp ecx, edx
jb 0x4d2cd1
ja 0x4d2cba
cmp dword [esp + 0xfc], esi
jbe 0x4d2cd1
mov esi, dword [esp + 0xfc]
mov edx, ecx
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], edx
cmp edx, eax
ja 0x4d2cf1
jb 0x4d2cdf
cmp esi, 0x10000
jae 0x4d2cf1
mov dword [esp + 0x94], 0x10000
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0xa0]
mov edi, dword [ebp + 0x20]
mov ecx, dword [esp + 0x9c]
mov edx, dword [edi]
mov edx, dword [edx + 0xc]
push eax
push ecx
push edi
call edx
mov esi, eax
xor ebx, ebx
cmp esi, ebx
je 0x4d2d91
mov byte [esp + 0x408], bl
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 [0x5213a4]
mov ecx, dword [esp + 0x28]
push ecx
call fcn.004ea5cf
mov dword [esp + 0x40c], 0xffffffff
mov edx, dword [esp + 0x50]
add esp, 4
push edx
push ebx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x4c], edi
call dword [0x5213a4]
mov eax, dword [esp + 0x50]
push eax
call fcn.004ea5cf
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x400]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x38
call fcn.004ea4e3
add esp, 4
cmp eax, ebx
je 0x4d2dd0
mov dword [eax + 4], ebx
mov dword [eax], vtable.CLocalProgress.0
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x28], ebx
mov dword [eax + 0x2c], ebx
mov dword [eax + 0x20], ebx
mov dword [eax + 0x24], ebx
mov dword [eax + 0x18], ebx
mov dword [eax + 0x1c], ebx
mov ebx, eax
mov byte [eax + 0x31], 1
mov byte [eax + 0x30], 1
mov dword [esp + 0x3c], ebx
jmp 0x4d2dd4
mov dword [esp + 0x3c], ebx
mov dword [esp + 0xfc], ebx
test ebx, ebx
je 0x4d2de7
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
push ebx
call edx
lea esi, [ebx + 0xc]
mov byte [esp + 0x408], 2
mov eax, dword [esi]
test eax, eax
je 0x4d2e06
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 0x4d2e1d
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 0x521a88
push eax
call edx
lea eax, [esp + 0x214]
push eax
mov byte [ebx + 0x10], 1
call fcn.004d25f0
xor edi, edi
mov byte [esp + 0x408], 3
cmp dword [esp + 0x24], edi
je 0x4d2f0f
lea esi, [esp + 0x214]
call fcn.004b09c0
mov esi, eax
cmp esi, edi
je 0x4d2f0f
lea ecx, [esp + 0x214]
push ecx
mov byte [esp + 0x40c], 2
call fcn.004d5600
mov byte [esp + 0x408], 1
mov edx, dword [ebx]
mov eax, dword [edx + 8]
push ebx
call eax
mov byte [esp + 0x408], 0
mov ecx, dword [esp + 0x24]
push ecx
xor ebx, ebx
mov edi, vtable.CBaseRecordVector.0
push ebx
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], edi
call dword [0x5213a4]
mov edx, dword [esp + 0x28]
push edx
call fcn.004ea5cf
mov dword [esp + 0x40c], 0xffffffff
mov eax, dword [esp + 0x50]
add esp, 4
push eax
push ebx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x4c], edi
call dword [0x5213a4]
mov ecx, dword [esp + 0x50]
push ecx
call fcn.004ea5cf
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x400]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, 4
mov dword [esp + 0x11c], edi
mov dword [esp + 0x120], edi
mov dword [esp + 0x124], edi
mov dword [esp + 0x128], esi
mov dword [esp + method.CObjectVector_struct_NArchive::N7z::CSolidGroup_.virtual_0], vtable.CObjectVector_struct_NArchive::N7z::CSolidGroup_.0
mov bl, 5
mov edi, esi
nop
xor eax, eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], edi
mov dword [esp + 0xa4], vtable.CRecordVector_unsigned_int_.0
lea edx, [esp + 0xa4]
push edx
lea ecx, [esp + 0x11c]
mov byte [esp + 0x40c], bl
call fcn.004d5890
mov byte [esp + 0x408], 4
mov eax, dword [esp + 0xac]
push eax
push 0
lea ecx, [esp + 0xac]
mov dword [esp + 0xac], vtable.CBaseRecordVector.0
call dword [0x5213a4]
mov ecx, dword [esp + 0xb0]
push ecx
call fcn.004ea5cf
add esp, 4
sub esi, 1
jne 0x4d2f40
mov eax, dword [ebp + 0x24]
mov dl, byte [eax + 8]
mov eax, dword [eax]
cmp dword [eax + 8], 1
mov byte [esp + 0x17], dl
mov dword [esp + 0x40], eax
jne 0x4d2fe2
cmp dword [eax + 0x1c], esi
je 0x4d2fe7
mov byte [esp + 0x17], 0
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 8]
xor edi, edi
mov dword [esp + 0x18], edi
test eax, eax
jle 0x4d311c
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + edi*4]
cmp byte [eax + 0x38], 0
je 0x4d310e
cmp byte [eax + 0x3b], 0
jne 0x4d310e
cmp byte [eax + 0x3a], 0
jne 0x4d310e
mov edx, dword [eax + 0x20]
or edx, dword [eax + 0x24]
je 0x4d310e
xor bl, bl
cmp byte [esp + 0x17], bl
je 0x4d30aa
lea edx, [eax + 0x28]
mov eax, dword [edx + 4]
test eax, eax
je 0x4d30aa
mov ecx, dword [edx]
cmp word [ecx + eax*2 - 2], 0x2e
lea eax, [ecx + eax*2 - 2]
je 0x4d305d
jmp 0x4d3050
cmp eax, ecx
je 0x4d30aa
sub eax, 2
cmp word [eax], 0x2e
jne 0x4d3050
sub eax, ecx
sar eax, 1
test eax, eax
jl 0x4d30aa
inc eax
lea esi, [esp + 0x104]
call fcn.004b4730
mov edi, eax
xor esi, esi
mov eax, dword [esi + 0x53c310]
push eax
mov eax, dword [edi]
push eax
call fcn.004bd400
add esp, 8
test eax, eax
je 0x4d30e5
add esi, 4
cmp esi, 0x14
jb 0x4d3076
xor bl, bl
mov ecx, dword [esp + 0x104]
push ecx
call fcn.004ea5cf
mov edi, dword [esp + 0x1c]
add esp, 4
mov edx, dword [esp + 0x40]
movzx eax, byte [edx + 0x2c]
mov edx, dword [esp + 0x124]
neg eax
sbb eax, eax
and eax, 2
xor ecx, ecx
test bl, bl
setne cl
add eax, ecx
mov esi, dword [edx + eax*4]
mov eax, dword [esi + 4]
cmp dword [esi + 8], eax
jne 0x4d30ff
cmp eax, 0x40
mov ecx, 1
jl 0x4d30e9
mov ecx, eax
shr ecx, 2
jmp 0x4d30f3
mov bl, 1
jmp 0x4d3096
cmp eax, 8
jl 0x4d30f3
mov ecx, 8
lea edi, [eax + ecx]
call fcn.004bd4b0
mov edi, dword [esp + 0x18]
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 + 0x18], edi
jl 0x4d2ffb
cmp byte [esp + 0x37], 0
mov dword [esp + 0x188], 0
je 0x4d351d
push 0x14
call fcn.004ea4e3
mov esi, eax
add esp, 4
mov dword [esp + 0x90], esi
mov byte [esp + 0x408], 6
test esi, esi
je 0x4d31c3
xor ebx, ebx
xor ecx, ecx
mov eax, 4
mov edx, 2
mul edx
seto cl
mov dword [esi + 4], ebx
mov dword [esi], vtable.NArchive::N7z::CCryptoGetTextPassword.0
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], ebx
neg ecx
or ecx, eax
push ecx
call fcn.004e8dab
add esp, 4
cmp dword [esi + 0x10], ebx
mov edi, eax
jle 0x4d31ae
xor eax, eax
cmp dword [esi + 0xc], ebx
jle 0x4d31a2
mov ecx, dword [esi + 8]
mov dx, word [ecx + eax*2]
mov word [edi + eax*2], dx
inc eax
cmp eax, dword [esi + 0xc]
jl 0x4d3191
mov eax, dword [esi + 8]
push eax
call fcn.004ea5cf
add esp, 4
mov eax, dword [esi + 0xc]
xor ecx, ecx
mov dword [esi + 8], edi
mov word [edi + eax*2], cx
mov dword [esi + 0x10], 4
jmp 0x4d31c7
xor esi, esi
xor ebx, ebx
mov byte [esp + 0x408], 4
mov dword [esp + 0x188], esi
cmp esi, ebx
je 0x4d31e2
mov edx, dword [esi]
mov eax, dword [edx + 4]
push esi
call eax
mov eax, dword [esp + 0x24c]
cmp eax, ebx
je 0x4d31f5
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov dword [esp + 0x24c], esi
cmp byte [eax + 0x2c], 0
je 0x4d32ad
add eax, 0x30
add esi, 8
mov dword [esp + 0x10], eax
cmp eax, esi
je 0x4d351d
mov ecx, dword [esi]
xor edx, edx
mov dword [esi + 4], 0
mov word [ecx], dx
mov edi, eax
mov ebx, dword [edi + 4]
inc ebx
cmp ebx, dword [esi + 8]
je 0x4d328d
xor ecx, ecx
mov eax, ebx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004e8dab
add esp, 4
cmp dword [esi + 8], 0
mov edi, eax
jle 0x4d327b
xor eax, eax
cmp dword [esi + 4], eax
jle 0x4d3270
mov ecx, dword [esi]
mov dx, word [ecx + eax*2]
mov word [edi + eax*2], dx
inc eax
cmp eax, dword [esi + 4]
jl 0x4d3260
mov eax, dword [esi]
push eax
call fcn.004ea5cf
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 + 0x10]
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 0x4d3291
mov edx, dword [edi + 4]
mov dword [esi + 4], edx
jmp 0x4d351d
mov eax, dword [ebp + 0x28]
cmp eax, ebx
jne 0x4d3377
lea eax, [esp + 0x118]
push eax
mov byte [esp + 0x40c], 3
call fcn.004d5800
lea ecx, [esp + 0x214]
push ecx
mov byte [esp + 0x40c], 2
call fcn.004d5600
mov eax, dword [esp + 0x3c]
mov byte [esp + 0x408], 1
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov byte [esp + 0x408], 0
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 [0x5213a4]
mov edx, dword [esp + 0x28]
push edx
call fcn.004ea5cf
mov dword [esp + 0x40c], 0xffffffff
mov eax, dword [esp + 0x50]
add esp, 4
push eax
push ebx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x4c], esi
call dword [0x5213a4]
mov ecx, dword [esp + 0x50]
push ecx
call fcn.004ea5cf
add esp, 4
mov eax, 0x80004001
mov ecx, dword [esp + 0x400]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x38], ebx
mov byte [esp + 0x408], 7
mov edx, dword [eax]
mov edx, dword [edx + 0xc]
lea ecx, [esp + 0x38]
push ecx
push eax
call edx
mov edi, eax
cmp edi, ebx
je 0x4d3461
mov eax, dword [esp + 0x38]
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
lea ecx, [esp + 0x118]
push ecx
mov byte [esp + 0x40c], 3
call fcn.004d5800
lea edx, [esp + 0x214]
push edx
mov byte [esp + 0x40c], 2
call fcn.004d5600
mov eax, dword [esp + 0x3c]
mov byte [esp + 0x408], 1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x408], 0
mov eax, dword [esp + 0x24]
push eax
mov esi, vtable.CBaseRecordVector.0
push ebx
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], esi
call dword [0x5213a4]
mov ecx, dword [esp + 0x28]
push ecx
call fcn.004ea5cf
mov dword [esp + 0x40c], 0xffffffff
mov edx, dword [esp + 0x50]
add esp, 4
push edx
push ebx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x4c], esi
call dword [0x5213a4]
mov eax, dword [esp + 0x50]
push eax
call fcn.004ea5cf
add esp, 4
mov eax, edi
mov ecx, dword [esp + 0x400]
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 ecx, dword [esi + 8]
xor eax, eax
mov dword [esi + 0xc], 0
xor ebx, ebx
mov word [ecx], ax
mov dword [esp + 0x40], edx
cmp word [edx], bx
je 0x4d3488
nop
inc ebx
cmp word [edx + ebx*2], 0
jne 0x4d3480
lea eax, [ebx + 1]
cmp eax, dword [esi + 0x10]
je 0x4d34f3
xor ecx, ecx
lea edi, [ebx + 1]
mov eax, edi
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004e8dab
add esp, 4
cmp dword [esi + 0x10], 0
mov edi, eax
jle 0x4d34dd
xor eax, eax
cmp dword [esi + 0xc], eax
jle 0x4d34d1
lea ecx, [ecx]
mov ecx, dword [esi + 8]
mov dx, word [ecx + eax*2]
mov word [edi + eax*2], dx
inc eax
cmp eax, dword [esi + 0xc]
jl 0x4d34c0
mov eax, dword [esi + 8]
push eax
call fcn.004ea5cf
add esp, 4
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x40]
xor ecx, ecx
mov dword [esi + 8], edi
mov word [edi + eax*2], cx
lea eax, [ebx + 1]
mov dword [esi + 0x10], eax
mov ecx, dword [esi + 8]
movzx eax, word [edx]
mov word [ecx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x4d34f6
mov byte [esp + 0x408], 4
mov edx, dword [esp + 0x38]
push edx
mov dword [esi + 0xc], ebx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov edi, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x1c]
mov esi, edi
call fcn.004cf190
mov esi, eax
xor ebx, ebx
cmp esi, ebx
je 0x4d35f1
lea eax, [esp + 0x118]
push eax
mov byte [esp + 0x40c], 3
call fcn.004d5800
lea ecx, [esp + 0x214]
push ecx
mov byte [esp + 0x40c], 2
call fcn.004d5600
mov eax, dword [esp + 0x3c]
mov byte [esp + 0x408], 1
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov byte [esp + 0x408], bl
mov ecx, dword [esp + 0x24]
push ecx
mov edi, vtable.CBaseRecordVector.0
push ebx
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], edi
call dword [0x5213a4]
mov edx, dword [esp + 0x28]
push edx
call fcn.004ea5cf
mov dword [esp + 0x40c], 0xffffffff
mov eax, dword [esp + 0x50]
add esp, 4
push eax
push ebx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x4c], edi
call dword [0x5213a4]
mov ecx, dword [esp + 0x50]
push ecx
call fcn.004ea5cf
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x400]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 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 0x4d4b5d
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x38], ebx
mov dword [eax + 0x18], ebx
mov dword [eax + 0x1c], ebx
mov dword [esp + 0x68], ebx
mov edi, edi
mov ecx, dword [esp + 0x124]
mov edx, dword [esp + 0x68]
mov eax, dword [ecx + edx*4]
lea ecx, [esp + 0x130]
push ecx
mov dword [esp + 0x44], eax
call fcn.004c21a0
test byte [esp + 0x68], 1
mov eax, dword [ebp + 0x24]
mov byte [esp + 0x408], 8
je 0x4d366e
movzx ecx, byte [eax + 9]
lea edx, [esp + 0x130]
push edx
mov edx, dword [eax]
push ecx
push edx
call fcn.004d1de0
add esp, 0xc
jmp 0x4d37fc
mov ecx, dword [esp + 0x138]
mov esi, dword [eax]
mov edx, dword [esp + 0x130]
mov eax, dword [edx + 4]
push ecx
push ebx
lea ecx, [esp + 0x138]
mov dword [esp + 0x60], esi
call eax
mov esi, dword [esi + 8]
mov ecx, dword [esp + 0x138]
lea edi, [ecx + esi]
mov dword [esp + 0x10], esi
lea esi, [esp + 0x130]
call fcn.004bd4b0
mov edi, dword [esp + 0x58]
xor esi, esi
cmp dword [esp + 0x10], ebx
jle 0x4d36d9
lea esp, [esp]
mov edx, dword [edi + 0xc]
mov ecx, dword [edx + esi*4]
lea edx, [esp + 0x130]
call fcn.004c4260
inc esi
cmp esi, dword [esp + 0x10]
jl 0x4d36c0
mov eax, dword [esp + 0x14c]
mov edx, dword [esp + 0x144]
push eax
mov eax, dword [edx + 4]
push ebx
lea ecx, [esp + 0x14c]
call eax
lea ecx, [edi + 0x14]
push ecx
lea eax, [esp + 0x148]
call fcn.004c4b50
mov edx, dword [edi + 0x28]
lea esi, [edi + 0x30]
mov dword [esp + 0x158], edx
mov al, byte [edi + 0x2c]
lea ecx, [esp + 0x160]
mov byte [esp + 0x15c], al
mov dword [esp + 0x10], esi
cmp esi, ecx
je 0x4d37fc
mov eax, dword [esp + 0x160]
xor edx, edx
mov dword [esp + 0x164], ebx
mov word [eax], dx
mov edi, dword [esi + 4]
inc edi
cmp edi, dword [esp + 0x168]
je 0x4d37d8
xor ecx, ecx
mov eax, edi
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004e8dab
add esp, 4
cmp dword [esp + 0x168], ebx
mov esi, eax
jle 0x4d37b9
xor eax, eax
cmp dword [esp + 0x164], ebx
jle 0x4d37a9
jmp 0x4d3790
mov ecx, dword [esp + 0x160]
mov dx, word [ecx + eax*2]
mov word [esi + eax*2], dx
inc eax
cmp eax, dword [esp + 0x164]
jl 0x4d3790
mov eax, dword [esp + 0x160]
push eax
call fcn.004ea5cf
add esp, 4
mov edx, dword [esp + 0x164]
mov dword [esp + 0x160], esi
xor ecx, ecx
mov word [esi + edx*2], cx
mov esi, dword [esp + 0x10]
mov dword [esp + 0x168], edi
mov edx, dword [esi]
mov ecx, dword [esp + 0x160]
movzx eax, word [edx]
mov word [ecx], ax
add ecx, 2
add edx, 2
cmp ax, bx
jne 0x4d37e1
mov eax, dword [esi + 4]
mov dword [esp + 0x164], eax
mov ecx, dword [esp + 0x68]
shr ecx, 1
test cl, 1
je 0x4d3916
cmp byte [esp + 0x15c], bl
jne 0x4d3930
mov esi, dword [esp + 0x188]
cmp esi, ebx
je 0x4d390c
add esi, 8
lea edx, [esp + 0x160]
mov dword [esp + 0x10], esi
cmp esi, edx
je 0x4d390c
mov ecx, dword [esp + 0x160]
xor eax, eax
mov dword [esp + 0x164], ebx
mov word [ecx], ax
mov edi, dword [esi + 4]
inc edi
cmp edi, dword [esp + 0x168]
je 0x4d38e8
xor ecx, ecx
mov eax, edi
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004e8dab
add esp, 4
cmp dword [esp + 0x168], ebx
mov esi, eax
jle 0x4d38c9
xor eax, eax
cmp dword [esp + 0x164], ebx
jle 0x4d38b9
jmp 0x4d38a0
mov ecx, dword [esp + 0x160]
mov dx, word [ecx + eax*2]
mov word [esi + eax*2], dx
inc eax
cmp eax, dword [esp + 0x164]
jl 0x4d38a0
mov eax, dword [esp + 0x160]
push eax
call fcn.004ea5cf
add esp, 4
mov edx, dword [esp + 0x164]
mov dword [esp + 0x160], esi
xor ecx, ecx
mov word [esi + edx*2], cx
mov esi, dword [esp + 0x10]
mov dword [esp + 0x168], edi
mov edx, dword [esi]
mov ecx, dword [esp + 0x160]
movzx eax, word [edx]
mov word [ecx], ax
add ecx, 2
add edx, 2
cmp ax, bx
jne 0x4d38f1
mov eax, dword [esi + 4]
mov dword [esp + 0x164], eax
mov byte [esp + 0x15c], 1
jmp 0x4d3930
mov edx, dword [esp + 0x160]
xor ecx, ecx
mov byte [esp + 0x15c], bl
mov dword [esp + 0x164], ebx
mov word [edx], cx
lea eax, [esp + 0x130]
push eax
lea ecx, [esp + 0x2e8]
push ecx
call fcn.004c3720
mov byte [esp + 0x408], 9
mov edx, dword [esp + 0x38]
cmp edx, dword [esp + 0x24]
jge 0x4d4265
mov eax, edx
lea eax, [eax + eax*2]
add eax, eax
add eax, eax
mov dword [esp + 0x58], eax
jmp 0x4d3974
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x68]
cmp dword [eax + ecx + 4], edx
jne 0x4d4265
mov edx, dword [eax + ecx]
mov edi, dword [ebp + 0xc]
lea eax, [eax + ecx + 8]
mov ecx, dword [edi + 0x5c]
lea esi, [edx*4]
mov dword [esp + 0x90], eax
mov eax, dword [eax]
mov dword [esp + 0x64], esi
cmp eax, dword [esi + ecx]
jne 0x4d3b2a
mov eax, edi
call fcn.004c4d00
mov ecx, dword [edi + 0x17c]
mov dword [esp + 0x178], edx
mov edx, dword [edi + 0x190]
mov edx, dword [esi + edx]
mov dword [esp + 0x174], eax
mov eax, dword [ecx + edx*8]
mov ecx, dword [ecx + edx*8 + 4]
add eax, dword [edi + 0x148]
mov edx, dword [ebp + 0x14]
adc ecx, dword [edi + 0x14c]
mov edx, dword [edx + 0x50]
push ebx
push ebx
push ecx
mov dword [esp + 0x1c], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx]
mov ecx, dword [edx + 0x10]
push eax
mov eax, dword [ebp + 8]
push eax
call ecx
cmp eax, ebx
jne 0x4d3a2c
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x178]
mov ecx, dword [esp + 0x174]
push edx
mov edx, dword [esp + 0x14]
push eax
push ecx
mov ecx, dword [ebp + 8]
push edx
call fcn.004d15f0
add esp, 0x10
mov dword [esp + 0x10], eax
cmp eax, ebx
jne 0x4d4a12
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x174]
add dword [eax + 0x18], ecx
mov edx, dword [esp + 0x178]
mov dword [esp + 0x10], ebx
adc dword [eax + 0x1c], edx
mov eax, dword [edi + 0x48]
mov eax, dword [esi + eax]
cmp dword [eax + 0x30], ebx
mov ecx, dword [edi + 0x190]
mov esi, dword [esi + ecx]
mov dword [esp + 0x5c], eax
jle 0x4d3b15
lea edx, [esi*8]
mov dword [esp + 0x30], edx
mov ecx, edx
mov eax, dword [edi + 0xc]
mov edx, dword [ecx + eax]
mov eax, dword [ecx + eax + 4]
mov esi, dword [ebp + 0x18]
mov dword [esp + 0x190], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x18c], edx
cmp dword [esi + 8], eax
jne 0x4d3ac6
cmp eax, 0x40
mov ecx, 1
jl 0x4d3ab1
mov ecx, eax
shr ecx, 2
jmp 0x4d3abb
cmp eax, 8
jl 0x4d3abb
mov ecx, 8
lea edi, [ecx + eax]
call fcn.004bd4b0
mov edi, dword [ebp + 0xc]
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x18c]
mov dword [eax + ecx*8], edx
mov edx, dword [esp + 0x190]
mov dword [eax + ecx*8 + 4], edx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x5c]
inc dword [esi + 8]
inc eax
add ecx, 8
cmp eax, dword [edx + 0x30]
mov dword [esp + 0x10], eax
mov dword [esp + 0x30], ecx
jl 0x4d3a7d
mov eax, edx
push eax
lea ecx, [esi + 0x3c]
call fcn.004ce600
jmp 0x4d4018
mov eax, dword [esp + 0x5c]
mov esi, dword [ebp + 0x18]
push eax
lea ecx, [esi + 0x3c]
call fcn.004ce600
jmp 0x4d4018
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov esi, dword [sym.imp.KERNEL32.dll_CreateEventW]
push ebx
push 1
push 1
push ebx
call esi
mov dword [esp + 0x6c], eax
cmp eax, ebx
jne 0x4d3b5d
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
jne 0x4d3b89
mov eax, 1
jmp 0x4d3b89
push ebx
push ebx
push 1
push ebx
call esi
mov dword [esp + 0x70], eax
cmp eax, ebx
je 0x4d3b4c
push ebx
push ebx
push 1
push ebx
call esi
mov dword [esp + 0x74], eax
cmp eax, ebx
jne 0x4d3b93
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
je 0x4d49e5
mov esi, eax
cmp esi, ebx
jne 0x4d49ea
mov dword [esp + 0x18], ebx
mov dword [esp + 0x30], ebx
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x34]
push edx
lea esi, [esp + 0x74]
mov byte [esp + 0x410], 0xc
call fcn.004b03c0
xor esi, esi
mov dword [esp + 0xd0], esi
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xdc], 1
mov dword [esp + 0xcc], vtable.CRecordVector_bool_.0
mov ecx, dword [esp + 0x64]
mov byte [esp + 0x408], 0xd
mov eax, dword [edi + 0x5c]
mov eax, dword [ecx + eax]
mov edx, dword [edi + 0x1a4]
mov ecx, dword [ecx + edx]
mov dword [esp + 0x10], eax
mov dword [esp + 0x5c], ebx
cmp eax, ebx
jbe 0x4d3cc3
lea eax, [ecx*4]
mov dword [esp + 0x60], eax
mov ecx, eax
jmp 0x4d3c27
mov esi, dword [esp + 0xd0]
mov edx, dword [edi + 0x70]
mov eax, dword [ecx + edx]
mov byte [esp + 0x37], bl
cmp byte [eax + 0x1c], bl
je 0x4d3c58
mov eax, dword [esp + 0x50]
mov eax, dword [ecx + eax]
inc dword [esp + 0x5c]
cmp eax, ebx
jl 0x4d3c58
mov edx, dword [ebp + 0x10]
mov edx, dword [edx + 0xc]
mov eax, dword [edx + eax*4]
cmp byte [eax + 0x38], bl
jne 0x4d3c58
mov byte [esp + 0x37], 1
cmp dword [esp + 0xd4], esi
jne 0x4d3c92
cmp esi, 0x40
mov eax, 1
jl 0x4d3c72
mov eax, esi
shr eax, 2
jmp 0x4d3c7c
cmp esi, 8
jl 0x4d3c7c
mov eax, 8
lea edi, [eax + esi]
lea esi, [esp + 0xcc]
call fcn.004bd4b0
mov edi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0xd8]
mov esi, dword [esp + 0xd4]
mov dl, byte [esp + 0x37]
mov byte [eax + esi], dl
mov eax, dword [esp + 0x5c]
inc dword [esp + 0xd4]
add ecx, 4
mov dword [esp + 0x60], ecx
cmp eax, dword [esp + 0x10]
jb 0x4d3c20
mov eax, dword [edi + 0x1a4]
add eax, dword [esp + 0x64]
mov esi, dword [esp + 0x230]
mov eax, dword [eax]
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0xcc]
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], ecx
cmp eax, ebx
je 0x4d3cfa
mov edx, dword [eax]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0x18]
cmp ecx, ebx
je 0x4d3d0d
mov edx, dword [ecx]
mov eax, dword [edx + 8]
push ecx
call eax
mov eax, dword [esp + 0x18]
mov dword [esi + 0x18], eax
mov eax, esi
mov dword [esi + 0x20], ebx
mov byte [esi + 0x24], bl
call fcn.004d2440
mov esi, eax
cmp esi, ebx
jne 0x4d4ba7
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x4d3d3b
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x18], ebx
mov esi, dword [ebp + 8]
cmp esi, ebx
je 0x4d3d4a
mov eax, dword [esi]
mov ecx, dword [eax + 4]
push esi
call ecx
mov eax, dword [esp + 0x22c]
cmp eax, ebx
je 0x4d3d5d
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov ecx, dword [edi + 0x48]
mov eax, dword [esp + 0x64]
mov dword [esp + 0x22c], esi
mov edx, dword [eax + ecx]
mov ecx, dword [edi + 0x190]
add eax, ecx
mov ecx, dword [edi + 0x17c]
mov dword [esp + 0x248], edx
mov edx, dword [eax]
mov esi, dword [ecx + edx*8]
mov edx, dword [ecx + edx*8 + 4]
add esi, dword [edi + 0x148]
mov ecx, dword [edi + 0xc]
adc edx, dword [edi + 0x14c]
mov dword [esp + 0x23c], esi
mov dword [esp + 0x240], edx
mov eax, dword [eax]
lea edx, [ecx + eax*8]
mov eax, dword [esp + 0x218]
push eax
mov dword [esp + 0x248], edx
mov byte [esp + 0x228], bl
call dword [sym.imp.KERNEL32.dll_SetEvent]
cmp eax, ebx
jne 0x4d3dd4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp + 0x18]
mov edi, dword [ecx + 8]
mov edx, 4
mov eax, 8
mov dword [esp + 0x198], ebx
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x1a0], ebx
mov dword [esp + 0x1a4], edx
mov dword [esp + method.CObjectVector_struct_NArchive::N7z::CCoderInfo_.virtual_0], vtable.CObjectVector_struct_NArchive::N7z::CCoderInfo_.0
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x1b0], ebx
mov dword [esp + 0x1b4], ebx
mov dword [esp + 0x1b8], eax
mov dword [esp + method.CBaseRecordVector.virtual_0], vtable.CRecordVector_struct_NArchive::N7z::CBindPair_.0
mov dword [esp + 0x1c0], ebx
mov dword [esp + 0x1c4], ebx
mov dword [esp + 0x1c8], ebx
mov dword [esp + 0x1cc], edx
mov dword [esp + method.CBaseRecordVector.virtual_0], vtable.CRecordVector_unsigned_int_.0
mov dword [esp + 0x1d4], ebx
mov dword [esp + 0x1d8], ebx
mov dword [esp + 0x1dc], ebx
mov dword [esp + 0x1e0], eax
mov dword [esp + method.CBaseRecordVector.virtual_0], vtable.CRecordVector_unsigned_long_long_unsigned___int64__.0
mov byte [esp + 0x1e8], bl
mov esi, dword [esp + 0x3c]
mov edx, dword [ebp + 0x14]
push esi
push ecx
mov byte [esp + 0x410], 0xe
mov eax, dword [edx + 0x50]
mov edx, dword [esp + 0x38]
push eax
lea eax, [esp + 0x1a0]
push eax
lea ecx, [esp + 0xa4]
push ecx
push edx
lea eax, [esp + 0x2fc]
push eax
call fcn.004c2950
mov dword [esp + 0x10], eax
cmp eax, ebx
jne 0x4d4cc8
mov ecx, dword [esp + 0x21c]
push 0xffffffffffffffff
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [esp + 0x228]
cmp eax, ebx
jne 0x4d4e95
mov ecx, dword [ebp + 0x18]
cmp edi, dword [ecx + 8]
jge 0x4d3f07
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 0x4d3ef1
lea edi, [esp + 0x194]
call fcn.004c4ca0
mov ecx, dword [esp + 0x3c]
add dword [ecx + 0x20], eax
adc dword [ecx + 0x24], edx
mov ecx, edi
push ecx
mov ecx, dword [ebp + 0x18]
add ecx, 0x3c
call fcn.004ce600
mov edx, edi
push edx
mov byte [esp + 0x40c], 0xd
call fcn.004c8d60
mov byte [esp + 0x408], 0xc
mov eax, dword [esp + 0xd4]
push eax
push ebx
lea ecx, [esp + 0xd4]
mov dword [esp + 0xd4], vtable.CBaseRecordVector.0
call dword [0x5213a4]
mov ecx, dword [esp + 0xd8]
push ecx
call fcn.004ea5cf
mov byte [esp + 0x40c], 0xb
mov eax, dword [esp + 0x34]
add esp, 4
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], ebx
cmp eax, ebx
je 0x4d3fa1
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov byte [esp + 0x408], 0xa
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x4d3fb9
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x408], 9
mov eax, dword [esp + 0x74]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp eax, ebx
je 0x4d3fde
push eax
call esi
test eax, eax
jne 0x4d3fde
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4d3fe2
mov dword [esp + 0x74], ebx
mov eax, dword [esp + 0x70]
cmp eax, ebx
je 0x4d3ff9
push eax
call esi
test eax, eax
jne 0x4d3ff9
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4d3ffd
mov dword [esp + 0x70], ebx
mov eax, dword [esp + 0x6c]
cmp eax, ebx
je 0x4d4012
push eax
call esi
test eax, eax
jne 0x4d4012
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, dword [ebp + 0x18]
mov edi, dword [ebp + 0xc]
mov eax, dword [esp + 0x90]
mov ecx, dword [eax]
push ecx
lea eax, [esi + 0x50]
call fcn.004ce810
mov edx, dword [edi + 0x5c]
mov ecx, dword [esp + 0x64]
mov eax, dword [ecx + edx]
mov edx, dword [edi + 0x1a4]
mov ecx, dword [ecx + edx]
mov dword [esp + 0x10], eax
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x30], ecx
cmp eax, ebx
jbe 0x4d424d
jmp 0x4d4060
push 4
lea esi, [esp + 0x80]
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
call fcn.004ae5d0
mov byte [esp + 0x88], 1
mov byte [esp + 0x89], bl
mov byte [esp + 0x8a], bl
mov byte [esp + 0x8b], bl
lea edx, [esp + 0x6c]
push edx
mov byte [esp + 0x40c], 0xf
mov esi, dword [esp + 0x34]
push edi
lea ebx, [esp + 0x1f4]
call fcn.004d0e90
xor ebx, ebx
cmp byte [esp + 0x88], bl
je 0x4d4224
mov eax, dword [esp + 0x50]
inc dword [esp + 0x5c]
mov ecx, esi
mov eax, dword [eax + ecx*4]
cmp eax, ebx
jl 0x4d4224
mov edx, dword [ebp + 0x10]
mov ecx, dword [edx + 0xc]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x90], eax
cmp byte [eax + 0x38], bl
jne 0x4d4224
cmp byte [eax + 0x39], bl
je 0x4d420d
push 4
lea esi, [esp + 0xe0]
mov dword [esp + 0xe0], ebx
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xe8], ebx
call fcn.004ae5d0
mov byte [esp + 0xe8], 1
mov byte [esp + 0xe9], bl
mov byte [esp + 0xea], bl
mov byte [esp + 0xeb], bl
lea eax, [esp + 0x1ec]
mov byte [esp + 0x408], 0x10
mov esi, dword [esp + 0x90]
push eax
lea ebx, [esp + 0xd0]
call fcn.004d2120
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x7c]
mov bl, byte [esp + 0x8e]
mov dword [esp + 0xd0], ecx
movzx ecx, byte [esp + 0x8c]
mov dword [esp + 0xd4], edx
mov edx, dword [esp + 0xd8]
mov dword [esp + 0xdc], eax
add esp, 4
lea edi, [esp + 0xdc]
lea eax, [esp + 0x7c]
mov byte [esp + 0xea], bl
mov byte [esp + 0xe8], cl
mov dword [esp + 0x74], edx
call fcn.004b46b0
mov al, byte [esp + 0xe8]
movzx ecx, byte [esp + 0xe9]
mov dl, byte [esp + 0xeb]
mov byte [esp + 0x88], al
mov byte [esp + 0x408], 0xf
mov eax, dword [esp + 0xdc]
push eax
mov byte [esp + 0x8d], cl
mov byte [esp + 0x8e], bl
mov byte [esp + 0x8f], dl
call fcn.004ea5cf
add esp, 4
mov edi, dword [ebp + 0x18]
lea ecx, [esp + 0x6c]
push ecx
lea esi, [esp + 0x1f0]
call fcn.004d0ff0
mov edi, dword [ebp + 0xc]
mov byte [esp + 0x408], 9
mov edx, dword [esp + 0x7c]
push edx
call fcn.004ea5cf
mov eax, dword [esp + 0x14]
inc dword [esp + 0x34]
add esp, 4
xor ebx, ebx
cmp dword [esp + 0x5c], eax
jb 0x4d4060
mov eax, dword [esp + 0x38]
add dword [esp + 0x58], 0xc
inc eax
cmp eax, dword [esp + 0x24]
mov dword [esp + 0x38], eax
jl 0x4d3970
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx + 8]
mov dword [esp + 0x60], eax
cmp eax, ebx
jne 0x4d42a8
lea edx, [esp + 0x2e4]
push edx
mov byte [esp + 0x40c], 8
call fcn.004c3fc0
lea eax, [esp + 0x130]
push eax
mov byte [esp + 0x40c], 4
call fcn.004c3810
mov esi, vtable.CBaseRecordVector.0
jmp 0x4d49a3
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], 0x14
mov dword [esp + 0xa4], 0x521924
mov edi, dword [esp + 0x60]
lea esi, [esp + 0xa4]
mov byte [esp + 0x408], 0x11
call fcn.004bd4b0
cmp dword [esp + 0xf8], ebx
ja 0x4d42fe
cmp dword [esp + 0xf4], 1
jbe 0x4d4308
mov byte [esp + 0x12c], 1
jmp 0x4d430f
mov byte [esp + 0x12c], bl
xor esi, esi
cmp edi, ebx
jle 0x4d4375
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx + 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 + 0x12c]
mov eax, dword [eax]
push edx
push eax
lea edx, [esp + 0xd4]
push edx
call fcn.004d1b10
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 + 0xb8]
call fcn.004d5a00
inc esi
cmp esi, edi
jl 0x4d4315
lea ecx, [esp + 0x12c]
push ecx
lea eax, [esp + 0xa8]
call fcn.004d5a70
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], 4
mov dword [esp + 0xb8], vtable.CRecordVector_unsigned_int_.0
mov edi, dword [esp + 0x60]
lea esi, [esp + 0xb8]
mov byte [esp + 0x408], 0x12
call fcn.004bd4b0
cmp edi, ebx
jle 0x4d446a
mov edx, edi
mov dword [esp + 0x58], ebx
mov dword [esp + 0x40], edx
mov eax, 1
jmp 0x4d43f0
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0x58]
mov ecx, dword [edx + ecx + 4]
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0xbc]
cmp dword [esp + 0xc0], ecx
jne 0x4d4440
cmp ecx, 0x40
jl 0x4d4422
mov eax, ecx
shr eax, 2
jmp 0x4d442c
cmp ecx, 8
jl 0x4d442c
mov eax, 8
lea edi, [eax + ecx]
lea esi, [esp + 0xb8]
call fcn.004bd4b0
mov eax, 1
mov esi, dword [esp + 0xc0]
mov edx, dword [esp + 0xc4]
mov ecx, dword [esp + 0x90]
add dword [esp + 0x58], 0x14
mov dword [edx + esi*4], ecx
add dword [esp + 0xc0], eax
sub dword [esp + 0x40], eax
jne 0x4d43f0
cmp dword [esp + 0x60], ebx
mov dword [esp + 0x18], ebx
jle 0x4d48e0
jmp 0x4d4480
push 4
lea esi, [esp + 0x180]
mov dword [esp + 0x170], ebx
mov dword [esp + 0x174], ebx
mov dword [esp + 0x180], ebx
mov dword [esp + 0x184], ebx
mov dword [esp + 0x188], ebx
call fcn.004ae5d0
mov byte [esp + 0x408], 0x13
mov edi, dword [esp + 0x18]
xor esi, esi
cmp edi, dword [esp + 0x60]
mov dword [esp + 0x64], esi
jge 0x4d45d5
lea ecx, [ecx]
mov eax, esi
cdq
cmp edx, dword [esp + 0xf8]
ja 0x4d45d0
jb 0x4d44ef
cmp eax, dword [esp + 0xf4]
jae 0x4d45d0
mov eax, dword [esp + 0xc4]
lea edx, [esi + edi]
mov ecx, dword [eax + edx*4]
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + ecx*4]
mov edx, dword [ecx + 0x20]
add dword [esp + 0x16c], edx
mov edx, dword [ecx + 0x24]
mov eax, dword [esp + 0x170]
adc eax, edx
mov edx, dword [ebp + 0x24]
mov dword [esp + 0x170], eax
cmp eax, dword [edx + 0x1c]
ja 0x4d45d0
jb 0x4d4540
mov eax, dword [esp + 0x16c]
cmp eax, dword [edx + 0x18]
ja 0x4d45d0
cmp byte [edx + 0x20], bl
je 0x4d45a7
lea eax, [esp + 0x104]
call fcn.004d17f0
mov byte [esp + 0x408], 0x14
cmp esi, ebx
mov esi, dword [esp + 0x104]
jne 0x4d4579
lea edi, [esp + 0x104]
lea eax, [esp + 0x17c]
call fcn.004b46b0
jmp 0x4d458e
mov ecx, dword [esp + 0x17c]
push ecx
push esi
call fcn.004bd400
add esp, 8
test eax, eax
jne 0x4d45bb
push esi
mov byte [esp + 0x40c], 0x13
call fcn.004ea5cf
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x68]
add esp, 4
inc esi
lea edx, [esi + edi]
cmp edx, dword [esp + 0x60]
mov dword [esp + 0x64], esi
jl 0x4d44d0
jmp 0x4d45d0
push esi
mov byte [esp + 0x40c], 0x13
call fcn.004ea5cf
mov esi, dword [esp + 0x68]
add esp, 4
cmp esi, 1
jge 0x4d45dd
mov dword [esp + 0x64], 1
push 0x78
call fcn.004ea4e3
add esp, 4
mov dword [esp + 0x90], eax
mov byte [esp + 0x408], 0x15
cmp eax, ebx
je 0x4d4608
push eax
call fcn.004c5da0
mov esi, eax
mov dword [esp + 0x30], esi
jmp 0x4d460e
mov dword [esp + 0x30], ebx
mov esi, ebx
mov byte [esp + 0x408], 0x13
mov dword [esp + 0x9c], esi
cmp esi, ebx
je 0x4d4629
mov eax, dword [esi]
mov ecx, dword [eax + 4]
push esi
call ecx
mov edx, dword [esp + 0x64]
mov edi, dword [ebp + 0x20]
mov byte [esp + 0x408], 0x16
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc4]
add eax, eax
add eax, eax
mov dword [esp + 0x90], eax
push edx
add eax, ecx
push eax
call fcn.004c5e90
lea eax, [esp + 0x194]
call fcn.004ca520
mov ecx, dword [ebp + 0x18]
mov esi, dword [esp + 0x3c]
mov edx, dword [ebp + 0x14]
push esi
push ecx
mov byte [esp + 0x410], 0x17
mov eax, dword [edx + 0x50]
mov edi, dword [ecx + 8]
mov edx, dword [esp + 0x38]
push eax
lea eax, [esp + 0x1a0]
push eax
lea ecx, [esp + 0xa4]
push ecx
push edx
lea eax, [esp + 0x2fc]
push eax
call fcn.004c2950
mov dword [esp + 0x40], eax
cmp eax, ebx
jne 0x4d4ff7
mov ecx, dword [ebp + 0x18]
cmp edi, dword [ecx + 8]
jge 0x4d46ca
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 0x4d46b4
lea edi, [esp + 0x194]
call fcn.004c4ca0
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.004ce600
xor edi, edi
cmp dword [esp + 0x64], ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x40], edi
jle 0x4d4875
mov edx, dword [esp + 0x90]
mov dword [esp + 0x5c], edx
lea esp, [esp]
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x5c]
mov edx, dword [ecx + eax]
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + edx*4]
push 4
lea esi, [esp + 0x80]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
call fcn.004ae5d0
mov byte [esp + 0x88], 1
mov byte [esp + 0x89], bl
mov byte [esp + 0x8a], bl
mov byte [esp + 0x8b], bl
mov eax, dword [esp + 0x58]
mov byte [esp + 0x408], 0x18
cmp byte [eax + 0x39], bl
je 0x4d4794
lea ecx, [esp + 0xcc]
push ecx
lea ebx, [esp + 0x70]
mov esi, eax
call fcn.004d2120
add esp, 4
jmp 0x4d47af
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x58]
mov esi, dword [ecx]
lea edx, [esp + 0x6c]
push edx
push eax
lea ebx, [esp + 0xd4]
call fcn.004d0e90
xor ebx, ebx
cmp byte [esp + 0xf0], bl
jne 0x4d51ab
cmp byte [esp + 0x89], bl
jne 0x4d51ab
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 0x48]
cmp byte [edi + edx], bl
jne 0x4d47eb
mov byte [esp + 0x408], 0x17
mov eax, dword [esp + 0x7c]
push eax
call fcn.004ea5cf
jmp 0x4d485c
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 0x4d4824
mov eax, 1
add dword [esp + 0x10], eax
mov byte [esp + 0x8a], al
mov byte [esp + 0x88], al
jmp 0x4d4832
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.004d0ff0
mov byte [esp + 0x408], 0x17
mov ecx, dword [esp + 0x7c]
push ecx
call fcn.004ea5cf
mov edi, dword [esp + 0x44]
add dword [esp + 0x60], 4
inc edi
add esp, 4
xor ebx, ebx
cmp edi, dword [esp + 0x64]
mov dword [esp + 0x40], edi
jl 0x4d4710
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0x18]
push edx
add eax, 0x50
call fcn.004ce810
mov esi, dword [esp + 0x18]
add esi, dword [esp + 0x64]
lea eax, [esp + 0x194]
push eax
mov dword [esp + 0x1c], esi
mov byte [esp + 0x40c], 0x16
call fcn.004c8d60
mov byte [esp + 0x408], 0x13
mov eax, dword [esp + 0x30]
cmp eax, ebx
je 0x4d48be
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x408], 0x12
mov eax, dword [esp + 0x17c]
push eax
call fcn.004ea5cf
add esp, 4
cmp esi, dword [esp + 0x60]
jl 0x4d4480
mov byte [esp + 0x408], 0x11
mov ecx, dword [esp + 0xc0]
push ecx
mov esi, vtable.CBaseRecordVector.0
push ebx
lea ecx, [esp + 0xc0]
mov dword [esp + 0xc0], esi
call dword [0x5213a4]
mov edx, dword [esp + 0xc4]
push edx
call fcn.004ea5cf
mov byte [esp + 0x40c], 9
mov eax, dword [esp + 0xb0]
add esp, 4
push eax
push ebx
lea ecx, [esp + 0xac]
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xac], esi
call dword [0x5213a4]
mov ecx, dword [esp + 0xb0]
push ecx
call fcn.004ea5cf
add esp, 4
lea edx, [esp + 0x2e4]
push edx
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], ebx
mov byte [esp + 0x40c], 8
call fcn.004c3fc0
lea eax, [esp + 0x130]
push eax
mov byte [esp + 0x40c], 4
call fcn.004c3810
mov eax, dword [esp + 0x68]
inc eax
cmp eax, 4
mov dword [esp + 0x68], eax
jl 0x4d3620
mov ecx, dword [esp + 0x38]
cmp ecx, dword [esp + 0x24]
je 0x4d5371
lea edx, [esp + 0x118]
push edx
mov byte [esp + 0x40c], 3
call fcn.004d5800
lea eax, [esp + 0x214]
push eax
jmp 0x4d52d5
mov esi, 1
mov eax, dword [esp + 0x74]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp eax, ebx
je 0x4d4af9
push eax
call edi
test eax, eax
jne 0x4d4af9
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4d4afd
lea ecx, [esp + 0x2e4]
push ecx
mov byte [esp + 0x40c], 8
call fcn.004c3fc0
lea edx, [esp + 0x130]
push edx
mov byte [esp + 0x40c], 4
call fcn.004c3810
lea eax, [esp + 0x118]
push eax
mov byte [esp + 0x40c], 3
call fcn.004d5800
lea ecx, [esp + 0x214]
push ecx
mov byte [esp + 0x40c], 2
call fcn.004d5600
mov eax, dword [esp + 0x3c]
mov byte [esp + 0x408], 1
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov byte [esp + 0x408], 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 [0x5213a4]
mov edx, dword [esp + 0x28]
push edx
call fcn.004ea5cf
mov dword [esp + 0x40c], 0xffffffff
mov eax, dword [esp + 0x50]
add esp, 4
push eax
push ebx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x4c], esi
call dword [0x5213a4]
mov ecx, dword [esp + 0x50]
push ecx
call fcn.004ea5cf
mov eax, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x400]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x74], ebx
mov eax, dword [esp + 0x70]
cmp eax, ebx
je 0x4d4b14
push eax
call edi
test eax, eax
jne 0x4d4b14
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4d4b18
mov dword [esp + 0x70], ebx
mov eax, dword [esp + 0x6c]
cmp eax, ebx
je 0x4d4b2f
push eax
call edi
test eax, eax
jne 0x4d4b2f
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4d4b33
mov dword [esp + 0x6c], ebx
lea edx, [esp + 0x2e4]
push edx
mov byte [esp + 0x40c], 8
call fcn.004c3fc0
lea eax, [esp + 0x130]
push eax
mov byte [esp + 0x40c], 4
call fcn.004c3810
lea ecx, [esp + 0x118]
push ecx
mov byte [esp + 0x40c], 3
call fcn.004d5800
lea edx, [esp + 0x214]
push edx
mov byte [esp + 0x40c], 2
call fcn.004d5600
mov eax, dword [esp + 0x3c]
mov byte [esp + 0x408], 1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x408], bl
jmp 0x4d2d1b
mov byte [esp + 0x408], 0xc
mov ecx, dword [esp + 0xd4]
push ecx
push ebx
lea ecx, [esp + 0xd4]
mov dword [esp + 0xd4], vtable.CBaseRecordVector.0
call dword [0x5213a4]
mov edx, dword [esp + 0xd8]
push edx
call fcn.004ea5cf
mov byte [esp + 0x40c], 0xb
mov eax, dword [esp + 0x34]
add esp, 4
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], ebx
cmp eax, ebx
je 0x4d4c0d
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x408], 0xa
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x4d4c25
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x74]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp eax, ebx
je 0x4d4c42
push eax
call edi
test eax, eax
jne 0x4d4c42
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4d4c46
mov dword [esp + 0x74], ebx
mov eax, dword [esp + 0x70]
cmp eax, ebx
je 0x4d4c5d
push eax
call edi
test eax, eax
jne 0x4d4c5d
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4d4c61
mov dword [esp + 0x70], ebx
mov eax, dword [esp + 0x6c]
cmp eax, ebx
je 0x4d4c78
push eax
call edi
test eax, eax
jne 0x4d4c78
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4d4c7c
mov dword [esp + 0x6c], ebx
lea eax, [esp + 0x2e4]
push eax
mov byte [esp + 0x40c], 8
call fcn.004c3fc0
lea ecx, [esp + 0x130]
push ecx
mov byte [esp + 0x40c], 4
call fcn.004c3810
lea edx, [esp + 0x118]
push edx
mov byte [esp + 0x40c], 3
call fcn.004d5800
lea eax, [esp + 0x214]
push eax
jmp 0x4d4b7a
lea ecx, [esp + 0x194]
push ecx
mov byte [esp + 0x40c], 0xd
call fcn.004c8d60
mov byte [esp + 0x408], 0xc
mov edx, dword [esp + 0xd4]
push edx
push ebx
lea ecx, [esp + 0xd4]
mov dword [esp + 0xd4], vtable.CBaseRecordVector.0
call dword [0x5213a4]
mov eax, dword [esp + 0xd8]
push eax
call fcn.004ea5cf
mov byte [esp + 0x40c], 0xb
mov eax, dword [esp + 0x34]
add esp, 4
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], ebx
cmp eax, ebx
je 0x4d4d43
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x408], 0xa
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x4d4d5b
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x74]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp eax, ebx
je 0x4d4d78
push eax
call edi
test eax, eax
jne 0x4d4d78
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4d4d7c
mov dword [esp + 0x74], ebx
mov eax, dword [esp + 0x70]
cmp eax, ebx
je 0x4d4d93
push eax
call edi
test eax, eax
jne 0x4d4d93
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4d4d97
mov dword [esp + 0x70], ebx
mov eax, dword [esp + 0x6c]
cmp eax, ebx
je 0x4d4dae
push eax
call edi
test eax, eax
jne 0x4d4dae
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4d4db2
mov dword [esp + 0x6c], ebx
lea eax, [esp + 0x2e4]
push eax
mov byte [esp + 0x40c], 8
call fcn.004c3fc0
lea ecx, [esp + 0x130]
push ecx
mov byte [esp + 0x40c], 4
call fcn.004c3810
lea edx, [esp + 0x118]
push edx
mov byte [esp + 0x40c], 3
call fcn.004d5800
lea eax, [esp + 0x214]
push eax
mov byte [esp + 0x40c], 2
call fcn.004d5600
mov byte [esp + 0x408], 1
mov ecx, dword [esi]
mov edx, dword [ecx + 8]
push esi
call edx
mov byte [esp + 0x408], bl
mov eax, dword [esp + 0x24]
push eax
mov esi, vtable.CBaseRecordVector.0
push ebx
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], esi
call dword [0x5213a4]
mov ecx, dword [esp + 0x28]
push ecx
call fcn.004ea5cf
mov dword [esp + 0x40c], 0xffffffff
mov edx, dword [esp + 0x50]
add esp, 4
push edx
push ebx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x4c], esi
call dword [0x5213a4]
mov eax, dword [esp + 0x50]
push eax
call fcn.004ea5cf
mov eax, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x400]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0x194]
push ecx
mov edi, eax
mov byte [esp + 0x40c], 0xd
call fcn.004c8d60
mov byte [esp + 0x408], 0xc
mov edx, dword [esp + 0xd4]
push edx
push ebx
lea ecx, [esp + 0xd4]
mov dword [esp + 0xd4], vtable.CBaseRecordVector.0
call dword [0x5213a4]
mov eax, dword [esp + 0xd8]
push eax
call fcn.004ea5cf
mov byte [esp + 0x40c], 0xb
mov eax, dword [esp + 0x34]
add esp, 4
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], ebx
cmp eax, ebx
je 0x4d4f12
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x408], 0xa
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x4d4f2a
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x74]
cmp eax, ebx
je 0x4d4f45
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x4d4f45
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4d4f49
mov dword [esp + 0x74], ebx
mov eax, dword [esp + 0x70]
cmp eax, ebx
je 0x4d4f64
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x4d4f64
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4d4f68
mov dword [esp + 0x70], ebx
mov eax, dword [esp + 0x6c]
cmp eax, ebx
je 0x4d4f83
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x4d4f83
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4d4f87
mov dword [esp + 0x6c], ebx
lea eax, [esp + 0x2e4]
push eax
mov byte [esp + 0x40c], 8
call fcn.004c3fc0
lea ecx, [esp + 0x130]
push ecx
mov byte [esp + 0x40c], 4
call fcn.004c3810
lea edx, [esp + 0x118]
push edx
mov byte [esp + 0x40c], 3
call fcn.004d5800
lea eax, [esp + 0x214]
push eax
mov byte [esp + 0x40c], 2
call fcn.004d5600
mov byte [esp + 0x408], 1
mov ecx, dword [esi]
mov edx, dword [ecx + 8]
push esi
call edx
mov byte [esp + 0x408], bl
jmp 0x4d33eb
lea ecx, [esp + 0x194]
push ecx
mov byte [esp + 0x40c], 0x16
call fcn.004c8d60
mov byte [esp + 0x408], 0x13
mov eax, dword [esp + 0x30]
cmp eax, ebx
je 0x4d5024
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov ecx, dword [esp + 0x17c]
push ecx
call fcn.004ea5cf
mov byte [esp + 0x40c], 0x11
mov edx, dword [esp + 0xc4]
add esp, 4
push edx
mov edi, vtable.CBaseRecordVector.0
push ebx
lea ecx, [esp + 0xc0]
mov dword [esp + 0xc0], edi
call dword [0x5213a4]
mov eax, dword [esp + 0xc4]
push eax
call fcn.004ea5cf
mov byte [esp + 0x40c], 9
mov ecx, dword [esp + 0xb0]
add esp, 4
push ecx
push ebx
lea ecx, [esp + 0xac]
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xac], edi
call dword [0x5213a4]
mov edx, dword [esp + 0xb0]
push edx
call fcn.004ea5cf
add esp, 4
lea eax, [esp + 0x2e4]
push eax
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], ebx
mov byte [esp + 0x40c], 8
call fcn.004c3fc0
lea ecx, [esp + 0x130]
push ecx
mov byte [esp + 0x40c], 4
call fcn.004c3810
lea edx, [esp + 0x118]
push edx
mov byte [esp + 0x40c], 3
call fcn.004d5800
lea eax, [esp + 0x214]
push eax
mov byte [esp + 0x40c], 2
call fcn.004d5600
mov byte [esp + 0x408], 1
mov ecx, dword [esi]
mov edx, dword [ecx + 8]
push esi
call edx
mov byte [esp + 0x408], bl
mov eax, dword [esp + 0x24]
push eax
push ebx
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], edi
call dword [0x5213a4]
mov ecx, dword [esp + 0x28]
push ecx
call fcn.004ea5cf
mov dword [esp + 0x40c], 0xffffffff
mov edx, dword [esp + 0x50]
add esp, 4
push edx
push ebx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x4c], edi
call dword [0x5213a4]
mov eax, dword [esp + 0x50]
push eax
call fcn.004ea5cf
mov eax, dword [esp + 0x44]
add esp, 4
mov ecx, dword [esp + 0x400]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x7c]
push ecx
call fcn.004ea5cf
add esp, 4
lea edx, [esp + 0x194]
push edx
mov byte [esp + 0x40c], 0x16
call fcn.004c8d60
mov byte [esp + 0x408], 0x13
mov eax, dword [esp + 0x30]
cmp eax, ebx
je 0x4d51e5
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x17c]
push eax
call fcn.004ea5cf
mov byte [esp + 0x40c], 0x11
mov ecx, dword [esp + 0xc4]
add esp, 4
push ecx
mov esi, vtable.CBaseRecordVector.0
push ebx
lea ecx, [esp + 0xc0]
mov dword [esp + 0xc0], esi
call dword [0x5213a4]
mov edx, dword [esp + 0xc4]
push edx
call fcn.004ea5cf
mov byte [esp + 0x40c], 9
mov eax, dword [esp + 0xb0]
add esp, 4
push eax
push ebx
lea ecx, [esp + 0xac]
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xac], esi
call dword [0x5213a4]
mov ecx, dword [esp + 0xb0]
push ecx
call fcn.004ea5cf
add esp, 4
lea edx, [esp + 0x2e4]
push edx
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], ebx
mov byte [esp + 0x40c], 8
call fcn.004c3fc0
lea eax, [esp + 0x130]
push eax
mov byte [esp + 0x40c], 4
call fcn.004c3810
lea ecx, [esp + 0x118]
push ecx
mov byte [esp + 0x40c], 3
call fcn.004d5800
lea edx, [esp + 0x214]
push edx
mov byte [esp + 0x40c], 2
call fcn.004d5600
mov eax, dword [esp + 0x3c]
mov byte [esp + 0x408], 1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x408], bl
mov eax, dword [esp + 0x24]
push eax
push ebx
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], esi
call dword [0x5213a4]
mov ecx, dword [esp + 0x28]
push ecx
call fcn.004ea5cf
mov dword [esp + 0x40c], 0xffffffff
mov edx, dword [esp + 0x50]
add esp, 4
push edx
push ebx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x4c], esi
call dword [0x5213a4]
mov eax, dword [esp + 0x50]
push eax
call fcn.004ea5cf
add esp, 4
mov eax, 0x80004005
mov ecx, dword [esp + 0x400]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x108], ebx
mov dword [esp + 0x10c], ebx
mov dword [esp + 0x110], ebx
mov dword [esp + 0x114], 4
mov dword [esp + method.CBaseRecordVector.virtual_0], vtable.CRecordVector_int_.0
mov esi, dword [ebp + 0x10]
mov byte [esp + 0x408], 0x19
xor edi, edi
cmp dword [esi + 8], ebx
jle 0x4d53f5
mov edi, edi
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + edi*4]
cmp byte [eax + 0x38], bl
je 0x4d53cd
cmp byte [eax + 0x3b], bl
jne 0x4d53e2
cmp byte [eax + 0x3a], bl
jne 0x4d53e2
mov edx, dword [eax + 0x20]
or edx, dword [eax + 0x24]
jmp 0x4d53e0
mov eax, dword [eax]
cmp eax, 0xffffffff
je 0x4d53e2
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0x70]
mov eax, dword [edx + eax*4]
cmp byte [eax + 0x1c], bl
jne 0x4d53ef
push edi
lea eax, [esp + 0x108]
call fcn.004ce810
inc edi
cmp edi, dword [esi + 8]
jl 0x4d53b0
push esi
lea eax, [esp + 0x108]
call fcn.004d5720
mov eax, dword [esp + 0x10c]
cmp eax, ebx
mov dword [esp + 0x18], ebx
jle 0x4d54f6
jmp 0x4d5423
mov esi, dword [ebp + 0x10]
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x18]
mov edx, dword [eax + ecx*4]
mov eax, dword [esi + 0xc]
mov edi, dword [eax + edx*4]
push 4
lea esi, [esp + 0x80]
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
call fcn.004ae5d0
mov byte [esp + 0x88], 1
mov byte [esp + 0x89], bl
mov byte [esp + 0x8a], bl
mov byte [esp + 0x8b], bl
mov byte [esp + 0x408], 0x1a
cmp byte [edi + 0x39], bl
je 0x4d549c
lea ecx, [esp + 0x1ec]
push ecx
lea ebx, [esp + 0x70]
mov esi, edi
call fcn.004d2120
add esp, 4
jmp 0x4d54b3
mov eax, dword [ebp + 0xc]
mov esi, dword [edi]
lea edx, [esp + 0x6c]
push edx
push eax
lea ebx, [esp + 0x1f4]
call fcn.004d0e90
mov edi, dword [ebp + 0x18]
lea ecx, [esp + 0x6c]
push ecx
lea esi, [esp + 0x1f0]
call fcn.004d0ff0
mov byte [esp + 0x408], 0x19
mov edx, dword [esp + 0x7c]
push edx
call fcn.004ea5cf
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x110]
inc ecx
add esp, 4
xor ebx, ebx
cmp ecx, eax
mov dword [esp + 0x18], ecx
jl 0x4d5420
push eax
mov byte [esp + 0x40c], 4
mov esi, vtable.CBaseRecordVector.0
push ebx
lea ecx, [esp + 0x10c]
mov dword [esp + 0x10c], esi
call dword [0x5213a4]
mov eax, dword [esp + 0x110]
push eax
call fcn.004ea5cf
mov dword [esp + 0x10c], ebx
mov dword [esp + 0x110], ebx
mov dword [esp + 0x114], ebx
mov ebx, dword [ebp + 0x18]
add esp, 4
call fcn.004d1530
lea ecx, [esp + 0x118]
push ecx
mov byte [esp + 0x40c], 3
call fcn.004d5800
lea edx, [esp + 0x214]
push edx
mov byte [esp + 0x40c], 2
call fcn.004d5600
mov eax, dword [esp + 0x3c]
mov byte [esp + 0x408], 1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor ebx, ebx
mov byte [esp + 0x408], bl
mov eax, dword [esp + 0x24]
push eax
push ebx
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], esi
call dword [0x5213a4]
mov ecx, dword [esp + 0x28]
push ecx
call fcn.004ea5cf
mov dword [esp + 0x40c], 0xffffffff
mov edx, dword [esp + 0x50]
add esp, 4
push edx
push ebx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x4c], esi
call dword [0x5213a4]
mov eax, dword [esp + 0x50]
push eax
call fcn.004ea5cf
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x400]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret