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

Disassembly:
push 0xffffffffffffffff
push 0x4d3ad5
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x5c4
push ebx
push ebp
push esi
push edi
xor esi, esi
mov ebp, ecx
push 0x7f02
push esi
mov dword [esp + 0x48], ebp
call dword [0x4d67d8]
push eax
call dword [0x4d67dc]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x5f0]
mov dword [esp + 0x5dc], esi
mov ecx, eax
and eax, 2
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x5ec]
and ecx, 1
cmp eax, esi
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x94], esi
jne 0x462f6b
mov ecx, ebp
call fcn.00462d40
push 0x20
lea ecx, [esp + 0x50]
call fcn.00419630
mov dword [esp + 0x4c], vtable.DirTable.0
xor esi, esi
push 0x4e2c
mov byte [esp + 0x5e0], 1
mov dword [esp + 0x60], esi
mov dword [esp + 0xa8], vtable.HashTable_struct_HTFolder_.0
mov dword [esp + 0xb0], 0x138b
call fcn.004bd49b
mov ebx, eax
mov ecx, 0x138b
xor eax, eax
mov edi, ebx
add esp, 4
mov dword [esp + 0x48], ebx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xb0], esi
rep stosd dword es:[edi], eax
mov dword [esp + 0xb8], esi
mov dword [esp + 0xbc], esi
mov al, byte [0x4f55a8]
mov ecx, 0x40
mov byte [esp + 0xc0], al
xor eax, eax
lea edi, [esp + 0xc1]
mov byte [esp + 0x5dc], 2
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, dword [esp + 0x5e4]
mov dword [esp + 0xb4], esi
mov dword [esp + 0x68], 0xffffffff
mov dword [esp + 0x10], esi
mov eax, dword [edi + 8]
test eax, eax
jle 0x4639cc
cmp esi, eax
jge 0x463038
test esi, esi
jl 0x463038
mov ecx, dword [edi + 4]
mov eax, dword [ecx + esi*4]
jmp 0x46303a
xor eax, eax
lea edx, [esp + 0x34]
lea ecx, [esp + 0x1c4]
push edx
push ecx
push 0x104
push eax
call dword [0x4d63c4]
test eax, eax
je 0x4639bc
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4639bc
lea edx, [esp + 0x1c4]
lea eax, [esp + 0x4d0]
push edx
push eax
call dword [0x4d633c]
mov ecx, dword [esp + 0x34]
push 0x2e
mov byte [ecx - 1], 0
mov edx, dword [esp + 0x38]
push edx
call fcn.004a7c73
mov esi, eax
mov eax, dword [esp + 0x3c]
push 0x2a
push eax
call fcn.004a8857
add esp, 0x10
test eax, eax
jne 0x4630bd
mov ecx, dword [esp + 0x34]
push 0x3f
push ecx
call fcn.004a8857
add esp, 8
test eax, eax
jne 0x4630bd
xor edi, edi
jmp 0x4630c2
mov edi, 1
test esi, esi
mov dword [esp + 0x9c], 0
je 0x4630e9
push str..ais
push esi
call dword [0x4d6380]
test eax, eax
mov dword [esp + 0x14], 1
je 0x4630f1
mov dword [esp + 0x14], 0
lea edx, [esp + 0x6c]
test edx, edx
je 0x463141
push 1
lea eax, [esp + 0x1c8]
push 0x138b
push eax
call fcn.00473a60
mov esi, dword [ebx + eax*4]
add esp, 0xc
test esi, esi
je 0x463141
mov ebx, dword [0x4d6380]
mov edx, dword [esi + 4]
lea ecx, [esp + 0x1c4]
push ecx
push edx
call ebx
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x44], eax
jne 0x463211
mov esi, dword [esi + 8]
test esi, esi
jne 0x46311d
lea eax, [esp + 0x1c4]
push 1
push eax
call fcn.0045fce0
mov ebx, eax
add esp, 8
test ebx, ebx
mov dword [esp + 0x38], ebx
je 0x463a45
push 0xc
call fcn.004bd49b
mov esi, eax
add esp, 4
test esi, esi
je 0x4631a6
mov dword [esi], ebx
mov dword [esi + 8], 0
mov eax, dword [ebx + 0x28]
push 1
mov ecx, eax
push 0x138b
push ecx
mov dword [esi + 4], eax
call fcn.00473a60
mov edx, dword [esp + 0x54]
add esp, 0xc
mov ecx, dword [edx + eax*4]
mov dword [esi + 8], ecx
mov dword [edx + eax*4], esi
inc dword [esp + 0xb0]
push 0x20
lea ecx, [esp + 0x1c]
call fcn.00419630
mov dword [esp + 0x18], vtable.DirTable.0
mov eax, dword [esp + 0xa0]
mov byte [esp + 0x5dc], 3
test eax, eax
mov dword [esp + 0x28], 0
je 0x4631dc
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4631e4
test edi, edi
je 0x463402
mov eax, dword [esp + 0x34]
mov edx, dword [ebx]
neg edi
sbb edi, edi
push 1
and edi, eax
mov ecx, ebx
push edi
call dword [edx + 0x14]
mov eax, dword [ebx + 0x14]
xor ecx, ecx
test eax, eax
mov dword [esp + 0x14], ecx
jle 0x463375
mov edi, dword [0x4d6380]
jmp 0x46322e
test esi, esi
je 0x463141
mov ebx, dword [esi]
mov dword [esp + 0x38], ebx
inc dword [ebx + 4]
jmp 0x4631a6
mov edi, dword [0x4d6380]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jge 0x46323e
test ecx, ecx
jl 0x46323e
mov eax, dword [ebx + 0x10]
mov esi, dword [eax + ecx*4]
jmp 0x463240
xor esi, esi
mov ecx, dword [esp + 0x34]
push 0x2e
push ecx
call fcn.004a7c73
add esp, 8
test eax, eax
je 0x463266
push str..ais
push eax
call edi
test eax, eax
jne 0x463266
mov ebp, 1
jmp 0x463268
xor ebp, ebp
mov eax, dword [esi + 0x34]
mov edx, dword [esp + 0x34]
push eax
push edx
call edi
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x44], eax
jne 0x4632a0
test ebp, ebp
jne 0x4632a0
test byte [esi + 0x2c], 1
je 0x46335d
mov eax, dword [esi + 0x34]
push eax
call fcn.0049f130
add esp, 4
test eax, eax
je 0x46335d
push 0x40
call fcn.004bd49b
add esp, 4
mov dword [esp + 0x44], eax
test eax, eax
mov byte [esp + 0x5dc], 4
je 0x4632ca
mov ecx, dword [esi + 0x34]
push ecx
push ebx
mov ecx, eax
call fcn.00424810
mov ebp, eax
jmp 0x4632cc
xor ebp, ebp
mov eax, 1
mov byte [esp + 0x5dc], 3
test ebp, ebp
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x30], eax
je 0x46335d
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
lea ecx, [eax + 1]
cmp edx, ecx
jne 0x463349
mov edx, dword [esp + 0x2c]
add edx, eax
lea eax, [edx*4 + 4]
push eax
call fcn.004bd49b
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
mov ebx, eax
lea ecx, [ecx*4 + 4]
mov edi, ebx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x20]
push eax
call fcn.004bd4c4
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
add esp, 8
add eax, ecx
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov dword [edx + eax*4], ebp
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x14]
mov eax, dword [ebx + 0x14]
inc ecx
cmp ecx, eax
mov dword [esp + 0x14], ecx
jl 0x463224
mov ebp, dword [esp + 0x40]
mov eax, dword [ebx + 0x1c]
xor edi, edi
cmp eax, edi
je 0x4633a7
mov eax, dword [ebx + 0x14]
xor esi, esi
cmp eax, edi
jle 0x4633a7
cmp esi, eax
jge 0x46339f
cmp esi, edi
jl 0x46339f
mov ecx, dword [ebx + 0x10]
mov ecx, dword [ecx + esi*4]
cmp ecx, edi
je 0x46339f
mov edx, dword [ecx]
push 1
call dword [edx]
mov eax, dword [ebx + 0x14]
inc esi
cmp esi, eax
jl 0x46338b
mov eax, dword [ebx + 0x10]
push eax
call fcn.004bd4c4
push 0x80
call fcn.004bd49b
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], edi
mov dword [ebx + 0x18], 0x1f
mov dword [ebx + 0x20], 0x40
mov eax, dword [esp + 0x28]
add esp, 8
cmp eax, 2
mov dword [0x4ee380], edi
jl 0x4634dc
push 0x4035d0
push 4
push eax
mov eax, dword [esp + 0x28]
push eax
call fcn.004a7ee0
mov eax, dword [esp + 0x30]
add esp, 0x10
jmp 0x4634dc
push 0x40
call fcn.004bd49b
add esp, 4
mov dword [esp + 0x44], eax
test eax, eax
mov byte [esp + 0x5dc], 5
je 0x463431
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
push ecx
push edx
mov ecx, eax
call fcn.00424810
mov ebx, eax
jmp 0x463433
xor ebx, ebx
mov ecx, 1
mov byte [esp + 0x5dc], 3
test ebx, ebx
mov dword [ebx + 0x2c], ecx
mov dword [ebx + 0x30], ecx
je 0x4634c7
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
lea edx, [eax + 1]
cmp esi, edx
jne 0x4634b1
mov ecx, dword [esp + 0x2c]
add ecx, eax
lea edx, [ecx*4 + 4]
push edx
call fcn.004bd49b
mov ebp, eax
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
mov edi, ebp
lea ecx, [eax*4 + 4]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x20]
push eax
call fcn.004bd4c4
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
add esp, 8
add eax, ecx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x24], eax
mov ecx, 1
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov dword [edx + eax*4], ebx
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
jmp 0x4634cb
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x9c], ecx
xor edi, edi
cmp eax, edi
mov dword [esp + 0x14], edi
jle 0x463995
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jge 0x4634fd
test ecx, ecx
jl 0x4634fd
mov edx, dword [esp + 0x1c]
mov ebp, dword [edx + ecx*4]
jmp 0x4634ff
xor ebp, ebp
mov eax, dword [esp + 0x9c]
test eax, eax
je 0x463511
mov esi, 1
jmp 0x463527
mov eax, dword [ebp + 0x34]
push eax
mov eax, dword [esp + 0x38]
push eax
call dword [0x4d6380]
mov esi, eax
neg esi
sbb esi, esi
inc esi
mov ecx, dword [esp + 0x34]
push 0x2e
push ecx
call fcn.004a7c73
add esp, 8
test eax, eax
je 0x463551
push str..ais
push eax
call dword [0x4d6380]
test eax, eax
jne 0x463551
mov edi, 1
jmp 0x463553
xor edi, edi
test esi, esi
jne 0x46358e
test edi, edi
jne 0x463587
test byte [ebp + 0x2c], 1
je 0x463571
mov eax, dword [ebp + 0x34]
push eax
call fcn.0049f130
add esp, 4
test eax, eax
jne 0x463587
test ebp, ebp
je 0x46397c
mov edx, dword [ebp]
push 1
mov ecx, ebp
call dword [edx]
jmp 0x46397c
cmp dword [esp + 0x68], 0xffffffff
jne 0x4635a5
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x5e8]
cmp eax, ecx
jne 0x4635a5
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x68], ecx
test edi, edi
je 0x4638fe
lea edx, [esp + 0x3cc]
push 1
push edx
mov ecx, ebp
call fcn.004257f0
test ebp, ebp
je 0x4635cb
mov eax, dword [ebp]
push 1
mov ecx, ebp
call dword [eax]
push 0x80
mov dword [esp + 0x7c], vtable.Table_char_.0
call fcn.004bd49b
add esp, 4
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0x1f
mov dword [esp + 0x8c], 0x40
lea ecx, [esp + 0x78]
lea edx, [esp + 0x3cc]
push ecx
mov ecx, dword [esp + 0x44]
push edx
mov byte [esp + 0x5e4], 6
mov dword [esp + 0x90], 1
call fcn.0046b710
test eax, eax
mov dword [esp + 0x94], eax
je 0x46389b
mov al, byte [esp + 0xc0]
test al, al
jne 0x46365e
lea eax, [esp + 0x3cc]
lea ecx, [esp + 0xc0]
push eax
push ecx
call dword [0x4d633c]
mov eax, dword [esp + 0x80]
xor ebp, ebp
test eax, eax
mov dword [esp + 0x44], ebp
jle 0x4638a2
mov ebx, dword [esp + 0x48]
mov edi, dword [0x4d6380]
jmp 0x463689
mov edi, dword [0x4d6380]
mov ebx, dword [esp + 0x48]
cmp ebp, eax
jge 0x46369a
test ebp, ebp
jl 0x46369a
mov edx, dword [esp + 0x7c]
mov eax, dword [edx + ebp*4]
jmp 0x46369c
xor eax, eax
lea ecx, [esp + 0x2c8]
push ecx
push eax
call fcn.00471240
lea edx, [esp + 0x74]
add esp, 8
test edx, edx
je 0x4636f7
push 1
lea eax, [esp + 0x2cc]
push 0x138b
push eax
call fcn.00473a60
mov esi, dword [ebx + eax*4]
add esp, 0xc
test esi, esi
je 0x4636f7
mov edx, dword [esi + 4]
lea ecx, [esp + 0x2c8]
push ecx
push edx
call edi
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x6c], eax
jne 0x46378a
mov esi, dword [esi + 8]
test esi, esi
jne 0x4636d3
lea eax, [esp + 0x2c8]
push 1
push eax
call fcn.0045fce0
mov edi, eax
add esp, 8
test edi, edi
je 0x4637ac
push 0xc
call fcn.004bd49b
mov esi, eax
add esp, 4
test esi, esi
je 0x463754
mov dword [esi], edi
mov dword [esi + 8], 0
mov eax, dword [edi + 0x28]
push 1
mov ecx, eax
push 0x138b
push ecx
mov dword [esi + 4], eax
call fcn.00473a60
mov ecx, dword [ebx + eax*4]
add esp, 0xc
mov dword [esi + 8], ecx
mov dword [ebx + eax*4], esi
inc dword [esp + 0xb0]
test edi, edi
je 0x4637ac
push 0x40
call fcn.004bd49b
mov esi, eax
add esp, 4
mov dword [esp + 0x6c], esi
test esi, esi
mov byte [esp + 0x5dc], 7
je 0x4637f0
cmp ebp, dword [esp + 0x80]
jge 0x463796
test ebp, ebp
jl 0x463796
mov edx, dword [esp + 0x7c]
mov eax, dword [edx + ebp*4]
jmp 0x463798
test esi, esi
je 0x4636f7
mov edi, dword [esi]
jmp 0x463754
xor eax, eax
push eax
call fcn.00471a00
add esp, 4
mov ecx, esi
push eax
push edi
call fcn.00424810
jmp 0x4637f2
push 0x40
call fcn.004bd49b
add esp, 4
mov dword [esp + 0x6c], eax
test eax, eax
mov byte [esp + 0x5dc], 8
je 0x4637f0
cmp ebp, dword [esp + 0x80]
jge 0x4637e4
test ebp, ebp
jl 0x4637e4
mov ecx, dword [esp + 0x7c]
mov ecx, dword [ecx + ebp*4]
push ecx
mov ecx, eax
call fcn.00424850
jmp 0x4637f2
xor ecx, ecx
push ecx
mov ecx, eax
call fcn.00424850
jmp 0x4637f2
xor eax, eax
mov ebx, eax
mov eax, 1
test ebx, ebx
mov byte [esp + 0x5dc], 6
mov dword [ebx + 0x2c], eax
mov dword [ebx + 0x30], eax
je 0x463885
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
lea edx, [eax + 1]
cmp ecx, edx
jne 0x463871
mov ecx, dword [esp + 0x60]
add ecx, eax
lea edx, [ecx*4 + 4]
push edx
call fcn.004bd49b
mov ebp, eax
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x54]
mov edi, ebp
lea ecx, [eax*4 + 4]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x54]
push eax
call fcn.004bd4c4
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x60]
add esp, 8
add eax, ecx
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x58], eax
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
mov dword [edx + eax*4], ebx
mov eax, dword [esp + 0x54]
inc eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x80]
inc ebp
cmp ebp, eax
mov dword [esp + 0x44], ebp
jl 0x46367f
jmp 0x4638a2
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x88]
mov byte [esp + 0x5dc], 3
test ecx, ecx
mov dword [esp + 0x78], vtable.Table_char_.0
je 0x4638eb
xor esi, esi
test eax, eax
jle 0x4638eb
cmp esi, eax
jge 0x4638d4
test esi, esi
jl 0x4638d4
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx + esi*4]
jmp 0x4638d6
xor eax, eax
push eax
call fcn.004bd4c4
mov eax, dword [esp + 0x84]
add esp, 4
inc esi
cmp esi, eax
jl 0x4638c7
mov edx, dword [esp + 0x7c]
push edx
call fcn.004bd4c4
mov ebx, dword [esp + 0x3c]
add esp, 4
jmp 0x46397c
test ebp, ebp
je 0x46397c
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
lea ecx, [eax + 1]
cmp edx, ecx
jne 0x463968
mov edx, dword [esp + 0x60]
add edx, eax
lea eax, [edx*4 + 4]
push eax
call fcn.004bd49b
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x54]
mov ebx, eax
lea ecx, [ecx*4 + 4]
mov edi, ebx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x54]
push eax
call fcn.004bd4c4
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x60]
add esp, 8
add eax, ecx
mov dword [esp + 0x50], ebx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x58], eax
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
mov dword [edx + eax*4], ebp
mov eax, dword [esp + 0x54]
inc eax
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
inc ecx
cmp ecx, eax
mov dword [esp + 0x14], ecx
jl 0x4634e8
mov ebp, dword [esp + 0x40]
mov ecx, ebx
call fcn.0045f810
lea ecx, [esp + 0x18]
mov byte [esp + 0x5dc], 2
call fcn.00419700
mov edi, dword [esp + 0x5e4]
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x48]
mov eax, dword [edi + 8]
inc esi
cmp esi, eax
mov dword [esp + 0x10], esi
jl 0x46302c
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x463cf2
push 0x4e2c
mov dword [esp + 0x7c], vtable.HashTable_struct_HTDirEntry_.0
mov dword [esp + 0x84], 0x138b
call fcn.004bd49b
mov edx, eax
mov ecx, 0x138b
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
xor ecx, ecx
add esp, 4
mov dword [esp + 0x10], edx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], ecx
mov eax, dword [ebp + 0x3c4]
xor ebx, ebx
cmp eax, ecx
mov byte [esp + 0x5dc], 9
mov dword [esp + 0x88], ecx
jle 0x463b6b
jmp 0x463a92
mov ecx, dword [esp + 0x48]
mov byte [esp + 0x5dc], 1
push ecx
call fcn.004bd4c4
add esp, 4
lea ecx, [esp + 0x4c]
mov byte [esp + 0x5dc], 0
call fcn.00419700
mov eax, dword [esp + 0x98]
test eax, eax
jne 0x463a82
push 0x7f00
push eax
call dword [0x4d67d8]
push eax
call dword [0x4d67dc]
xor eax, eax
jmp 0x464494
xor ecx, ecx
cmp ebx, dword [ebp + 0x3c4]
jge 0x463aa9
cmp ebx, ecx
jl 0x463aa9
mov edx, dword [ebp + 0x3c0]
mov edi, dword [edx + ebx*4]
jmp 0x463aab
xor edi, edi
lea eax, [esp + 0x6c]
mov dword [esp + 0x6c], edi
test eax, eax
mov dword [esp + 0x70], ecx
je 0x463af1
push 0x138b
lea ecx, [esp + 0x70]
call fcn.004644b0
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx + eax*4]
test esi, esi
je 0x463af1
lea edx, [esp + 0x6c]
mov ecx, esi
push edx
call fcn.00462ea0
test eax, eax
jne 0x463aed
mov esi, dword [esi + 4]
test esi, esi
jne 0x463ad4
jmp 0x463af1
test esi, esi
jne 0x463b56
push 8
call fcn.004bd49b
mov esi, eax
add esp, 4
test esi, esi
je 0x463b56
mov eax, edi
mov dword [esi], edi
mov dword [esi + 4], 0
push 1
mov ebp, dword [eax + 0x34]
mov eax, dword [eax + 4]
push 0x9c5
mov eax, dword [eax + 0x28]
push eax
call fcn.00473a60
push 1
push 0x9c5
push ebp
mov edi, eax
call fcn.00473a60
mov ecx, dword [esp + 0x28]
add edi, eax
mov ebp, dword [esp + 0x58]
add esp, 0x18
mov eax, dword [ecx + edi*4]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x84]
inc eax
mov dword [ecx + edi*4], esi
mov dword [esp + 0x84], eax
mov eax, dword [ebp + 0x3c4]
inc ebx
cmp ebx, eax
jl 0x463a90
mov edx, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [esp + 0x54]
xor ebx, ebx
cmp eax, ecx
jle 0x463ce1
jmp 0x463b7d
xor ecx, ecx
cmp ebx, eax
jge 0x463b8e
cmp ebx, ecx
jl 0x463b8e
mov edx, dword [esp + 0x50]
mov eax, dword [edx + ebx*4]
jmp 0x463b90
xor eax, eax
mov dword [esp + 0x70], ecx
lea ecx, [esp + 0x6c]
test ecx, ecx
mov dword [esp + 0x6c], eax
je 0x463cd0
mov edx, dword [eax + 4]
mov edi, dword [eax + 0x34]
push 1
push 0x9c5
mov eax, dword [edx + 0x28]
push eax
call fcn.00473a60
push 1
push 0x9c5
push edi
mov esi, eax
call fcn.00473a60
add esi, eax
mov eax, dword [esp + 0x28]
add esp, 0x18
mov esi, dword [eax + esi*4]
test esi, esi
je 0x463cd0
lea ecx, [esp + 0x6c]
push ecx
mov ecx, esi
call fcn.00462ea0
test eax, eax
jne 0x463bf9
mov esi, dword [esi + 4]
test esi, esi
jne 0x463bdd
jmp 0x463cd0
test esi, esi
je 0x463cd0
mov esi, dword [esi]
mov edx, dword [ebp + 0x2f0]
push 0
mov ecx, esi
mov edi, dword [edx + 0x30]
call fcn.00425f70
cmp eax, edi
jne 0x463c2a
mov ecx, dword [ebp + 0x2f0]
push 0xffffffffffffffff
push 0
push 0
call fcn.004a14c0
push 0
mov ecx, esi
call fcn.00425f70
cmp eax, dword [ebp + 0x3d8]
jne 0x463c45
mov dword [ebp + 0x3d8], 0
mov edx, dword [ebp + 0x3c4]
xor eax, eax
test edx, edx
jle 0x463c67
mov ecx, dword [ebp + 0x3c0]
cmp dword [ecx], esi
je 0x463e06
inc eax
add ecx, 4
cmp eax, edx
jl 0x463c57
or esi, 0xffffffff
test esi, esi
jl 0x463cbf
cmp esi, dword [ebp + 0x3c4]
jge 0x463cbf
mov eax, dword [ebp + 0x3cc]
test eax, eax
je 0x463c93
mov eax, dword [ebp + 0x3c0]
mov ecx, dword [eax + esi*4]
test ecx, ecx
je 0x463c93
mov edx, dword [ecx]
push 1
call dword [edx]
mov ecx, dword [ebp + 0x3c4]
mov eax, esi
dec ecx
cmp esi, ecx
jge 0x463cb9
mov ecx, dword [ebp + 0x3c0]
inc eax
mov edx, dword [ecx + eax*4]
mov dword [ecx + eax*4 - 4], edx
mov ecx, dword [ebp + 0x3c4]
dec ecx
cmp eax, ecx
jl 0x463ca0
dec dword [ebp + 0x3c4]
mov eax, dword [ebp + 0x3e0]
cmp esi, eax
jge 0x463cd0
dec eax
mov dword [ebp + 0x3e0], eax
mov eax, dword [esp + 0x54]
inc ebx
cmp ebx, eax
jl 0x463b7b
mov edx, dword [esp + 0x10]
push edx
mov byte [esp + 0x5e0], 2
call fcn.004bd4c4
add esp, 4
mov eax, dword [esp + 0x5ec]
mov dword [esp + 0x14], 0xffffffff
cmp eax, 2
je 0x463e0d
cmp eax, 3
je 0x463e0d
mov eax, dword [esp + 0x54]
xor ecx, ecx
test eax, eax
mov dword [esp + 0x10], ecx
jle 0x46425e
cmp ecx, dword [esp + 0x68]
jne 0x463d35
mov edx, dword [ebp + 0x3c4]
mov dword [esp + 0x14], edx
cmp ecx, eax
jge 0x463df4
test ecx, ecx
jl 0x463df4
mov edx, dword [esp + 0x50]
mov edx, dword [edx + ecx*4]
test edx, edx
mov dword [esp + 0x3c], edx
je 0x463df4
mov eax, dword [ebp + 0x3c8]
mov edi, dword [ebp + 0x3c4]
lea esi, [eax + 1]
cmp edi, esi
jne 0x463dd4
add eax, dword [ebp + 0x3d0]
lea eax, [eax*4 + 4]
push eax
call fcn.004bd49b
mov ecx, dword [ebp + 0x3c8]
mov esi, dword [ebp + 0x3c0]
mov ebx, eax
lea ecx, [ecx*4 + 4]
mov edi, ebx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 0x3c0]
push eax
call fcn.004bd4c4
mov eax, dword [ebp + 0x3d0]
mov ecx, dword [ebp + 0x3c8]
mov edx, dword [esp + 0x44]
add esp, 8
add ecx, eax
mov dword [ebp + 0x3c0], ebx
mov dword [ebp + 0x3c8], ecx
mov ecx, dword [esp + 0x10]
mov eax, dword [ebp + 0x3c4]
mov esi, dword [ebp + 0x3c0]
mov dword [esi + eax*4], edx
mov eax, dword [ebp + 0x3c4]
inc eax
mov dword [ebp + 0x3c4], eax
mov eax, dword [esp + 0x54]
inc ecx
cmp ecx, eax
mov dword [esp + 0x10], ecx
jl 0x463d25
jmp 0x464255
mov esi, eax
jmp 0x463c6a
push 0x20
lea ecx, [esp + 0x1c]
call fcn.004196c0
mov dword [esp + 0x18], vtable.DirTable.0
mov eax, dword [esp + 0x5ec]
mov byte [esp + 0x5dc], 0xa
cmp eax, 2
mov dword [esp + 0x28], 0
jne 0x463e48
mov ecx, dword [ebp + 0x3e0]
mov dword [esp + 0x38], ecx
jmp 0x463e53
mov eax, dword [ebp + 0x3e0]
inc eax
mov dword [esp + 0x38], eax
mov edx, dword [esp + 0x38]
xor ebx, ebx
test edx, edx
jle 0x463f31
cmp ebx, dword [ebp + 0x3c4]
jge 0x463f24
test ebx, ebx
jl 0x463f24
mov edx, dword [ebp + 0x3c0]
cmp dword [edx + ebx*4], 0
je 0x463f24
cmp ebx, dword [ebp + 0x3c4]
jge 0x463f24
test ebx, ebx
jl 0x463f24
mov eax, edx
mov ecx, dword [eax + ebx*4]
test ecx, ecx
mov dword [esp + 0x3c], ecx
je 0x463f24
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
lea edx, [eax + 1]
cmp esi, edx
jne 0x463f10
mov ecx, dword [esp + 0x2c]
add ecx, eax
lea edx, [ecx*4 + 4]
push edx
call fcn.004bd49b
mov ebp, eax
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
mov edi, ebp
lea ecx, [eax*4 + 4]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x20]
push eax
call fcn.004bd4c4
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
add esp, 8
add eax, ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov dword [edx + eax*4], ecx
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x38]
inc ebx
cmp ebx, edx
jl 0x463e61
mov eax, dword [esp + 0x54]
xor ecx, ecx
test eax, eax
mov dword [esp + 0x10], ecx
jle 0x463ffb
cmp ecx, dword [esp + 0x68]
jne 0x463f51
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], edx
cmp ecx, eax
jge 0x463fea
test ecx, ecx
jl 0x463fea
mov edx, dword [esp + 0x50]
mov ebx, dword [edx + ecx*4]
test ebx, ebx
je 0x463fea
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
lea edx, [eax + 1]
cmp esi, edx
jne 0x463fd2
mov ecx, dword [esp + 0x2c]
add ecx, eax
lea edx, [ecx*4 + 4]
push edx
call fcn.004bd49b
mov ebp, eax
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
mov edi, ebp
lea ecx, [eax*4 + 4]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x20]
push eax
call fcn.004bd4c4
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
add esp, 8
add eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov dword [edx + eax*4], ebx
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x54]
inc ecx
cmp ecx, eax
mov dword [esp + 0x10], ecx
jl 0x463f43
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0x40]
mov ebx, edx
mov eax, dword [ebp + 0x3c4]
cmp edx, eax
jge 0x4640dd
cmp ebx, eax
jge 0x4640ce
test ebx, ebx
jl 0x4640ce
mov ecx, dword [ebp + 0x3c0]
cmp dword [ecx + ebx*4], 0
je 0x4640ce
cmp ebx, dword [ebp + 0x3c4]
jge 0x4640ce
test ebx, ebx
jl 0x4640ce
mov edx, ecx
mov ecx, dword [edx + ebx*4]
test ecx, ecx
mov dword [esp + 0x3c], ecx
je 0x4640ce
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
lea edx, [eax + 1]
cmp esi, edx
jne 0x4640ba
mov ecx, dword [esp + 0x2c]
add ecx, eax
lea edx, [ecx*4 + 4]
push edx
call fcn.004bd49b
mov ebp, eax
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
mov edi, ebp
lea ecx, [eax*4 + 4]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x20]
push eax
call fcn.004bd4c4
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
add esp, 8
add eax, ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov dword [edx + eax*4], ecx
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x3c4]
inc ebx
cmp ebx, eax
jl 0x464017
xor edi, edi
mov eax, edi
mov dword [ebp + 0x3cc], edi
cmp eax, edi
je 0x46411d
mov eax, dword [ebp + 0x3c4]
xor esi, esi
cmp eax, edi
jle 0x46411d
cmp esi, eax
jge 0x464112
cmp esi, edi
jl 0x464112
mov ecx, dword [ebp + 0x3c0]
mov ecx, dword [ecx + esi*4]
cmp ecx, edi
je 0x464112
mov edx, dword [ecx]
push 1
call dword [edx]
mov eax, dword [ebp + 0x3c4]
inc esi
cmp esi, eax
jl 0x4640fb
mov eax, dword [ebp + 0x3c0]
push eax
call fcn.004bd4c4
push 0x80
call fcn.004bd49b
mov ecx, dword [esp + 0x28]
mov dword [ebp + 0x3c0], eax
add esp, 8
xor eax, eax
mov dword [ebp + 0x3c4], edi
mov dword [ebp + 0x3c8], 0x1f
mov dword [ebp + 0x3d0], 0x40
cmp ecx, edi
mov dword [ebp + 0x3cc], 1
mov dword [esp + 0x10], eax
jle 0x464240
cmp eax, ecx
jge 0x464233
test eax, eax
jl 0x464233
mov edx, dword [esp + 0x1c]
mov edx, dword [edx + eax*4]
test edx, edx
mov dword [esp + 0x3c], edx
je 0x464233
mov ecx, dword [ebp + 0x3c8]
mov edi, dword [ebp + 0x3c4]
lea esi, [ecx + 1]
cmp edi, esi
jne 0x464213
mov eax, dword [ebp + 0x3d0]
add eax, ecx
lea ecx, [eax*4 + 4]
push ecx
call fcn.004bd49b
mov edx, dword [ebp + 0x3c8]
mov esi, dword [ebp + 0x3c0]
mov ebx, eax
lea ecx, [edx*4 + 4]
mov edi, ebx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 0x3c0]
push eax
call fcn.004bd4c4
mov ecx, dword [ebp + 0x3d0]
mov eax, dword [ebp + 0x3c8]
mov edx, dword [esp + 0x44]
add esp, 8
add eax, ecx
mov dword [ebp + 0x3c0], ebx
mov dword [ebp + 0x3c8], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 0x3c4]
mov esi, dword [ebp + 0x3c0]
mov dword [esi + ecx*4], edx
mov ecx, dword [ebp + 0x3c4]
inc ecx
mov dword [ebp + 0x3c4], ecx
mov ecx, dword [esp + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x46417a
lea ecx, [esp + 0x18]
mov byte [esp + 0x5dc], 2
call fcn.00419700
mov ebp, dword [esp + 0x40]
mov edi, dword [esp + 0x14]
cmp edi, 0xffffffff
jne 0x464260
xor edi, edi
mov eax, dword [ebp + 0x3e8]
push eax
call fcn.004bd4c4
mov eax, dword [ebp + 0x3ec]
xor esi, esi
push eax
mov dword [ebp + 0x3e8], esi
call fcn.004bd4c4
mov dword [ebp + 0x3ec], esi
mov dword [ebp + 0x3f4], esi
mov dword [ebp + 0x3f0], esi
mov eax, dword [ebp + 0x3c4]
add esp, 8
cmp eax, esi
je 0x4642c8
mov ecx, ebp
call fcn.004c087d
mov ecx, dword [ebp + 0x2f8]
cmp ecx, esi
je 0x4642b6
push esi
call fcn.004c0814
push 3
push esi
push esi
push esi
push esi
push 0x4f7c98
mov ecx, ebp
call fcn.004c07c5
push edi
mov ecx, ebp
call fcn.004628b0
mov esi, dword [0x4f83ec]
mov ebx, dword fs:[0x2c]
mov edi, eax
test edi, edi
jne 0x46432d
mov eax, dword [esp + 0x94]
test eax, eax
je 0x46432d
mov ecx, ebp
call fcn.0046c570
mov edx, dword [ebx + esi*4]
mov al, byte [edx + 0x28c]
test al, al
je 0x46430b
mov ecx, ebp
call fcn.00461930
jmp 0x464326
mov eax, dword [ebp + 0xc4]
push 0xa
push eax
push str.ViewerWndPos
push str.SoftwareACD_SystemsACDSee
call fcn.00470ba0
add esp, 0x10
mov ecx, ebp
call fcn.004c087d
mov al, byte [esp + 0xc0]
test al, al
je 0x46434d
lea ecx, [esp + 0xc0]
lea edx, [ebp + 0x434]
push ecx
push edx
call dword [0x4d633c]
test edi, edi
je 0x464358
mov ecx, ebp
call fcn.004c087d
mov esi, dword [ebx + esi*4]
cmp dword [esi + 0x290], 2
jne 0x4643fb
cmp dword [ebp + 0x3c4], 1
jle 0x4643fb
mov eax, dword [ebp + 0x3ec]
test eax, eax
jne 0x464386
mov ecx, ebp
call fcn.00465820
cmp dword [esi + 0x2c4], 2
jne 0x4643b0
mov ecx, dword [ebp + 0x3e0]
mov edx, dword [ebp + 0x3ec]
mov eax, dword [ebp + 0x3c4]
mov ebx, dword [edx + ecx*4]
dec eax
cmp ebx, eax
jl 0x4643b0
mov ecx, ebp
call fcn.00465820
mov eax, dword [esi + 0x298]
push 0
push eax
mov eax, dword [ebp + 0x1c]
push 0x64
push eax
call dword [0x4d6764]
test eax, eax
je 0x4643fb
mov ecx, dword [esi + 0x2c4]
xor edx, edx
mov dword [ebp + 0x3f4], ecx
mov dl, byte [esi + 0x294]
mov ecx, ebp
mov dword [ebp + 0x3f0], edx
call fcn.00462a90
mov ecx, ebp
mov dword [ebp + 0x3b8], 1
call fcn.0046a910
mov eax, dword [ebp + 0x1c]
push eax
call dword [0x4d67a4]
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x94]
push ecx
or edi, esi
mov byte [esp + 0x5e0], 1
call fcn.004bd4c4
mov eax, dword [esp + 0x60]
add esp, 4
test eax, eax
mov byte [esp + 0x5dc], 0
mov dword [esp + 0x4c], vtable.Table_class_DirEntry_.0
je 0x464467
mov eax, dword [esp + 0x54]
xor esi, esi
test eax, eax
jle 0x464467
cmp esi, eax
jge 0x464462
test esi, esi
jl 0x464462
mov edx, dword [esp + 0x50]
mov ecx, dword [edx + esi*4]
test ecx, ecx
je 0x464462
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [esp + 0x54]
inc esi
cmp esi, eax
jl 0x464449
mov ecx, dword [esp + 0x50]
push ecx
call fcn.004bd4c4
mov eax, dword [esp + 0x9c]
add esp, 4
test eax, eax
jne 0x46448b
push 0x7f00
push eax
call dword [0x4d67d8]
push eax
call dword [0x4d67dc]
mov eax, edi
mov ecx, dword [esp + 0x5d4]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x5d0
ret 0x10