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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xd4
push ebx
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebx + 4]
push esi
push edi
mov edi, eax
mov eax, dword [edi]
mov edx, dword [ecx + eax*4]
mov eax, dword [edx]
mov esi, dword [eax]
push esi
call fcn.00411361
add esp, 4
mov dword [esp + 0x34], eax
inc eax
je 0x429d7f
add eax, 7
shr eax, 3
add eax, eax
add eax, eax
add eax, eax
xor ecx, ecx
mov dword [esp + 0x38], eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00411777
mov ecx, dword [esp + 0x38]
add esp, 4
lea edx, [ecx + ecx + 2]
push edx
push esi
push eax
mov dword [esp + 0x3c], eax
call fcn.00411000
add esp, 0xc
push 4
call fcn.00411777
add esp, 4
test eax, eax
je 0x429d89
mov dword [eax], 1
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x140], 0
mov dword [esp + 0x3c], eax
je 0x429e5f
cmp dword [eax], 1
jg 0x429d90
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
push eax
push ecx
call dword [sym.imp.USER32.dll_CharUpperBuffW]
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x13c]
test esi, esi
jne 0x429df7
mov esi, dword [eax + 0x134]
test esi, esi
je 0x429e5f
mov dword [esp + 0x1c], esi
lea esp, [esp]
mov edx, dword [esi + 4]
cmp edx, dword [esp + 0x34]
jne 0x40a915
test edx, edx
je 0x409a59
mov ecx, dword [esp + 0x30]
mov eax, dword [esi]
jmp 0x409a40
mov si, word [eax]
cmp si, word [ecx]
jne 0x40a911
add eax, 2
add ecx, 2
dec edx
jne 0x409a40
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
dec dword [eax]
jne 0x409a7b
mov ecx, dword [esp + 0x30]
push ecx
call fcn.0041137c
mov edx, dword [esp + 0x40]
add esp, 4
push edx
call fcn.0041137c
add esp, 4
mov eax, esi
test eax, eax
je 0x429e68
mov edx, dword [eax + 0x14]
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x5c], edx
mov edx, dword [eax + 0x10]
mov eax, dword [edi]
mov dword [esp + 0x44], ecx
mov dword [esp + 0xcc], edx
mov edx, dword [ebx + 4]
mov ecx, dword [edx + eax*4]
movsx edx, word [ecx + 0xa]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x148]
inc eax
mov dword [edi], eax
mov esi, dword [ebx + 4]
mov dword [esp + 0xdc], ecx
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], 1
mov dword [esp + 0x2c], ecx
mov esi, dword [esi + eax*4]
cmp word [esi + 8], 0x47
mov dword [esp + 0x30], 0x4870e0
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x60], 0x48b6f0
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ecx
jne 0x429deb
inc eax
mov dword [esp + 0x7c], edx
mov edx, eax
mov dword [esp + 0x18], ecx
xor esi, esi
mov dword [esp + 0x54], edx
mov dword [edi], eax
mov ecx, dword [ebx + 4]
mov ecx, dword [ecx + eax*4]
movsx ecx, word [ecx + 8]
cmp ecx, 0x47
jge 0x409b2c
inc eax
jmp 0x409b18
sub ecx, 0x47
je 0x429ec4
dec ecx
jne 0x429e9b
test esi, esi
jne 0x429ebd
mov dword [esp + 0x14], eax
inc eax
mov dword [edi], eax
mov eax, dword [esp + 0xcc]
cmp eax, dword [0x4a90f8]
jg 0x429eca
cmp eax, ecx
jle 0x429eca
shl eax, 4
add eax, dword [0x4a912c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x70], ecx
cmp dword [esp + 0x5c], ecx
jle 0x409d42
mov dword [esp + 0x10], 3
mov dword [esp + 0x78], ecx
lea ecx, [ecx]
cmp edx, dword [esp + 0x14]
jae 0x409d42
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x10]
inc dword [esp + 0x70]
lea eax, [eax + ecx*4]
mov ecx, dword [eax]
xor edi, edi
xor bl, bl
cmp word [ecx + 8], di
je 0x429ed3
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + edx*4]
cmp word [edx + 8], 0x33
je 0x409bce
xor bl, bl
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
cmp esi, eax
je 0x40a929
push 1
call fcn.00411777
add esp, 4
test eax, eax
je 0x429f0b
mov byte [eax], bl
mov edx, dword [esp + 0x64]
mov dword [edx + esi*4], eax
inc esi
mov dword [esp + 0x68], esi
test bl, bl
jne 0x429f12
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x42a01c
mov eax, dword [esp + 0x28]
cmp eax, 8
je 0x42a02f
cmp eax, 0xa
je 0x42a054
cmp eax, 5
je 0x42a06b
cmp eax, 0xb
je 0x42a079
cmp eax, 0xc
je 0x42a09b
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x28], 1
mov dword [esp + 0x20], 0
cmp esi, eax
je 0x40a986
mov edi, dword [esp + 0x34]
push 0x10
call fcn.00411777
add esp, 4
test eax, eax
je 0x42a281
mov ebx, eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], 0
cmp eax, 1
jne 0x42a0b2
mov edx, dword [esp + 0x20]
mov dword [ebx], edx
mov eax, ebx
mov ebx, dword [esp + 0x14]
mov ecx, dword [ebp + 0xc]
mov dword [edi + esi*4], eax
inc esi
push ebx
mov dword [esp + 0x3c], esi
mov esi, dword [edi + esi*4 - 4]
push esi
lea eax, [esp + 0x5c]
push eax
push ecx
mov ecx, dword [ebp + 8]
call fcn.0040aa20
test eax, eax
jne 0x42b47e
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x50]
mov ecx, dword [edx + 4]
mov edx, dword [ecx + eax*4 + 4]
inc eax
cmp word [edx + 8], 0x41
mov dword [esp + 0x10], eax
je 0x42a288
mov edx, dword [esp + 0x54]
cmp edx, ebx
je 0x409d42
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 4]
mov eax, dword [eax + edx*4]
mov ecx, 0x40
cmp word [eax + 8], cx
jne 0x42a2d7
lea eax, [edx + 1]
cmp eax, dword [esp + 0x14]
je 0x42a2d7
mov esi, dword [esp + 0x10]
mov edx, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x54], edx
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4]
cmp word [eax + 8], cx
jne 0x409d2f
inc dword [esp + 0x10]
mov eax, dword [esp + 0x78]
inc eax
mov dword [esp + 0x78], eax
cmp eax, dword [esp + 0x5c]
jl 0x409b90
mov eax, dword [esp + 0x70]
cmp eax, dword [esp + 0x44]
jl 0x42b46e
cmp eax, dword [esp + 0x5c]
jg 0x42b46e
cmp edx, dword [esp + 0x14]
jne 0x42b46e
mov ebx, dword [esp + 0xcc]
xor esi, esi
xor eax, eax
mov dword [esp + 0x10], 3
mov dword [esp + 0x1c], esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ebx
cmp ebx, esi
jl 0x42a2e9
cmp byte [0x4a7f3d], al
jne 0x42a2f2
push 0xc
call fcn.00411777
add esp, 4
cmp eax, esi
je 0x42a395
mov edi, eax
mov dword [edi], esi
mov edx, dword [esp + 0x4c]
mov dword [edi + 4], edx
cmp dword [esp + 0x4c], esi
jl 0x42a313
mov eax, dword [esp + 0x48]
cmp eax, esi
jne 0x42a31b
mov dword [edi], esi
mov ecx, dword [0x4a7f38]
mov dword [edi + 8], ecx
mov dword [0x4a7f38], edi
mov eax, dword [esp + 0x48]
inc dword [0x4a7f34]
cmp eax, esi
jne 0x42a39c
mov eax, 1
cmp dword [esp + 0x5c], eax
jl 0x40a279
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x50]
mov ecx, dword [ecx + 4]
mov esi, dword [esp + 0x10]
xor ebx, ebx
or edx, 0xffffffff
mov word [esp + 0xd8], dx
mov dword [esp + 0xbc], 0x484adc
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0x7c], ebx
mov edi, dword [ecx + esi*4]
lea edx, [ecx + esi*4]
xor eax, eax
mov word [esp + 0xda], ax
mov dword [esp + 0x14], eax
cmp word [edi + 8], bx
je 0x42a3ef
mov edx, dword [esp + 0x78]
cmp edx, dword [esp + 0x70]
jg 0x42a456
mov edi, dword [esp + 0x64]
mov edx, dword [esp + 0x1c]
mov edi, dword [edi + edx*4]
or eax, 0x200
cmp byte [edi], bl
jne 0x42a426
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x34]
mov edx, dword [edx + esi*4]
mov esi, eax
mov eax, dword [esp + 0x10]
add eax, eax
add eax, eax
mov dword [esp + 0x48], eax
mov eax, dword [eax + ecx]
mov edi, dword [eax]
cmp dword [0x4a7f34], ebx
je 0x42a520
mov dword [esp + 0x18], edx
cmp byte [0x4a7f3d], bl
jne 0x42a533
mov ebx, dword [0x4a7f38]
xor eax, eax
mov dword [esp + 0x14], ebx
cmp dword [ebx], eax
je 0x409f9c
test byte [0x4a95e4], 1
mov byte [esp + 0x43], al
je 0x42a541
mov dword [0x4a95e0], eax
mov dword [0x4a95dc], eax
mov eax, 0x4a95c4
mov dword [esp + 0x74], eax
mov dword [esp + 0x58], eax
mov eax, dword [edi + 4]
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
test eax, eax
je 0x42a566
test edx, edx
je 0x42a56e
cmp eax, edx
jb 0x42a58e
test eax, eax
je 0x42a57f
mov ecx, dword [ecx]
mov edx, eax
mov eax, dword [edi]
mov bx, word [eax]
cmp bx, word [ecx]
jne 0x409f3a
add eax, 2
add ecx, 2
dec edx
jne 0x409f24
jmp 0x42a57b
mov ebx, dword [esp + 0x14]
jb 0x42a586
mov eax, 1
test eax, eax
js 0x42a59c
jle 0x42a637
mov eax, dword [ebx]
mov eax, dword [eax + 0x1c]
test eax, eax
jne 0x42a5ee
cmp byte [esp + 0x43], 0
mov eax, dword [ebx]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x74]
mov dword [edx + 0x1c], ecx
mov eax, dword [ebx]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x58]
mov dword [edx + 0x18], ecx
mov eax, dword [ebx]
mov ecx, dword [0x4a95e0]
mov dword [eax + 0x18], ecx
mov edx, dword [ebx]
mov eax, dword [0x4a95dc]
mov dword [edx + 0x1c], eax
jne 0x42a641
and esi, 0xff00
push 0x20
mov dword [esp + 0x48], esi
call fcn.00411777
add esp, 4
test eax, eax
je 0x42a664
mov esi, eax
xor ecx, ecx
mov eax, 8
mov dword [esi + 8], eax
mov edx, 2
mul edx
seto cl
mov dword [esi + 4], 0
neg ecx
or ecx, eax
push ecx
call fcn.00411777
add esp, 4
xor ecx, ecx
mov dword [esi], eax
push 4
mov word [eax], cx
call fcn.00411777
add esp, 4
test eax, eax
je 0x42a65d
mov dword [eax], 1
mov dword [esi + 0xc], eax
mov ebx, esi
cmp ebx, edi
je 0x40a03e
mov eax, dword [ebx + 0xc]
cmp dword [eax], 1
jg 0x42a66b
mov esi, dword [edi + 4]
lea eax, [esi + 1]
mov dword [ebx + 4], esi
cmp dword [ebx + 8], eax
jb 0x42a68a
mov edx, dword [ebx + 4]
mov ecx, dword [edi]
lea eax, [edx + edx + 2]
mov edx, dword [ebx]
push eax
push ecx
push edx
call fcn.00411000
add esp, 0xc
mov eax, dword [esp + 0x44]
push 0x10
mov dword [ebx + 0x10], eax
call fcn.00411777
xor ecx, ecx
add esp, 4
cmp eax, ecx
je 0x40a0ab
mov edi, dword [esp + 0x18]
mov edx, dword [edi + 8]
mov esi, eax
lea eax, [edx - 1]
mov dword [esp + 0x58], esi
mov dword [esi + 8], edx
mov dword [esi + 0xc], ecx
cmp eax, 0xb
ja case.default.0x40a070
jmp dword [eax*4 + 0x40a9e4]
push 0x10
call fcn.00411777
add esp, 4
test eax, eax
je 0x42a6cf
mov ecx, dword [edi + 0xc]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
inc dword [ecx]
mov dword [esi + 0xc], eax
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x14]
xor edi, edi
mov dword [ebx + 0x14], ecx
mov dword [ebx + 0x1c], edi
mov dword [ebx + 0x18], edi
mov esi, dword [eax]
cmp esi, edi
je 0x40a9d9
test byte [0x4a95e4], 1
je 0x42a83e
mov eax, 0x4a95c4
mov dword [0x4a95e0], edi
mov dword [0x4a95dc], edi
mov dword [esp + 0x74], eax
mov dword [esp + 0x58], eax
lea ebx, [ebx]
mov eax, dword [ebx + 4]
mov edx, dword [esi + 4]
cmp eax, edi
je 0x42a861
cmp edx, edi
je 0x42a869
cmp eax, edx
jb 0x42a889
cmp eax, edi
jbe 0x42a878
mov ecx, dword [esi]
mov edx, eax
mov eax, dword [ebx]
lea esp, [esp]
mov di, word [eax]
cmp di, word [ecx]
jne 0x40a136
add eax, 2
add ecx, 2
dec edx
jne 0x40a120
jmp 0x42a876
jb 0x42a87f
mov eax, 1
xor edi, edi
cmp eax, edi
jl 0x42a897
jle 0x40a15e
lea eax, [esi + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [eax]
cmp eax, edi
jne 0x42a8f6
mov edx, dword [esi + 0x18]
mov eax, dword [esp + 0x58]
mov dword [eax + 0x1c], edx
mov ecx, dword [esi + 0x1c]
mov edx, dword [esp + 0x74]
mov dword [edx + 0x18], ecx
mov eax, dword [0x4a95e0]
mov edx, dword [esi + 4]
mov dword [esi + 0x18], eax
mov ecx, dword [0x4a95dc]
mov dword [esi + 0x1c], ecx
mov eax, dword [ebx + 4]
cmp eax, edi
je 0x42a944
cmp edx, edi
je 0x42a94c
cmp eax, edx
jb 0x42a96c
cmp eax, edi
jbe 0x42a95b
mov ecx, dword [esi]
mov edx, eax
mov eax, dword [ebx]
nop
mov di, word [eax]
cmp di, word [ecx]
jne 0x40a1c6
add eax, 2
add ecx, 2
dec edx
jne 0x40a1b0
jmp 0x42a959
jb 0x42a962
mov eax, 1
xor edi, edi
cmp eax, edi
jl 0x42a97a
jle 0x42a98b
mov ecx, dword [0x4a95dc]
mov dword [ebx + 0x1c], ecx
mov dword [ebx + 0x18], esi
mov dword [esi + 0x1c], edi
mov eax, dword [esp + 0x14]
mov dword [eax], ebx
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + eax + 4]
cmp word [edx + 8], 0x41
je 0x42a992
add dword [esp + 0x10], 2
mov ax, word [esp + 0xd8]
inc dword [esp + 0x1c]
cmp ax, 0x30
jge 0x42a9c6
cmp dword [esp + 0xc4], 0
mov dword [esp + 0xbc], 0x484adc
ja 0x42a9ea
mov ecx, dword [esp + 0xc0]
push ecx
mov dword [esp + 0xc8], 0
call fcn.0041137c
mov eax, dword [esp + 0x7c]
inc eax
add esp, 4
mov dword [esp + 0x78], eax
cmp eax, dword [esp + 0x5c]
jle 0x409e00
mov ebx, dword [esp + 0xcc]
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x70]
xor eax, eax
lea ecx, [eax + 1]
mov dword [esp + 0x80], eax
mov dword [esp + 0x8c], eax
mov byte [esp + 0x90], al
mov dword [esp + 0x94], eax
mov byte [esp + 0x98], al
mov dword [esp + 0xa0], eax
mov dword [esp + 0xac], eax
mov byte [esp + 0xb0], al
mov eax, dword [esi]
mov dword [esi + 0x148], edx
mov dword [esp + 0x88], ecx
mov dword [esp + 0xa8], ecx
mov ecx, dword [eax + 4]
cmp byte [ecx + esi + 0xd], 0
lea edi, [ecx + esi + 4]
jne 0x42aa13
push 0x40
call fcn.00411777
add esp, 4
test eax, eax
je 0x42aa65
xor ecx, ecx
mov edx, 1
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax], ecx
mov byte [eax + 0x10], cl
mov dword [eax + 0x14], ecx
mov byte [eax + 0x18], cl
mov dword [eax + 0x28], edx
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x20], ecx
mov byte [eax + 0x30], cl
mov ecx, dword [edi + 4]
mov dword [eax + 0x38], ecx
mov dword [edi + 4], eax
inc dword [edi]
mov edx, dword [esi + 0xf4]
lea eax, [ebx + 1]
mov ebx, dword [esi + 0x16c]
lea edi, [esi + 0x16c]
push eax
mov ecx, esi
mov dword [esp + 0x4c], edx
call fcn.00409480
cmp ebx, dword [edi]
jb 0x42aa6c
mov eax, dword [esp + 0x48]
mov edi, esi
mov ecx, dword [edi]
mov dword [edi + 0xf4], eax
mov edx, dword [ecx + 4]
cmp byte [edx + edi + 0xd], 0
lea eax, [edx + edi + 4]
mov eax, dword [eax + 4]
jne 0x42aa7a
cmp byte [eax + 0x10], 0
je 0x42ac9f
mov ecx, dword [ebp + 0x14]
mov byte [ecx], 1
mov edx, dword [edi]
mov eax, dword [edx + 4]
cmp byte [eax + edi + 0xd], 0
lea eax, [eax + edi + 4]
jne 0x42aa82
mov esi, dword [eax + 4]
mov ebx, dword [ebp + 0x10]
cmp ebx, esi
je case.default.0x42ab1e
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x42aa8d
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x42aa9f
cmp eax, 0xa
je 0x42aac0
cmp eax, 5
je 0x42aad5
cmp eax, 0xb
je 0x42aae1
cmp eax, 0xc
je 0x42aaff
mov dword [ebx + 8], 1
mov dword [ebx], 0
mov eax, dword [esi + 8]
mov dword [ebx + 8], eax
cmp eax, 4
jne 0x42ab14
push 0x10
call fcn.00411777
add esp, 4
test eax, eax
je 0x42ac90
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
inc dword [ecx]
mov dword [ebx + 0xc], eax
mov ecx, dword [edi]
mov edx, dword [ecx + 4]
cmp byte [edx + edi + 0xd], 0
mov eax, dword [edx + edi + 8]
lea esi, [edx + edi + 4]
jne 0x42ac97
cmp byte [eax + 0x18], 0
jne 0x42acbf
cmp byte [esi + 9], 0
jne 0x42acd5
mov eax, dword [esi + 4]
cmp byte [eax + 0x30], 0
jne 0x42ace0
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
cmp byte [ecx + ebx + 0xd], 0
lea edi, [ecx + ebx + 4]
jne 0x42acfc
cmp byte [edi + 8], 0
jne 0x42ad1c
mov esi, dword [edi + 4]
mov edx, dword [esi + 0x38]
mov dword [esp + 0x48], edx
test esi, esi
je 0x40a551
mov eax, dword [esi + 0x2c]
test eax, eax
jne 0x42ad25
mov eax, dword [esi + 0x28]
cmp eax, 8
je 0x42ad37
cmp eax, 0xa
je 0x42ad5a
cmp eax, 5
je 0x42ad70
cmp eax, 0xb
je 0x42ad7d
cmp eax, 0xc
je 0x42ad9d
mov dword [esi + 0x28], 1
mov dword [esi + 0x20], 0
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x40a508
mov eax, dword [ebx + 0xc]
dec dword [eax]
mov ecx, dword [ebx + 0xc]
cmp dword [ecx], 0
je 0x42adb3
push ebx
call fcn.0041137c
add esp, 4
mov dword [esi + 0xc], 0
mov eax, dword [esi + 8]
cmp eax, 8
je 0x42adcf
cmp eax, 0xa
je 0x42adf0
cmp eax, 5
je 0x42ae05
cmp eax, 0xb
je 0x42ae11
cmp eax, 0xc
je 0x42ae2f
push esi
mov dword [esi + 8], 1
mov dword [esi], 0
call fcn.0041137c
mov ebx, dword [ebp + 8]
add esp, 4
mov edx, dword [esp + 0x48]
mov dword [edi + 4], edx
mov byte [edi + 9], 0
dec dword [edi]
mov eax, dword [ebx]
mov eax, dword [eax + 4]
mov ecx, dword [eax + ebx + 8]
add eax, ebx
cmp byte [eax + 0xd], 0
jne 0x42ae44
mov edx, dword [esp + 0x94]
mov dword [ecx + 0x14], edx
cmp byte [eax + 0xd], 0
mov eax, dword [eax + 8]
jne 0x42ae4c
mov byte [eax + 0x18], 0
mov ecx, dword [ebx]
mov eax, dword [ecx + 4]
add eax, ebx
cmp byte [eax + 0xd], 0
mov dword [esp + 0x48], eax
jne 0x42ae54
mov eax, dword [eax + 8]
lea ebx, [eax + 0x20]
lea eax, [esp + 0xa0]
cmp ebx, eax
je case.default.0x42aef0
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x42ae5f
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x42ae71
cmp eax, 0xa
je 0x42ae92
cmp eax, 5
je 0x42aea7
cmp eax, 0xb
je 0x42aeb3
cmp eax, 0xc
je 0x42aed1
mov eax, dword [esp + 0xa8]
mov dword [ebx], 0
mov dword [ebx + 8], eax
cmp eax, 1
jne 0x42aee6
mov eax, dword [esp + 0xa0]
mov dword [ebx], eax
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x48]
cmp byte [eax + 0xd], 0
jne 0x42b0c9
mov eax, dword [eax + 8]
mov byte [eax + 0x30], 0
cmp byte [0x4a7f3d], 0
jne 0x42b0d4
mov ecx, dword [0x4a7f38]
cmp byte [0x4a7f3c], 0
jne 0x42b0f6
mov esi, dword [ecx]
mov edx, dword [ecx + 8]
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], ecx
test esi, esi
je 0x40a725
mov eax, dword [esi + 0x18]
mov ebx, ecx
test eax, eax
je 0x40a66e
push eax
call fcn.0040b6a0
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x42b106
cmp byte [esi + 0x10], 0
jne 0x40a6f4
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x40a6f4
mov edi, dword [ebx + 0xc]
test edi, edi
je 0x40a6ae
mov eax, dword [edi + 0xc]
dec dword [eax]
mov eax, dword [edi + 0xc]
cmp dword [eax], 0
je 0x42b113
push edi
call fcn.0041137c
add esp, 4
mov dword [ebx + 0xc], 0
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x42b12f
cmp eax, 0xa
je 0x42b150
cmp eax, 5
je 0x42b165
cmp eax, 0xb
je 0x42b171
cmp eax, 0xc
je 0x42b18f
push ebx
mov dword [ebx + 8], 1
mov dword [ebx], 0
call fcn.0041137c
add esp, 4
mov eax, dword [esi + 0xc]
dec dword [eax]
mov ecx, dword [esi + 0xc]
cmp dword [ecx], 0
jne 0x40a718
mov edx, dword [esi]
push edx
call fcn.0041137c
mov eax, dword [esi + 0xc]
add esp, 4
push eax
call fcn.0041137c
add esp, 4
push esi
call fcn.0041137c
mov edi, dword [esp + 0x6c]
add esp, 4
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x64]
push ecx
call fcn.0041137c
mov edx, dword [esp + 0x48]
add esp, 4
mov dword [0x4a7f38], edx
mov byte [0x4a7f3d], 0
mov eax, dword [esp + 0xdc]
dec dword [0x4a7f34]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x148], eax
mov eax, dword [esp + 0xac]
test eax, eax
jne 0x42b1a4
mov eax, dword [esp + 0xa8]
cmp eax, 8
je 0x42b1ba
cmp eax, 0xa
je 0x42b1de
cmp eax, 5
je 0x42b1f8
cmp eax, 0xb
je 0x42b209
cmp eax, 0xc
je 0x42b22a
mov eax, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
xor ecx, ecx
mov edx, 1
mov dword [esp + 0xa8], edx
mov dword [esp + 0xa0], ecx
cmp eax, ecx
jne 0x42b244
cmp esi, 8
je 0x42b261
cmp esi, 0xa
je 0x42b291
cmp esi, 5
je 0x42b2b7
cmp esi, 0xb
je 0x42b2cf
cmp esi, 0xc
je 0x42b2f7
mov eax, dword [esp + 0x2c]
cmp eax, ecx
jne 0x42b31d
mov eax, dword [esp + 0x28]
cmp eax, 8
je 0x42b337
cmp eax, 0xa
je 0x42b363
cmp eax, 5
je 0x42b381
cmp eax, 0xb
je 0x42b396
cmp eax, 0xc
je 0x42b3bf
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], ecx
cmp edi, ecx
jbe 0x40a854
xor esi, esi
mov ecx, dword [ebx + esi*4]
push ecx
call fcn.0041137c
inc esi
add esp, 4
cmp esi, edi
jb 0x40a843
mov edx, dword [esp + 0x64]
push edx
call fcn.0041137c
add esp, 4
cmp dword [esp + 0x38], 0
jbe 0x40a8f0
xor ebx, ebx
mov edi, edi
mov eax, dword [esp + 0x34]
mov esi, dword [eax + ebx*4]
test esi, esi
je 0x40a8e9
mov edi, dword [esi + 0xc]
test edi, edi
je 0x40a8a3
mov eax, dword [edi + 0xc]
dec dword [eax]
mov ecx, dword [edi + 0xc]
cmp dword [ecx], 0
je 0x42b3dd
push edi
call fcn.0041137c
add esp, 4
mov dword [esi + 0xc], 0
mov eax, dword [esi + 8]
cmp eax, 8
je 0x42b3f9
cmp eax, 0xa
je 0x42b41a
cmp eax, 5
je 0x42b42f
cmp eax, 0xb
je 0x42b43b
cmp eax, 0xc
je 0x42b459
push esi
mov dword [esi + 8], 1
mov dword [esi], 0
call fcn.0041137c
add esp, 4
inc ebx
cmp ebx, dword [esp + 0x38]
jb 0x40a870
mov edx, dword [esp + 0x34]
push edx
call fcn.0041137c
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [edi]
mov dword [esi], eax
jmp case.default.0x40a070
mov esi, dword [esp + 0x1c]
mov esi, dword [esi + 0x20]
mov dword [esp + 0x1c], esi
test esi, esi
jne 0x409a20
jmp 0x429e5f
add eax, eax
cmp eax, 4
jae 0x40a935
mov eax, 4
xor ecx, ecx
mov dword [esp + 0x6c], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00411777
mov edx, dword [esp + 0x68]
add esp, 4
lea ecx, [esi*4]
push ecx
push edx
push eax
mov dword [esp + 0x54], eax
call fcn.00411000
mov eax, dword [esp + 0x70]
add esp, 0xc
push eax
call fcn.0041137c
mov ecx, dword [esp + 0x4c]
add esp, 4
mov dword [esp + 0x64], ecx
jmp 0x409bde
add eax, eax
cmp eax, 4
jae 0x40a992
mov eax, 4
xor ecx, ecx
mov dword [esp + 0x3c], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00411777
mov ebx, dword [esp + 0x38]
mov edi, eax
add esp, 4
lea eax, [esi*4]
push eax
push ebx
push edi
call fcn.00411000
add esp, 0xc
push ebx
call fcn.0041137c
add esp, 4
mov dword [esp + 0x34], edi
jmp 0x409c63
mov dword [ebx + 0x1c], edi
mov dword [ebx + 0x18], edi
jmp 0x40a1f4
mov eax, 8
jmp 0x409980
xor eax, eax
jmp 0x4099cc
mov eax, dword [esp + 0x3c]
dec dword [eax]
lea esi, [esp + 0x30]
call fcn.004013a0
mov edx, dword [esp + 0x34]
inc edx
push edx
call fcn.00446220
xor ecx, ecx
mov esi, eax
mov edx, 2
mul edx
seto cl
mov dword [esp + 0x38], esi
neg ecx
or ecx, eax
push ecx
call fcn.00411777
mov edx, dword [esp + 0x34]
mov esi, eax
mov eax, dword [esp + 0x38]
add esp, 4
lea ecx, [eax + eax + 2]
push ecx
push edx
push esi
call fcn.00411000
add esp, 0xc
mov dword [esp + 0x30], esi
jmp 0x4099e9
push edx
mov edx, dword [ebp + 8]
push 0x6f
push edx
jmp 0x42b479
mov eax, dword [eax + 0x140]
dec eax
js 0x429e5f
mov dword [esp + 0x5c], 0
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x70]
lea eax, [eax + edx]
cdq
sub eax, edx
sar eax, 1
mov ecx, dword [esi + eax*4]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x30]
call fcn.0040bf60
test eax, eax
jns 0x429e46
mov eax, dword [esp + 0x1c]
dec eax
mov dword [esp + 0x70], eax
jmp 0x429e55
jle 0x429e7c
mov ecx, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x5c], ecx
mov edx, dword [esp + 0x70]
cmp dword [esp + 0x5c], edx
jle 0x429e10
lea ecx, [esp + 0x30]
call fcn.00402260
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
push eax
push edi
push ebx
push ecx
call fcn.0047c7a1
jmp 0x40a8ff
mov eax, dword [esp + 0x70]
cmp dword [esp + 0x5c], eax
jg 0x429e5f
mov ecx, dword [esp + 0x1c]
mov esi, dword [esi + ecx*4]
lea ecx, [esp + 0x30]
call fcn.00402260
jmp 0x409a7b
sub ecx, 0x37
jne 0x409b29
mov edx, eax
mov eax, dword [ebx + 4]
mov ecx, dword [eax + edx*4 - 4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0x6f
push eax
jmp 0x42b479
dec esi
inc eax
jmp 0x409b18
inc esi
jmp 0x409b29
mov dword [esp + 0x50], ecx
jmp 0x409b73
mov ecx, dword [eax]
mov ecx, dword [ecx]
cmp ecx, 0x24
jne 0x429ee7
mov bl, 1
jmp 0x429ef5
cmp ecx, 0x1e
jne 0x42a292
mov edi, 0x100
mov ecx, dword [eax + 4]
inc dword [esp + 0x10]
add eax, 4
cmp word [ecx + 8], 0
je 0x429ed3
jmp 0x409bbc
xor eax, eax
jmp 0x409bf2
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 4]
mov ecx, dword [esp + 0x54]
mov eax, dword [edx + ecx*4]
cmp word [eax + 8], 0x33
jne 0x42a29e
mov esi, dword [eax]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x20]
push edx
xor ecx, ecx
call fcn.0040c560
test al, al
je 0x42a2ba
test dword [esp + 0x18], 0x100
je 0x429f7f
test edi, 0x100
jne 0x429f7f
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x54]
mov ecx, dword [edx + eax*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0xb0
push eax
jmp 0x42b479
mov eax, dword [esp + 0x1c]
mov edi, 1
add dword [esp + 0x54], edi
add dword [esp + 0x10], edi
cmp dword [eax + 8], 5
jne 0x429ff0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x54]
mov edx, dword [edx + eax*4]
cmp word [edx + 8], 0x4e
jne 0x429ff0
mov edx, dword [ebp + 8]
push 0
lea eax, [esp + 0x20]
push eax
push edx
lea eax, [esp + 0x60]
call fcn.0040c780
test eax, eax
je 0x429ff0
lea esi, [esp + 0x20]
call fcn.004091e0
lea ecx, [esp + 0x60]
call fcn.00441954
lea ecx, [esp + 0x30]
call fcn.00410e00
mov eax, edi
jmp 0x40a8ff
lea esi, [esp + 0x20]
call fcn.004091e0
mov eax, dword [esp + 0x1c]
push esi
lea esi, [esp + 0x34]
mov dword [esp + 0x2c], 6
mov dword [esp + 0x24], eax
call fcn.0040bcb0
mov ebx, dword [esp + 0x14]
jmp 0x409ce4
push eax
call fcn.00442ef7
mov dword [esp + 0x2c], 0
jmp 0x409c12
mov eax, dword [esp + 0x20]
test eax, eax
je 0x409c43
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [esp + 0x20]
push edx
call fcn.0041137c
add esp, 4
jmp 0x409c43
mov eax, dword [esp + 0x20]
test eax, eax
je 0x409c43
push eax
call fcn.00443f54
jmp 0x409c43
lea eax, [esp + 0x20]
call fcn.0040e5e0
jmp 0x409c43
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 4]
push ecx
call fcn.0041137c
mov edx, dword [esp + 0x24]
add esp, 4
push edx
call fcn.0041137c
add esp, 4
jmp 0x409c43
mov eax, dword [esp + 0x20]
test eax, eax
je 0x409c43
push eax
call fcn.0044b04b
jmp 0x409c43
dec eax
cmp eax, 0xb
ja case.default.0x42a0bc
jmp dword [eax*4 + 0x42b4a3]
push 0x10
call fcn.00411777
add esp, 4
test eax, eax
je 0x42a0f9
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
inc dword [ecx]
mov dword [ebx + 0xc], eax
jmp 0x409c98
xor eax, eax
mov dword [ebx + 0xc], eax
jmp 0x409c98
mov eax, dword [esp + 0x20]
mov dword [ebx], eax
mov ecx, dword [esp + 0x24]
mov dword [ebx + 4], ecx
jmp 0x409c98
fld qword [esp + 0x20]
fstp qword [ebx]
jmp 0x409c98
mov eax, dword [esp + 0x20]
mov dword [ebx], eax
jmp 0x409c98
push 0x214
call fcn.00411777
add esp, 4
test eax, eax
je 0x42a152
mov esi, dword [esp + 0x20]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x42a154
xor eax, eax
mov dword [ebx], eax
cmp dword [eax + 4], 0
je case.default.0x42a0bc
mov eax, dword [eax + 4]
inc dword [eax]
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
jmp 0x409c98
cmp dword [esp + 0x20], 0
je case.default.0x42a0bc
push 0x10
call fcn.00411777
add esp, 4
push eax
mov dword [ebx], eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov ecx, dword [esp + 0x20]
mov edx, dword [ebx]
push ecx
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
jns 0x409c98
mov eax, dword [ebx]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebx]
push ecx
call fcn.0041137c
add esp, 4
mov dword [ebx], 0
jmp 0x409c98
mov dl, byte [esp + 0x20]
mov byte [ebx], dl
jmp 0x409c98
push 0x18
call fcn.00411777
add esp, 4
test eax, eax
je 0x42a1f0
mov ecx, dword [esp + 0x20]
push ecx
push eax
call fcn.0044b52a
mov dword [ebx], eax
jmp 0x409c98
xor eax, eax
mov dword [ebx], eax
jmp 0x409c98
push 8
call fcn.00411777
mov dword [ebx], eax
mov edx, dword [esp + 0x24]
mov ecx, dword [edx]
mov dword [eax], ecx
mov edx, dword [ebx]
mov eax, dword [edx]
add esp, 4
test eax, eax
je 0x42a245
push eax
call fcn.00411777
mov ecx, dword [ebx]
mov dword [ecx + 4], eax
mov eax, dword [ebx]
mov edx, dword [eax]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + 4]
add esp, 4
push edx
mov edx, dword [ecx + 4]
push edx
push eax
call fcn.00411000
add esp, 0xc
jmp 0x409c98
push 1
call fcn.00411777
mov ecx, dword [ebx]
mov dword [ecx + 4], eax
mov edx, dword [ebx]
mov eax, dword [edx + 4]
add esp, 4
mov byte [eax], 0
jmp 0x409c98
push 0x14
call fcn.00411777
add esp, 4
test eax, eax
je 0x42a1f0
mov ecx, dword [esp + 0x20]
push ecx
push eax
call fcn.0046fa03
mov dword [ebx], eax
jmp 0x409c98
xor eax, eax
jmp 0x409c9a
add dword [esp + 0x10], 2
jmp 0x409ce4
push 0xffffffffffffffff
push 0x91
jmp 0x42b475
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0x91
push eax
jmp 0x42b479
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x54]
mov ecx, dword [edx + eax*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0x79
push eax
jmp 0x42b479
mov ecx, dword [esi + 4]
mov edx, dword [ecx + edx*4]
movsx eax, word [edx + 0xa]
push eax
push 0x6f
jmp 0x42b475
mov dword [esp + 0x4c], esi
jmp 0x409d8b
mov edx, dword [0x4a7f38]
mov dword [edx], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [0x4a7f38]
mov dword [ecx + 4], eax
mov byte [0x4a7f3d], 0
jmp 0x409ddb
mov dword [edi + 4], esi
jmp 0x409dbe
push 0x20
mov dword [esp + 0x1c], eax
call fcn.00411777
add esp, 4
cmp eax, esi
je 0x42a33c
push eax
call fcn.0044b08e
jmp 0x42a33e
xor eax, eax
mov ecx, dword [esp + 0x18]
push ecx
mov esi, eax
mov dword [edi], eax
call fcn.0040e410
mov edx, dword [edi]
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x10]
mov dword [edx + 0x10], eax
mov ecx, dword [edi]
mov edx, dword [esi + 0x14]
mov dword [ecx + 0x14], edx
mov ecx, dword [edi]
xor eax, eax
mov dword [ecx + 0x18], eax
mov edx, dword [edi]
mov dword [edx + 0x1c], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [edi]
add ecx, 0x18
push eax
push ecx
mov ecx, edi
call fcn.00452eb8
mov edx, dword [esi + 0x1c]
mov eax, dword [edi]
push edx
add eax, 0x1c
push eax
mov ecx, edi
call fcn.00452eb8
xor esi, esi
jmp 0x409dcc
xor edi, edi
jmp 0x409dcc
mov edi, eax
mov eax, dword [eax + 0x18]
cmp eax, esi
je 0x42a3b3
push eax
lea ecx, [esp + 0x4c]
call fcn.0040b6a0
mov eax, dword [edi + 0x1c]
cmp eax, esi
je 0x42a3c8
push eax
lea ecx, [esp + 0x4c]
call fcn.0040b6a0
cmp byte [edi + 0x10], 0
jne 0x42a3e4
mov ecx, dword [edi + 0x14]
cmp ecx, esi
je 0x42a3e4
push 1
call fcn.0040e530
push edi
call fcn.00442ef7
jmp 0x409ded
mov edi, dword [edx]
mov edi, dword [edi]
cmp edi, 0x24
je 0x42a411
cmp edi, 0x1e
jne 0x42a415
mov dword [esp + 0x14], 0x100
mov eax, dword [esp + 0x14]
inc esi
add edx, 4
mov edi, dword [edx]
cmp word [edi + 8], bx
je 0x42a3ef
mov dword [esp + 0x10], esi
jmp 0x409e5a
mov edi, dword [esp + 0x34]
mov edx, dword [edi + edx*4]
mov ecx, dword [ecx + esi*4]
push 1
push eax
push edx
call fcn.00432acf
push eax
mov eax, dword [ecx]
push eax
call fcn.0045efbf
test al, al
je 0x42aa2d
add esi, 2
mov dword [esp + 0x10], esi
jmp 0x40a215
lea ebx, [esp + 0xbc]
call fcn.0040d7d0
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx + 4]
mov dword [esp + 0x7c], 0
mov eax, dword [edx + esi*4 + 8]
movzx ecx, word [eax + 8]
cmp cx, 0x4a
je 0x42a48d
cmp cx, 0x49
jne 0x42a4a8
lea edi, [esp + 0xbc]
call fcn.00402a30
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x10]
mov eax, dword [ecx + edx*4 + 0xc]
lea edi, [esp + 0xbc]
call fcn.00402a30
mov edi, 0x7f
lea esi, [esp + 0xd0]
call fcn.004029c0
mov eax, esi
lea edi, [esp + 0xbc]
call fcn.00402a30
push 0xffffffffffffffff
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x84]
push ecx
mov ecx, dword [ebp + 8]
push edi
call fcn.0040aa20
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x50]
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x14]
add eax, eax
add eax, eax
mov esi, dword [eax + edx]
mov esi, dword [esi]
mov dword [esp + 0x48], eax
or ecx, 0x200
mov eax, 1
lea edx, [esp + 0x20]
call fcn.00401990
jmp 0x40a1f6
push esi
mov eax, edi
push edx
mov edi, 0x4a7f24
call fcn.004040c0
jmp 0x40a1f6
mov ecx, dword [0x4a7f38]
mov ebx, dword [ecx + 8]
jmp 0x409ec0
or dword [0x4a95e4], 1
push 0x4a95c4
call fcn.0044b08e
push 0x426392
call fcn.004114aa
add esp, 4
xor eax, eax
jmp 0x409edf
test edx, edx
jne 0x42a59c
test eax, eax
jne 0x409f57
jmp 0x409f0e
mov ebx, dword [esp + 0x14]
xor eax, eax
jmp 0x409f49
or eax, 0xffffffff
jmp 0x409f49
mov ecx, dword [ecx]
mov eax, dword [edi]
call fcn.0040d430
jmp 0x409f49
mov eax, dword [ebx]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x409f64
push eax
push edi
call fcn.00442f15
add esp, 8
test al, al
je 0x42a5d9
mov eax, dword [ebx]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebx]
mov edx, dword [eax + 0x1c]
mov dword [ecx + 0x18], edx
mov ecx, dword [ebx]
mov dword [eax + 0x1c], ecx
mov dword [ebx], eax
cmp dword [eax + 0x18], 0
je 0x409f64
mov edx, dword [ebx]
mov eax, dword [esp + 0x58]
mov dword [eax + 0x18], edx
mov eax, dword [ebx]
mov ecx, dword [eax + 0x18]
mov dword [ebx], ecx
jmp 0x409ef2
push edi
push eax
call fcn.00442f15
add esp, 8
test al, al
je 0x42a61e
mov eax, dword [ebx]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebx]
mov ecx, dword [eax + 0x18]
mov dword [edx + 0x1c], ecx
mov edx, dword [ebx]
mov dword [eax + 0x18], edx
mov dword [ebx], eax
cmp dword [eax + 0x1c], 0
je 0x409f64
mov eax, dword [ebx]
mov ecx, dword [esp + 0x74]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x74], eax
mov dword [ebx], edx
jmp 0x409ef6
mov byte [esp + 0x43], 1
jmp 0x409f64
mov ebx, dword [ebx]
test ebx, ebx
je 0x409f9c
mov ecx, dword [esp + 0x18]
mov ebx, dword [ebx + 0x14]
push ecx
call fcn.00409120
jmp 0x40a1f6
xor eax, eax
jmp 0x40a001
xor ebx, ebx
jmp 0x40a006
dec dword [eax]
mov edx, dword [edi + 4]
mov dword [ebx + 4], edx
mov eax, dword [edi + 8]
mov dword [ebx + 8], eax
mov ecx, dword [edi]
mov dword [ebx], ecx
mov edi, dword [edi + 0xc]
mov dword [ebx + 0xc], edi
inc dword [edi]
jmp 0x40a03e
push eax
call fcn.00446220
mov dword [ebx + 8], eax
mov eax, dword [ebx]
test eax, eax
je 0x42a6a6
push eax
call fcn.0041137c
add esp, 4
mov eax, dword [ebx + 8]
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00411777
add esp, 4
xor ecx, ecx
mov dword [ebx], eax
mov word [eax + esi*2], cx
jmp 0x40a028
xor eax, eax
jmp 0x40a0a4
mov eax, dword [edi]
mov dword [esi], eax
mov ecx, dword [edi + 4]
mov dword [esi + 4], ecx
jmp case.default.0x40a070
fld qword [edi]
fstp qword [esi]
jmp case.default.0x40a070
mov edx, dword [edi]
mov dword [esi], edx
jmp case.default.0x40a070
push 0x214
call fcn.00411777
add esp, 4
test eax, eax
je 0x42a720
mov edx, dword [esp + 0x18]
mov esi, dword [edx]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x42a722
xor eax, eax
mov ecx, dword [esp + 0x58]
mov dword [ecx], eax
cmp dword [eax + 4], 0
je case.default.0x40a070
mov eax, dword [eax + 4]
inc dword [eax]
jmp case.default.0x40a070
cmp dword [edi], ecx
je case.default.0x40a070
push 0x10
call fcn.00411777
add esp, 4
push eax
mov dword [esi], eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov edx, dword [edi]
mov eax, dword [esi]
push edx
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
jns case.default.0x40a070
mov ecx, dword [esi]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [esi]
push edx
call fcn.0041137c
add esp, 4
mov dword [esi], 0
jmp case.default.0x40a070
mov al, byte [edi]
mov byte [esi], al
jmp case.default.0x40a070
push 0x18
call fcn.00411777
add esp, 4
test eax, eax
je 0x42a837
mov ecx, dword [edi]
push ecx
push eax
call fcn.0044b52a
jmp 0x40a90a
push 8
call fcn.00411777
mov dword [esi], eax
mov edx, dword [edi]
mov ecx, dword [edx]
mov dword [eax], ecx
mov edx, dword [esi]
mov eax, dword [edx]
add esp, 4
test eax, eax
je 0x42a7fb
push eax
call fcn.00411777
mov ecx, dword [esi]
mov dword [ecx + 4], eax
mov esi, dword [esi]
mov edx, dword [esi]
mov eax, dword [edi]
mov ecx, dword [eax + 4]
add esp, 4
push edx
mov edx, dword [esi + 4]
push ecx
push edx
call fcn.00411000
add esp, 0xc
jmp case.default.0x40a070
push 1
call fcn.00411777
mov ecx, dword [esi]
mov dword [ecx + 4], eax
mov edx, dword [esi]
mov eax, dword [edx + 4]
add esp, 4
mov byte [eax], 0
jmp case.default.0x40a070
push 0x14
call fcn.00411777
add esp, 4
test eax, eax
je 0x42a837
mov ecx, dword [edi]
push ecx
push eax
call fcn.0046fa03
jmp 0x40a90a
xor eax, eax
jmp 0x40a90a
or dword [0x4a95e4], 1
push 0x4a95c4
call fcn.0044b08e
push 0x426392
call fcn.004114aa
add esp, 4
jmp 0x40a0d1
cmp edx, edi
jne 0x42a897
cmp eax, edi
jne 0x40a14d
jmp 0x40a106
xor edi, edi
xor eax, eax
jmp 0x40a143
or eax, 0xffffffff
xor edi, edi
jmp 0x40a143
mov ecx, dword [esi]
mov eax, dword [ebx]
call fcn.0040d430
jmp 0x40a143
lea eax, [esi + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [eax]
cmp eax, edi
je 0x40a15e
push eax
push ebx
mov dword [esp + 0x4c], eax
call fcn.00442f15
add esp, 8
test al, al
je 0x42a8e0
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [edx], ecx
mov dword [eax + 0x1c], esi
mov esi, eax
cmp dword [eax + 0x18], edi
je 0x40a15e
add eax, 0x18
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x18], esi
mov dword [esp + 0x74], esi
mov esi, dword [ecx]
jmp 0x40a0f0
push ebx
push eax
mov dword [esp + 0x4c], eax
call fcn.00442f15
add esp, 8
test al, al
je 0x42a92e
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x18]
mov dword [edx], ecx
mov dword [eax + 0x18], esi
mov esi, eax
cmp dword [eax + 0x1c], edi
je 0x40a15e
add eax, 0x1c
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x1c], esi
mov dword [esp + 0x58], esi
mov esi, dword [ecx]
jmp 0x40a0f0
cmp edx, edi
jne 0x42a97a
cmp eax, edi
jne 0x40a1e1
jmp 0x40a199
xor edi, edi
xor eax, eax
jmp 0x40a1d3
or eax, 0xffffffff
xor edi, edi
jmp 0x40a1d3
mov ecx, dword [esi]
mov eax, dword [ebx]
call fcn.0040d430
jmp 0x40a1d3
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], esi
mov dword [esi + 0x18], edi
jmp 0x40a1f0
mov ebx, esi
jmp 0x40a1f0
mov ecx, dword [esp + 0x10]
mov edx, dword [eax + ecx*4 + 8]
movzx eax, word [edx + 8]
cmp ax, 0x4a
je 0x42a9bc
cmp ax, 0x49
je 0x42a9bc
add dword [esp + 0x10], 4
jmp 0x40a215
add dword [esp + 0x10], 5
jmp 0x40a215
cmp ax, 0x3f
jg 0x40a22b
mov eax, dword [esp + 0xd0]
test eax, eax
je 0x40a22b
push eax
call fcn.00442ef7
jmp 0x40a22b
xor esi, esi
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x42aa04
push eax
call fcn.0044c431
inc esi
cmp esi, dword [esp + 0xc4]
jb 0x42a9ec
jmp 0x40a244
mov eax, dword [edi + 4]
lea edx, [esp + 0x80]
push edx
push eax
call fcn.00472c8d
mov byte [edi + 9], 0
jmp 0x40a324
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 4]
mov ecx, dword [eax + esi*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0x79
push eax
call fcn.0045e1ee
lea ecx, [esp + 0xd0]
push ecx
call fcn.0044b0f0
lea ecx, [esp + 0xbc]
call fcn.0040ef20
jmp 0x42b47e
xor eax, eax
jmp 0x40a31b
call fcn.0040ca30
cmp ebx, dword [edi]
jb 0x42aa6c
jmp 0x40a34f
mov eax, dword [eax + 0x38]
jmp 0x40a372
mov ecx, dword [eax + 4]
mov esi, dword [ecx + 0x38]
jmp 0x40a399
push eax
call fcn.00442ef7
mov dword [ebx + 0xc], 0
jmp 0x40a3af
mov ecx, dword [ebx]
test ecx, ecx
je 0x40a3bb
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [ebx]
push edx
call fcn.0041137c
add esp, 4
jmp 0x40a3df
mov eax, dword [ebx]
test eax, eax
je 0x40a3df
push eax
call fcn.00443f54
jmp 0x40a3df
mov eax, ebx
call fcn.0040e5e0
jmp 0x40a3df
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
push ecx
call fcn.0041137c
mov edx, dword [ebx]
add esp, 4
push edx
call fcn.0041137c
add esp, 4
jmp 0x40a3df
mov eax, dword [ebx]
test eax, eax
je 0x40a3df
push eax
call fcn.0044b04b
jmp 0x40a3df
dec eax
cmp eax, 0xb
ja case.default.0x42ab1e
jmp dword [eax*4 + 0x42b4d3]
mov ecx, dword [esi]
mov dword [ebx], ecx
mov edx, dword [esi + 4]
mov dword [ebx + 4], edx
jmp case.default.0x42ab1e
mov eax, dword [esi]
mov dword [ebx], eax
jmp case.default.0x42ab1e
fld qword [esi]
fstp qword [ebx]
jmp case.default.0x42ab1e
mov ecx, dword [esi]
mov dword [ebx], ecx
jmp case.default.0x42ab1e
push 0x214
call fcn.00411777
add esp, 4
test eax, eax
je 0x42ab74
mov esi, dword [esi]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x42ab76
xor eax, eax
mov dword [ebx], eax
cmp dword [eax + 4], 0
je 0x42ab87
mov eax, dword [eax + 4]
inc dword [eax]
mov edi, dword [ebp + 8]
jmp case.default.0x42ab1e
cmp dword [esi], 0
je 0x42ab87
push 0x10
call fcn.00411777
add esp, 4
push eax
mov dword [ebx], eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov edx, dword [esi]
mov eax, dword [ebx]
push edx
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
jns case.default.0x42ab1e
mov ecx, dword [ebx]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [ebx]
push edx
call fcn.0041137c
add esp, 4
mov dword [ebx], 0
jmp case.default.0x42ab1e
mov al, byte [esi]
mov byte [ebx], al
jmp case.default.0x42ab1e
push 0x18
call fcn.00411777
add esp, 4
test eax, eax
je 0x42ac05
mov ecx, dword [esi]
push ecx
push eax
call fcn.0044b52a
mov dword [ebx], eax
jmp case.default.0x42ab1e
xor eax, eax
mov dword [ebx], eax
jmp case.default.0x42ab1e
push 8
call fcn.00411777
mov dword [ebx], eax
mov edx, dword [esi]
mov ecx, dword [edx]
mov dword [eax], ecx
mov edx, dword [ebx]
mov eax, dword [edx]
add esp, 4
test eax, eax
je 0x42ac56
push eax
call fcn.00411777
mov ecx, dword [ebx]
mov dword [ecx + 4], eax
mov ebx, dword [ebx]
mov edx, dword [ebx]
mov eax, dword [esi]
mov ecx, dword [eax + 4]
add esp, 4
push edx
mov edx, dword [ebx + 4]
push ecx
push edx
call fcn.00411000
add esp, 0xc
jmp case.default.0x42ab1e
push 1
call fcn.00411777
mov ecx, dword [ebx]
mov dword [ecx + 4], eax
mov edx, dword [ebx]
mov eax, dword [edx + 4]
add esp, 4
mov byte [eax], 0
jmp case.default.0x42ab1e
push 0x14
call fcn.00411777
add esp, 4
test eax, eax
je 0x42ac05
mov ecx, dword [esi]
push ecx
push eax
call fcn.0046fa03
mov dword [ebx], eax
jmp case.default.0x42ab1e
xor eax, eax
jmp 0x40a428
mov eax, dword [eax + 0x38]
jmp 0x40a443
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov byte [eax], 0
call fcn.004091e0
mov dword [esi + 8], 1
mov dword [esi], 0
jmp case.default.0x42ab1e
mov eax, esi
call fcn.00403f70
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x94], ecx
jmp 0x40a44d
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x38]
jmp 0x40a45a
mov eax, esi
call fcn.00403f70
add eax, 0x20
push eax
lea ebx, [esp + 0xa4]
call fcn.00409120
jmp 0x40a464
mov eax, dword [edi + 4]
mov esi, dword [eax + 0x38]
test eax, eax
je 0x42ad10
push eax
call fcn.0044c974
mov dword [edi + 4], esi
mov byte [edi + 9], 0
jmp 0x40a47b
mov byte [edi + 9], 1
jmp 0x40a55c
push eax
call fcn.00442ef7
mov dword [esi + 0x2c], 0
jmp 0x40a4a2
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x40a4ae
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esi + 0x20]
push eax
call fcn.0041137c
add esp, 4
jmp 0x40a4d2
mov eax, dword [esi + 0x20]
test eax, eax
je 0x40a4d2
push eax
call fcn.00443f54
jmp 0x40a4d2
lea eax, [esi + 0x20]
call fcn.0040e5e0
jmp 0x40a4d2
mov ecx, dword [esi + 0x20]
mov edx, dword [ecx + 4]
push edx
call fcn.0041137c
mov eax, dword [esi + 0x20]
add esp, 4
push eax
call fcn.0041137c
add esp, 4
jmp 0x40a4d2
mov eax, dword [esi + 0x20]
test eax, eax
je 0x40a4d2
push eax
call fcn.0044b04b
jmp 0x40a4d2
mov edx, dword [ebx]
push edx
call fcn.0041137c
mov eax, dword [ebx + 0xc]
add esp, 4
push eax
call fcn.0041137c
add esp, 4
jmp 0x40a4f8
mov ecx, dword [esi]
test ecx, ecx
je 0x40a514
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [esi]
push ecx
call fcn.0041137c
add esp, 4
jmp 0x40a538
mov eax, dword [esi]
test eax, eax
je 0x40a538
push eax
call fcn.00443f54
jmp 0x40a538
mov eax, esi
call fcn.0040e5e0
jmp 0x40a538
mov edx, dword [esi]
mov eax, dword [edx + 4]
push eax
call fcn.0041137c
mov ecx, dword [esi]
add esp, 4
push ecx
call fcn.0041137c
add esp, 4
jmp 0x40a538
mov eax, dword [esi]
test eax, eax
je 0x40a538
push eax
call fcn.0044b04b
jmp 0x40a538
mov ecx, dword [ecx + 0x38]
jmp 0x40a573
mov eax, dword [eax + 0x38]
jmp 0x40a58a
mov edx, dword [eax + 8]
mov eax, dword [edx + 0x38]
jmp 0x40a5a6
push eax
call fcn.00442ef7
mov dword [ebx + 0xc], 0
jmp 0x40a5bf
mov ecx, dword [ebx]
test ecx, ecx
je 0x40a5cb
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebx]
push ecx
call fcn.0041137c
add esp, 4
jmp 0x40a5ef
mov eax, dword [ebx]
test eax, eax
je 0x40a5ef
push eax
call fcn.00443f54
jmp 0x40a5ef
mov eax, ebx
call fcn.0040e5e0
jmp 0x40a5ef
mov edx, dword [ebx]
mov eax, dword [edx + 4]
push eax
call fcn.0041137c
mov ecx, dword [ebx]
add esp, 4
push ecx
call fcn.0041137c
add esp, 4
jmp 0x40a5ef
mov eax, dword [ebx]
test eax, eax
je 0x40a5ef
push eax
call fcn.0044b04b
jmp 0x40a5ef
dec eax
cmp eax, 0xb
ja case.default.0x42aef0
jmp dword [eax*4 + 0x42b503]
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0xa4]
mov dword [ebx], edx
mov dword [ebx + 4], eax
jmp case.default.0x42aef0
fld qword [esp + 0xa0]
fstp qword [ebx]
jmp case.default.0x42aef0
push 0x10
call fcn.00411777
add esp, 4
test eax, eax
je 0x42af56
mov ecx, dword [esp + 0xac]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
inc dword [ecx]
mov dword [ebx + 0xc], eax
jmp case.default.0x42aef0
xor eax, eax
mov dword [ebx + 0xc], eax
jmp case.default.0x42aef0
mov ecx, dword [esp + 0xa0]
mov dword [ebx], ecx
jmp case.default.0x42aef0
push 0x214
call fcn.00411777
add esp, 4
test eax, eax
je 0x42af98
mov esi, dword [esp + 0xa0]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x42af9a
xor eax, eax
mov edi, dword [esp + 0x68]
mov dword [ebx], eax
cmp dword [eax + 4], 0
je 0x40a615
mov eax, dword [eax + 4]
inc dword [eax]
jmp 0x40a615
mov esi, dword [esp + 0xa0]
test esi, esi
je case.default.0x42aef0
push 0x10
call fcn.00411777
add esp, 4
push eax
mov dword [ebx], eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov edx, dword [ebx]
push esi
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
jns case.default.0x42aef0
mov eax, dword [ebx]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebx]
push ecx
call fcn.0041137c
add esp, 4
mov dword [ebx], 0
jmp case.default.0x42aef0
mov dl, byte [esp + 0xa0]
mov byte [ebx], dl
jmp case.default.0x42aef0
push 0x18
call fcn.00411777
add esp, 4
test eax, eax
je 0x42b03a
mov ecx, dword [esp + 0xa0]
push ecx
push eax
call fcn.0044b52a
jmp 0x40a60f
xor eax, eax
jmp 0x40a60f
push 8
call fcn.00411777
mov esi, dword [esp + 0xa4]
mov dword [ebx], eax
mov edx, dword [esi]
mov dword [eax], edx
mov eax, dword [ebx]
mov eax, dword [eax]
add esp, 4
test eax, eax
je 0x42b08c
push eax
call fcn.00411777
mov ecx, dword [ebx]
mov dword [ecx + 4], eax
mov ebx, dword [ebx]
mov edx, dword [ebx]
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 4]
add esp, 4
push edx
push eax
push ecx
call fcn.00411000
add esp, 0xc
jmp case.default.0x42aef0
push 1
call fcn.00411777
mov edx, dword [ebx]
mov dword [edx + 4], eax
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
add esp, 4
mov byte [ecx], 0
jmp case.default.0x42aef0
push 0x14
call fcn.00411777
add esp, 4
test eax, eax
je 0x42b03a
mov edx, dword [esp + 0xa0]
push edx
push eax
call fcn.0046fa03
jmp 0x40a60f
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 0x38]
jmp 0x40a626
mov eax, dword [0x4a7f38]
mov esi, dword [eax + 8]
push eax
call fcn.0046f733
mov ecx, esi
mov dword [0x4a7f38], ecx
mov byte [0x4a7f3d], 0
jmp 0x40a63d
mov ebx, dword [esp + 0x64]
mov byte [0x4a7f3d], 1
jmp 0x40a747
push eax
mov ecx, ebx
call fcn.0040b6a0
jmp 0x40a679
mov ecx, dword [edi]
push ecx
call fcn.0041137c
mov edx, dword [edi + 0xc]
add esp, 4
push edx
call fcn.0041137c
add esp, 4
jmp 0x40a69e
mov ecx, dword [ebx]
test ecx, ecx
je 0x40a6ba
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebx]
push eax
call fcn.0041137c
add esp, 4
jmp 0x40a6de
mov eax, dword [ebx]
test eax, eax
je 0x40a6de
push eax
call fcn.00443f54
jmp 0x40a6de
mov eax, ebx
call fcn.0040e5e0
jmp 0x40a6de
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
push edx
call fcn.0041137c
mov eax, dword [ebx]
add esp, 4
push eax
call fcn.0041137c
add esp, 4
jmp 0x40a6de
mov eax, dword [ebx]
test eax, eax
je 0x40a6de
push eax
call fcn.0044b04b
jmp 0x40a6de
push eax
call fcn.00442ef7
mov dword [esp + 0xac], 0
jmp 0x40a76c
mov esi, dword [esp + 0xa0]
test esi, esi
je 0x40a7a0
push esi
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push esi
call fcn.0041137c
add esp, 4
jmp 0x40a7a0
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x40a7a0
push eax
call fcn.00443f54
jmp 0x40a7a0
lea eax, [esp + 0xa0]
call fcn.0040e5e0
jmp 0x40a7a0
mov esi, dword [esp + 0xa0]
mov edx, dword [esi + 4]
push edx
call fcn.0041137c
add esp, 4
push esi
call fcn.0041137c
add esp, 4
jmp 0x40a7a0
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x40a7a0
push eax
call fcn.0044b04b
jmp 0x40a7a0
push eax
call fcn.00442ef7
mov dword [esp + 0x8c], 0
mov edx, 1
xor ecx, ecx
jmp 0x40a7cb
cmp dword [esp + 0x80], ecx
je 0x40a7f8
mov esi, dword [esp + 0x80]
push esi
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push esi
call fcn.0041137c
add esp, 4
mov edx, 1
xor ecx, ecx
jmp 0x40a7f8
cmp dword [esp + 0x80], ecx
je 0x40a7f8
mov eax, dword [esp + 0x80]
push eax
call fcn.00443f54
mov edx, 1
xor ecx, ecx
jmp 0x40a7f8
lea eax, [esp + 0x80]
call fcn.0040e5e0
mov edx, 1
xor ecx, ecx
jmp 0x40a7f8
mov esi, dword [esp + 0x80]
mov ecx, dword [esi + 4]
push ecx
call fcn.0041137c
add esp, 4
push esi
call fcn.0041137c
add esp, 4
mov edx, 1
xor ecx, ecx
jmp 0x40a7f8
cmp dword [esp + 0x80], ecx
je 0x40a7f8
mov edx, dword [esp + 0x80]
push edx
call fcn.0044b04b
mov edx, 1
xor ecx, ecx
jmp 0x40a7f8
push eax
call fcn.00442ef7
mov dword [esp + 0x2c], 0
mov edx, 1
xor ecx, ecx
jmp 0x40a804
mov eax, dword [esp + 0x20]
cmp eax, ecx
je 0x40a835
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esp + 0x20]
push eax
call fcn.0041137c
add esp, 4
mov edx, 1
xor ecx, ecx
jmp 0x40a835
mov eax, dword [esp + 0x20]
cmp eax, ecx
je 0x40a835
push eax
call fcn.00443f54
mov edx, 1
xor ecx, ecx
jmp 0x40a835
lea eax, [esp + 0x20]
call fcn.0040e5e0
mov edx, 1
xor ecx, ecx
jmp 0x40a835
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 4]
push edx
call fcn.0041137c
mov eax, dword [esp + 0x24]
add esp, 4
push eax
call fcn.0041137c
add esp, 4
mov edx, 1
xor ecx, ecx
jmp 0x40a835
mov eax, dword [esp + 0x20]
cmp eax, ecx
je 0x40a835
push eax
call fcn.0044b04b
mov edx, 1
xor ecx, ecx
jmp 0x40a835
mov edx, dword [edi]
push edx
call fcn.0041137c
mov eax, dword [edi + 0xc]
add esp, 4
push eax
call fcn.0041137c
add esp, 4
jmp 0x40a893
mov ecx, dword [esi]
test ecx, ecx
je 0x40a8af
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [esi]
push ecx
call fcn.0041137c
add esp, 4
jmp 0x40a8d3
mov eax, dword [esi]
test eax, eax
je 0x40a8d3
push eax
call fcn.00443f54
jmp 0x40a8d3
mov eax, esi
call fcn.0040e5e0
jmp 0x40a8d3
mov edx, dword [esi]
mov eax, dword [edx + 4]
push eax
call fcn.0041137c
mov ecx, dword [esi]
add esp, 4
push ecx
call fcn.0041137c
add esp, 4
jmp 0x40a8d3
mov eax, dword [esi]
test eax, eax
je 0x40a8d3
push eax
call fcn.0044b04b
jmp 0x40a8d3
mov eax, dword [esp + 0x7c]
push eax
push 0x70
mov ecx, dword [ebp + 8]
push ecx
call fcn.0045e1ee
lea esi, [esp + 0x20]
call fcn.004091e0
lea ecx, [esp + 0x60]
call fcn.00441954
lea ecx, [esp + 0x30]
call fcn.00410e00
mov eax, 1
jmp 0x40a8ff