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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c4
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, dword [ebp + 0xc]
mov eax, dword [edi]
mov dword [esp + 0x10], ecx
mov ecx, dword [ebx + 4]
mov edx, dword [ecx + eax*4]
mov eax, dword [edx]
mov eax, dword [eax]
push eax
mov dword [esp + 0x34], eax
call fcn.00412665
add esp, 4
mov dword [esp + 0x54], eax
add eax, 1
je 0x430dad
lea esi, [eax + 7]
shr esi, 3
add esi, esi
add esi, esi
add esi, esi
xor ecx, ecx
mov eax, esi
mov edx, 2
mul edx
seto cl
mov dword [esp + 0x58], esi
neg ecx
or ecx, eax
push ecx
call fcn.00412aaa
mov edx, dword [esp + 0x34]
mov esi, eax
mov eax, dword [esp + 0x58]
add esp, 4
lea ecx, [eax + eax + 2]
push ecx
push edx
push esi
mov dword [esp + 0x5c], esi
call fcn.00412300
add esp, 0xc
push 4
call fcn.00412aaa
add esp, 4
test eax, eax
je 0x430db7
mov dword [eax], 1
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x138], 0
mov dword [esp + 0x5c], eax
je 0x430e96
cmp dword [eax], 1
jg 0x430dbe
mov eax, dword [esp + 0x54]
push eax
push esi
call dword [sym.imp.USER32.dll_CharUpperBuffW]
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x134]
test eax, eax
jne 0x430e25
mov esi, dword [edx + 0x12c]
test esi, esi
je 0x430e96
mov dword [esp + 0x1c], esi
lea ecx, [ecx]
mov edx, dword [esi + 4]
cmp edx, dword [esp + 0x54]
jne 0x403dc7
test edx, edx
jbe 0x402e6b
mov ecx, dword [esp + 0x50]
mov eax, dword [esi]
jmp 0x402e50
mov si, word [eax]
cmp si, word [ecx]
jne 0x403dc3
add eax, 2
add ecx, 2
sub edx, 1
jne 0x402e50
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x5c]
add dword [eax], 0xffffffff
jne 0x402e8e
mov eax, dword [esp + 0x50]
push eax
call fcn.004127bd
mov ecx, dword [esp + 0x60]
add esp, 4
push ecx
call fcn.004127bd
add esp, 4
test esi, esi
je 0x430e9f
mov eax, dword [esi + 0x14]
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x68], edx
mov edx, dword [ebx + 4]
mov dword [esp + 0x4c], eax
mov eax, dword [edi]
mov dword [esp + 0x9c], ecx
mov ecx, dword [edx + eax*4]
movsx edx, word [ecx + 0xa]
mov ecx, dword [esp + 0x10]
xor esi, esi
inc eax
mov dword [esp + 0x30], edx
mov edx, dword [ecx + 0x140]
mov dword [edi], eax
mov ecx, dword [ebx + 4]
mov dword [esp + 0x38], esi
mov dword [esp + 0x40], 1
mov dword [esp + 0x44], esi
mov dword [esp + 0xfc], edx
mov edx, dword [ecx + eax*4]
cmp word [edx + 8], 0x47
mov dword [esp + 0x78], 0x4883bc
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], esi
mov dword [esp + 0x50], 0x48ccd0
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], esi
jne 0x430e19
inc eax
mov edx, eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x74], 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 0x402f46
inc eax
jmp 0x402f32
sub ecx, 0x47
je 0x430f04
sub ecx, 1
jne 0x430ed7
cmp dword [esp + 0x24], ecx
jne 0x430efa
mov dword [esp + 0x28], eax
inc eax
mov dword [edi], eax
mov eax, dword [esp + 0x68]
cmp eax, dword [0x4a6898]
jg 0x430f0d
cmp eax, ecx
jle 0x430f0d
shl eax, 4
add eax, dword [0x4a68cc]
mov dword [esp + 0x60], eax
cmp dword [esp + 0x4c], ecx
mov dword [esp + 0x48], ecx
jle 0x40316b
mov dword [esp + 0x18], 3
mov dword [esp + 0x24], ecx
jmp 0x402fb0
cmp edx, dword [esp + 0x28]
jae 0x40316b
mov ecx, dword [esp + 0x60]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x18]
inc dword [esp + 0x48]
lea eax, [eax + ecx*4]
mov ecx, dword [eax]
xor bl, bl
cmp word [ecx + 8], 0
mov dword [esp + 0x2c], 0
je 0x430f16
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + edx*4]
cmp word [edx + 8], 0x33
je 0x402ff5
xor bl, bl
mov edi, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
cmp edi, eax
je 0x403ddb
push 1
call fcn.00412aaa
add esp, 4
test eax, eax
je 0x430f51
mov byte [eax], bl
mov edx, dword [esp + 0x54]
mov dword [edx + edi*4], eax
inc edi
mov dword [esp + 0x58], edi
test bl, bl
jne 0x430f58
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x431070
mov eax, dword [esp + 0x40]
cmp eax, 8
je 0x431083
cmp eax, 0xa
je 0x4310a8
cmp eax, 5
je 0x4310bf
cmp eax, 0xb
je 0x4310cd
cmp eax, 0xc
je 0x4310ef
mov eax, dword [esp + 0x84]
mov dword [esp + 0x40], 1
mov dword [esp + 0x38], 0
cmp esi, eax
je 0x403e38
mov edi, dword [esp + 0x7c]
push 0x10
call fcn.00412aaa
add esp, 4
test eax, eax
je 0x4312ec
mov ebx, eax
mov eax, dword [esp + 0x40]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], 0
cmp eax, 1
jne 0x431106
mov edx, dword [esp + 0x38]
mov dword [ebx], edx
mov eax, ebx
mov ebx, dword [esp + 0x28]
mov ecx, dword [ebp + 8]
mov dword [edi + esi*4], eax
mov eax, dword [edi + esi*4]
inc esi
push ebx
push eax
lea eax, [esp + 0x7c]
push eax
push ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x90], esi
call fcn.00402500
test eax, eax
jne 0x432b93
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x60]
mov ecx, dword [edx + 4]
mov edx, dword [ecx + eax*4 + 4]
inc eax
cmp word [edx + 8], 0x41
mov dword [esp + 0x18], eax
je 0x4312f3
mov edx, dword [esp + 0x74]
cmp edx, ebx
je 0x40316b
mov edi, dword [ebp + 8]
mov eax, dword [edi + 4]
mov eax, dword [eax + edx*4]
mov ecx, 0x40
cmp word [eax + 8], cx
jne 0x431344
lea eax, [edx + 1]
cmp eax, dword [esp + 0x28]
je 0x431344
mov edi, dword [esp + 0x18]
mov edx, eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x74], edx
mov eax, dword [eax + 4]
mov eax, dword [eax + edi*4]
cmp word [eax + 8], cx
jne 0x403158
inc dword [esp + 0x18]
mov eax, dword [esp + 0x24]
inc eax
cmp eax, dword [esp + 0x4c]
mov dword [esp + 0x24], eax
jl 0x402fb0
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x9c]
jl 0x432b82
cmp eax, dword [esp + 0x4c]
jg 0x432b82
cmp edx, dword [esp + 0x28]
jne 0x432b82
mov ebx, dword [esp + 0x68]
xor esi, esi
xor eax, eax
cmp ebx, esi
mov dword [esp + 0x18], 3
mov dword [esp + 0x1c], esi
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], ebx
jl 0x431356
cmp byte [0x4a56e5], 0
jne 0x431362
push 0xc
call fcn.00412aaa
add esp, 4
cmp eax, esi
je 0x431408
mov edi, eax
mov dword [edi], esi
mov edx, dword [esp + 0xa4]
mov dword [edi + 4], edx
cmp dword [esp + 0xa4], esi
jl 0x431386
mov eax, dword [esp + 0xa0]
cmp eax, esi
jne 0x43138e
mov dword [edi], esi
mov ecx, dword [0x4a56e0]
mov dword [edi + 8], ecx
mov dword [0x4a56e0], edi
mov eax, dword [esp + 0xa0]
inc dword [0x4a56dc]
cmp eax, esi
jne 0x43140f
mov eax, 1
cmp dword [esp + 0x4c], eax
jl 0x4036d5
mov dword [esp + 0x24], eax
lea esp, [esp]
mov ecx, dword [esp + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [esp + 0x18]
xor ebx, ebx
or edx, 0xffffffff
mov word [esp + 0xa8], dx
mov dword [esp + 0x88], 0x48623c
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x9c], ebx
mov edi, dword [ecx + esi*4]
lea edx, [ecx + esi*4]
xor eax, eax
mov word [esp + 0xaa], ax
mov dword [esp + 0x2c], eax
cmp word [edi + 8], bx
je 0x431468
mov edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x48]
jg 0x4314cf
mov edi, dword [esp + 0x54]
mov edx, dword [esp + 0x1c]
mov edi, dword [edi + edx*4]
or eax, 0x200
cmp byte [edi], 0
jne 0x43149f
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x7c]
mov edx, dword [edx + esi*4]
mov esi, eax
mov eax, dword [esp + 0x18]
add eax, eax
add eax, eax
mov dword [esp + 0x30], eax
mov eax, dword [eax + ecx]
mov edi, dword [eax]
cmp dword [0x4a56dc], ebx
je 0x4315a4
cmp byte [0x4a56e5], 0
mov dword [esp + 0x20], edx
jne 0x4315b7
mov ebx, dword [0x4a56e0]
xor eax, eax
mov dword [esp + 0x28], ebx
cmp dword [ebx], eax
je 0x4033f0
test byte [0x4a6d7c], 1
mov byte [esp + 0x17], al
je 0x4315c5
mov dword [0x4a6d78], eax
mov dword [0x4a6d74], eax
mov eax, 0x4a6d5c
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], eax
jmp 0x403340
mov eax, dword [edi + 4]
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
test eax, eax
je 0x4315ea
test edx, edx
je 0x4315f2
cmp eax, edx
jb 0x431612
test eax, eax
jbe 0x431603
mov ecx, dword [ecx]
mov edx, eax
mov eax, dword [edi]
mov edi, edi
mov bx, word [eax]
cmp bx, word [ecx]
jne 0x403388
add eax, 2
add ecx, 2
sub edx, 1
jne 0x403370
jmp 0x4315ff
mov dx, bx
mov ebx, dword [esp + 0x28]
cmp dx, word [ecx]
jb 0x43160a
mov eax, 1
test eax, eax
jl 0x431620
jle 0x4316bb
mov eax, dword [ebx]
mov eax, dword [eax + 0x1c]
test eax, eax
jne 0x431672
cmp byte [esp + 0x17], 0
mov eax, dword [ebx]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x2c]
mov dword [edx + 0x1c], ecx
mov eax, dword [ebx]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x34]
mov dword [edx + 0x18], ecx
mov eax, dword [ebx]
mov ecx, dword [0x4a6d78]
mov dword [eax + 0x18], ecx
mov edx, dword [ebx]
mov eax, dword [0x4a6d74]
mov dword [edx + 0x1c], eax
jne 0x4316c5
and esi, 0xff00
push 0x20
mov dword [esp + 0x68], esi
call fcn.00412aaa
add esp, 4
test eax, eax
je 0x4316e8
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.00412aaa
add esp, 4
xor ecx, ecx
mov dword [esi], eax
push 4
mov word [eax], cx
call fcn.00412aaa
add esp, 4
test eax, eax
je 0x4316e1
mov dword [eax], 1
mov dword [esi + 0xc], eax
mov ebx, esi
cmp ebx, edi
je 0x403492
mov eax, dword [ebx + 0xc]
cmp dword [eax], 1
jg 0x4316ef
mov esi, dword [edi + 4]
lea eax, [esi + 1]
mov dword [ebx + 4], esi
cmp dword [ebx + 8], eax
jb 0x43170e
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.00412300
add esp, 0xc
mov eax, dword [esp + 0x64]
push 0x10
mov dword [ebx + 0x10], eax
call fcn.00412aaa
xor ecx, ecx
add esp, 4
cmp eax, ecx
je 0x4034fd
mov edi, dword [esp + 0x20]
mov esi, eax
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
dec eax
mov dword [esp + 0x34], esi
mov dword [esi + 0xc], ecx
cmp eax, 0xb
ja case.default.0x4034c2
jmp dword [eax*4 + 0x403f18]
push 0x10
call fcn.00412aaa
add esp, 4
test eax, eax
je 0x431753
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 + 0x34]
mov eax, dword [esp + 0x28]
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 0x403e91
test byte [0x4a6d7c], 1
je 0x4318c2
mov eax, 0x4a6d5c
mov dword [0x4a6d78], edi
mov dword [0x4a6d74], edi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], eax
lea esp, [esp]
mov eax, dword [ebx + 4]
mov edx, dword [esi + 4]
cmp eax, edi
je 0x4318e5
cmp edx, edi
je 0x4318ed
cmp eax, edx
jb 0x43190d
cmp eax, edi
jbe 0x4318fc
mov ecx, dword [esi]
mov edx, eax
mov eax, dword [ebx]
lea esp, [esp]
mov di, word [eax]
cmp di, word [ecx]
jne 0x403588
add eax, 2
add ecx, 2
sub edx, 1
jne 0x403570
jmp 0x4318fa
mov dx, word [eax]
cmp dx, word [ecx]
jb 0x431903
mov eax, 1
xor edi, edi
cmp eax, edi
jl 0x43191b
jle 0x4035b6
lea eax, [esi + 0x1c]
mov dword [esp + 0x20], eax
mov eax, dword [eax]
cmp eax, edi
jne 0x43197a
mov edx, dword [esi + 0x18]
mov eax, dword [esp + 0x34]
mov dword [eax + 0x1c], edx
mov ecx, dword [esi + 0x1c]
mov edx, dword [esp + 0x2c]
mov dword [edx + 0x18], ecx
mov eax, dword [0x4a6d78]
mov edx, dword [esi + 4]
mov dword [esi + 0x18], eax
mov ecx, dword [0x4a6d74]
mov dword [esi + 0x1c], ecx
mov eax, dword [ebx + 4]
cmp eax, edi
je 0x4319c8
cmp edx, edi
je 0x4319d0
cmp eax, edx
jb 0x4319f0
cmp eax, edi
jbe 0x4319df
mov ecx, dword [esi]
mov edx, eax
mov eax, dword [ebx]
mov di, word [eax]
cmp di, word [ecx]
jne 0x40361f
add eax, 2
add ecx, 2
sub edx, 1
jne 0x403607
jmp 0x4319dd
mov dx, word [eax]
cmp dx, word [ecx]
jb 0x4319e6
mov eax, 1
xor edi, edi
cmp eax, edi
jl 0x4319fe
jle 0x431a0f
mov ecx, dword [0x4a6d74]
mov dword [ebx + 0x1c], ecx
mov dword [ebx + 0x18], esi
mov dword [esi + 0x1c], edi
mov eax, dword [esp + 0x28]
mov dword [eax], ebx
mov edx, dword [esp + 0x60]
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + eax + 4]
cmp word [edx + 8], 0x41
je 0x431a16
add dword [esp + 0x18], 2
mov ax, word [esp + 0xa8]
inc dword [esp + 0x1c]
cmp ax, 0x30
jge 0x431a4a
cmp dword [esp + 0x90], 0
mov dword [esp + 0x88], 0x48623c
ja 0x431a6e
mov ecx, dword [esp + 0x8c]
push ecx
mov dword [esp + 0x94], 0
call fcn.004127bd
mov eax, dword [esp + 0x28]
inc eax
add esp, 4
cmp eax, dword [esp + 0x4c]
mov dword [esp + 0x24], eax
jle 0x403240
mov ebx, dword [esp + 0x68]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x48]
xor eax, eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x12c], eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x13c], eax
mov eax, dword [edi]
mov dword [edi + 0x140], edx
mov ecx, dword [eax + 4]
cmp byte [ecx + edi + 0xd], 0
lea esi, [ecx + edi + 4]
jne 0x431a97
push 0x30
call fcn.00412aaa
add esp, 4
test eax, eax
je 0x431b0f
xor ecx, ecx
mov dword [eax + 8], 1
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 + 0x1c], ecx
mov byte [eax + 0x20], cl
mov edx, dword [esi + 4]
mov dword [eax + 0x28], edx
mov dword [esi + 4], eax
inc dword [esi]
mov eax, dword [edi + 0xec]
mov edx, dword [edi + 0x164]
mov dword [esp + 0xac], eax
lea eax, [edi + 0x164]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0xe4]
inc ebx
cmp eax, 0x1268
mov dword [esp + 0x60], edx
mov dword [esp + 0x34], ebx
jge 0x431b18
inc eax
mov dword [edi + 0xe4], eax
cmp eax, 1
je 0x431b31
cmp byte [edi + 0xf4], 0
mov byte [edi + 0x13c], 0
jne 0x4037bd
jmp 0x4037b0
cmp byte [edi + 0x13c], 0
je 0x403c68
mov eax, dword [edi + 0xe4]
mov byte [edi + 0x13c], 0
cmp eax, 1
je 0x43259d
dec eax
mov dword [edi + 0xe4], eax
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x18]
cmp esi, dword [edi]
jb 0x43261f
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xac]
mov edx, dword [eax]
mov dword [eax + 0xec], ecx
mov ecx, dword [edx + 4]
cmp byte [ecx + eax + 0xd], 0
lea eax, [ecx + eax + 4]
jne 0x43262d
mov ecx, dword [eax + 4]
cmp byte [ecx + 0x10], 0
je 0x432856
cmp byte [eax + 9], 0
mov ecx, dword [ebp + 0x14]
mov byte [ecx], 1
jne 0x432638
mov esi, dword [eax + 4]
mov ebx, dword [ebp + 0x10]
cmp ebx, esi
je case.default.0x4326d4
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x432643
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x432655
cmp eax, 0xa
je 0x432676
cmp eax, 5
je 0x43268b
cmp eax, 0xb
je 0x432697
cmp eax, 0xc
je 0x4326b5
mov dword [ebx + 8], 1
mov dword [ebx], 0
mov eax, dword [esi + 8]
mov dword [ebx + 8], eax
cmp eax, 4
jne 0x4326ca
push 0x10
call fcn.00412aaa
add esp, 4
test eax, eax
je 0x432847
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 edi, dword [esp + 0x10]
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 0x43284e
cmp byte [eax + 0x18], 0
jne 0x432876
cmp byte [esi + 9], 0
jne 0x43288c
mov eax, dword [esi + 4]
cmp byte [eax + 0x20], 0
jne 0x432897
cmp byte [esi + 9], 0
jne 0x4328ad
cmp byte [esi + 8], 0
jne 0x4328cd
mov ebx, dword [esi + 4]
mov ecx, dword [ebx + 0x28]
mov dword [esp + 0xac], ecx
test ebx, ebx
je 0x403995
mov edi, dword [ebx + 0xc]
test edi, edi
je 0x40394b
mov eax, dword [edi + 0xc]
dec dword [eax]
mov edx, dword [edi + 0xc]
cmp dword [edx], 0
je 0x4328d6
push edi
call fcn.004127bd
add esp, 4
mov dword [ebx + 0xc], 0
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x4328f2
cmp eax, 0xa
je 0x432913
cmp eax, 5
je 0x432928
cmp eax, 0xb
je 0x432934
cmp eax, 0xc
je 0x432952
push ebx
mov dword [ebx + 8], 1
mov dword [ebx], 0
call fcn.004127bd
mov edi, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0xac]
mov dword [esi + 4], eax
mov byte [esi + 9], 0
dec dword [esi]
mov ecx, dword [edi]
mov eax, dword [ecx + 4]
add eax, edi
cmp byte [eax + 0xd], 0
jne 0x432967
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0x134]
mov dword [ecx + 0x14], edx
cmp byte [eax + 0xd], 0
mov eax, dword [eax + 8]
jne 0x432972
mov byte [eax + 0x18], 0
mov ecx, dword [edi]
mov eax, dword [ecx + 4]
add eax, edi
cmp byte [eax + 0xd], 0
jne 0x43297a
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0x13c]
mov dword [ecx + 0x1c], edx
cmp byte [eax + 0xd], 0
mov eax, dword [eax + 8]
jne 0x432985
mov byte [eax + 0x20], 0
cmp byte [0x4a56e5], 0
jne 0x43298d
mov ecx, dword [0x4a56e0]
cmp byte [0x4a56e4], 0
jne 0x4329af
mov esi, dword [ecx]
mov edx, dword [ecx + 8]
mov dword [esp + 0xac], edx
mov dword [esp + 0x30], ecx
test esi, esi
je 0x403aff
mov eax, dword [esi + 0x18]
test eax, eax
je 0x403a48
push eax
call fcn.004023f0
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x4329bb
cmp byte [esi + 0x10], 0
jne 0x403ad2
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x403ad2
mov edi, dword [ebx + 0xc]
test edi, edi
je 0x403a88
mov eax, dword [edi + 0xc]
dec dword [eax]
mov eax, dword [edi + 0xc]
cmp dword [eax], 0
je 0x4329ca
push edi
call fcn.004127bd
add esp, 4
mov dword [ebx + 0xc], 0
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x4329e6
cmp eax, 0xa
je 0x432a07
cmp eax, 5
je 0x432a1c
cmp eax, 0xb
je 0x432a28
cmp eax, 0xc
je 0x432a46
push ebx
mov dword [ebx + 8], 1
mov dword [ebx], 0
call fcn.004127bd
mov edi, dword [esp + 0x14]
add esp, 4
mov eax, dword [esi + 0xc]
dec dword [eax]
mov ecx, dword [esi + 0xc]
cmp dword [ecx], 0
jne 0x403af6
mov edx, dword [esi]
push edx
call fcn.004127bd
mov eax, dword [esi + 0xc]
add esp, 4
push eax
call fcn.004127bd
add esp, 4
push esi
call fcn.004127bd
add esp, 4
mov ecx, dword [esp + 0x30]
push ecx
call fcn.004127bd
mov edx, dword [esp + 0xb0]
add esp, 4
mov dword [0x4a56e0], edx
mov byte [0x4a56e5], 0
mov eax, dword [esp + 0xfc]
dec dword [0x4a56dc]
mov dword [edi + 0x140], eax
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x432a5b
mov eax, dword [esp + 0x40]
cmp eax, 8
je 0x432a6e
cmp eax, 0xa
je 0x432a93
cmp eax, 5
je 0x432aaa
cmp eax, 0xb
je 0x432ab8
cmp eax, 0xc
je 0x432ada
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 0x54]
xor esi, esi
mov dword [esp + 0x40], 1
mov dword [esp + 0x38], esi
test edi, edi
jbe 0x403ba1
lea ebx, [ebx]
mov edx, dword [ebx + esi*4]
push edx
call fcn.004127bd
inc esi
add esp, 4
cmp esi, edi
jb 0x403b90
push ebx
call fcn.004127bd
add esp, 4
cmp dword [esp + 0x80], 0
jbe 0x403c47
xor ebx, ebx
lea ebx, [ebx]
mov eax, dword [esp + 0x7c]
mov esi, dword [eax + ebx*4]
test esi, esi
je 0x403c39
mov edi, dword [esi + 0xc]
test edi, edi
je 0x403bf3
mov eax, dword [edi + 0xc]
dec dword [eax]
mov ecx, dword [edi + 0xc]
cmp dword [ecx], 0
je 0x432af1
push edi
call fcn.004127bd
add esp, 4
mov dword [esi + 0xc], 0
mov eax, dword [esi + 8]
cmp eax, 8
je 0x432b0d
cmp eax, 0xa
je 0x432b2e
cmp eax, 5
je 0x432b43
cmp eax, 0xb
je 0x432b4f
cmp eax, 0xc
je 0x432b6d
push esi
mov dword [esi + 8], 1
mov dword [esi], 0
call fcn.004127bd
add esp, 4
inc ebx
cmp ebx, dword [esp + 0x80]
jb 0x403bc0
mov edx, dword [esp + 0x7c]
push edx
call fcn.004127bd
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.0x4034c2
cmp byte [0x494c8b], 0
jne 0x403cb8
cmp byte [0x4a5e18], 0
jne 0x431b3e
mov esi, dword [sym.imp.USER32.dll_PeekMessageW]
push 1
push 0
push 0
push 0
lea eax, [esp + 0xc4]
push eax
call esi
test eax, eax
jne 0x403ea0
cmp byte [0x494c8e], 1
je 0x431b65
cmp dword [edi + 0xf0], 1
je 0x432580
cmp dword [0x4a5dd4], 0
jne 0x431b82
xor ebx, ebx
cmp byte [0x494c94], 1
je 0x431c37
cmp dword [edi + 0x46c], ebx
jne 0x431c51
cmp byte [0x4a5dec], 0
jne 0x431da5
push edi
call fcn.00404890
cmp al, 1
je case.default.0x4322de
cmp byte [0x4a5f60], 0
jne 0x432019
mov eax, dword [edi + 0xf0]
cmp eax, 7
je 0x4320ac
cmp eax, 8
je 0x432137
cmp eax, 9
je 0x432137
cmp eax, 2
je 0x432273
cmp eax, 3
je 0x432273
cmp eax, 4
je 0x432273
cmp eax, 5
je 0x432273
cmp eax, 6
je 0x432273
mov ecx, dword [esp + 0x34]
mov dword [edi + 0xec], ecx
mov eax, ecx
inc ecx
cmp eax, dword [0x4a6898]
mov dword [esp + 0x34], ecx
jg 0x432401
cmp eax, ebx
jle 0x432401
shl eax, 4
add eax, dword [0x4a68cc]
cmp eax, ebx
je 0x432401
mov esi, eax
mov ecx, dword [esi + 4]
mov dword [esp + 0x24], ebx
mov edx, dword [ecx]
movsx eax, word [edx + 8]
cmp eax, ebx
jne 0x432410
lea eax, [esp + 0x34]
push eax
push esi
push edi
call fcn.00403f50
cmp byte [edi + 0xf4], 0
jne 0x4037bd
xor ecx, ecx
jmp 0x4037b0
mov esi, dword [esp + 0x1c]
mov esi, dword [esi + 0x20]
mov dword [esp + 0x1c], esi
test esi, esi
jne 0x402e30
jmp 0x430e96
add eax, eax
cmp eax, 4
jae 0x403de7
mov eax, 4
xor ecx, ecx
mov dword [esp + 0x5c], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00412aaa
mov edx, dword [esp + 0x58]
add esp, 4
lea ecx, [edi*4]
push ecx
push edx
push eax
mov dword [esp + 0x70], eax
call fcn.00412300
mov eax, dword [esp + 0x60]
add esp, 0xc
push eax
call fcn.004127bd
mov ecx, dword [esp + 0x68]
add esp, 4
mov dword [esp + 0x54], ecx
jmp 0x403005
add eax, eax
cmp eax, 4
jae 0x403e44
mov eax, 4
xor ecx, ecx
mov dword [esp + 0x84], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00412aaa
mov ebx, dword [esp + 0x80]
mov edi, eax
add esp, 4
lea eax, [esi*4]
push eax
push ebx
push edi
call fcn.00412300
add esp, 0xc
push ebx
call fcn.004127bd
add esp, 4
mov dword [esp + 0x7c], edi
jmp 0x403089
mov dword [ebx + 0x1c], edi
mov dword [ebx + 0x18], edi
jmp 0x403653
cmp dword [esp + 0xb8], 0x12
je 0x431b4f
lea ecx, [esp + 0xb4]
push ecx
mov ecx, 0x4a5de0
call fcn.0040d740
test eax, eax
jne 0x403efa
lea edx, [esp + 0xb4]
push edx
mov ebx, 0x4a5de0
call fcn.0040d760
test eax, eax
jne 0x403ef6
lea eax, [esp + 0xb4]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea ecx, [esp + 0xb4]
push ecx
call dword [sym.imp.USER32.dll_DispatchMessageW]
mov edi, dword [esp + 0x10]
push 1
push 0
push 0
push 0
lea edx, [esp + 0xc4]
push edx
call esi
test eax, eax
je 0x403c9e
jmp 0x403ea0
mov esi, 8
jmp 0x402d8b
xor eax, eax
jmp 0x402ddf
mov eax, dword [esp + 0x5c]
dec dword [eax]
lea esi, [esp + 0x50]
call fcn.0040d6a0
mov edx, dword [esp + 0x54]
inc edx
push edx
call fcn.004497a3
xor ecx, ecx
mov esi, eax
mov edx, 2
mul edx
seto cl
mov dword [esp + 0x58], esi
neg ecx
or ecx, eax
push ecx
call fcn.00412aaa
mov edx, dword [esp + 0x54]
mov esi, eax
mov eax, dword [esp + 0x58]
add esp, 4
lea ecx, [eax + eax + 2]
push ecx
push edx
push esi
call fcn.00412300
add esp, 0xc
mov dword [esp + 0x50], esi
jmp 0x402dfd
mov eax, dword [esp + 0x30]
push eax
push 0x6f
jmp 0x432b89
mov dword [esp + 0x68], eax
mov eax, dword [edx + 0x138]
sub eax, 1
js 0x430e96
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
add eax, ecx
cdq
sub eax, edx
mov edx, dword [esp + 0x68]
sar eax, 1
mov ecx, dword [edx + eax*4]
lea esi, [esp + 0x50]
mov dword [esp + 0x1c], eax
call fcn.00405520
test eax, eax
jge 0x430e7d
mov eax, dword [esp + 0x1c]
dec eax
mov dword [esp + 0x48], eax
jmp 0x430e8c
jle 0x430eb4
mov ecx, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x4c], ecx
mov edx, dword [esp + 0x48]
cmp dword [esp + 0x4c], edx
jle 0x430e44
lea ecx, [esp + 0x50]
call fcn.004059c0
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x10]
push eax
push edi
push ebx
push ecx
call fcn.004703a7
jmp 0x403c56
mov eax, dword [esp + 0x48]
cmp dword [esp + 0x4c], eax
jg 0x430e96
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x1c]
mov esi, dword [ecx + edx*4]
lea ecx, [esp + 0x50]
call fcn.004059c0
jmp 0x402e8e
sub ecx, 0x37
jne 0x402f43
mov edx, eax
mov eax, dword [ebx + 4]
mov ecx, dword [eax + edx*4 - 4]
movsx edx, word [ecx + 0xa]
mov eax, dword [esp + 0x10]
push edx
push 0x6f
push eax
jmp 0x432b8e
dec dword [esp + 0x24]
inc eax
jmp 0x402f32
inc dword [esp + 0x24]
jmp 0x402f43
mov dword [esp + 0x60], ecx
jmp 0x402f8e
mov ecx, dword [eax]
mov ecx, dword [ecx]
cmp ecx, 0x24
jne 0x430f2a
mov bl, 1
jmp 0x430f3b
cmp ecx, 0x1e
jne 0x4312fd
mov dword [esp + 0x2c], 0x100
mov ecx, dword [eax + 4]
inc dword [esp + 0x18]
add eax, 4
cmp word [ecx + 8], 0
je 0x430f16
jmp 0x402fe3
xor eax, eax
jmp 0x403019
mov eax, dword [ebp + 8]
mov edx, dword [eax + 4]
mov ecx, dword [esp + 0x74]
mov eax, dword [edx + ecx*4]
cmp word [eax + 8], 0x33
jne 0x431309
mov esi, dword [eax]
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
xor ecx, ecx
call fcn.00401810
test al, al
je 0x431326
test dword [esp + 0x20], 0x100
je 0x430fc8
test dword [esp + 0x2c], 0x100
jne 0x430fc8
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x74]
mov ecx, dword [edx + eax*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [esp + 0x10]
push edx
push 0xb0
push eax
jmp 0x432b8e
mov eax, dword [esp + 0x1c]
mov edi, 1
add dword [esp + 0x74], edi
add dword [esp + 0x18], edi
cmp dword [eax + 8], 5
jne 0x43103d
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x74]
mov edx, dword [edx + eax*4]
cmp word [edx + 8], 0x4e
jne 0x43103d
mov edx, dword [esp + 0x10]
push 0
lea eax, [esp + 0x20]
push eax
push edx
lea eax, [esp + 0x80]
call fcn.00401650
test eax, eax
je 0x43103d
lea esi, [esp + 0x38]
call fcn.00404b80
lea ecx, [esp + 0x50]
call fcn.00444c7b
lea ecx, [esp + 0x78]
call fcn.00411e00
mov eax, edi
jmp 0x403c56
lea esi, [esp + 0x38]
call fcn.00404b80
mov eax, dword [esp + 0x1c]
push esi
lea esi, [esp + 0x7c]
mov dword [esp + 0x44], 6
mov dword [esp + 0x3c], eax
call fcn.00401f40
mov esi, dword [esp + 0x80]
mov ebx, dword [esp + 0x28]
jmp 0x40310d
push eax
call fcn.0044648c
mov dword [esp + 0x44], 0
jmp 0x403039
mov eax, dword [esp + 0x38]
test eax, eax
je 0x40306a
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [esp + 0x38]
push edx
call fcn.004127bd
add esp, 4
jmp 0x40306a
mov eax, dword [esp + 0x38]
test eax, eax
je 0x40306a
push eax
call fcn.004476f1
jmp 0x40306a
lea eax, [esp + 0x38]
call fcn.0040f2a0
jmp 0x40306a
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 4]
push ecx
call fcn.004127bd
mov edx, dword [esp + 0x3c]
add esp, 4
push edx
call fcn.004127bd
add esp, 4
jmp 0x40306a
mov eax, dword [esp + 0x38]
test eax, eax
je 0x40306a
push eax
call fcn.0044e5a3
jmp 0x40306a
dec eax
cmp eax, 0xb
ja case.default.0x431110
jmp dword [eax*4 + 0x432bb9]
push 0x10
call fcn.00412aaa
add esp, 4
test eax, eax
je 0x43114d
mov ecx, dword [esp + 0x44]
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 0x4030be
xor eax, eax
mov dword [ebx + 0xc], eax
jmp 0x4030be
mov eax, dword [esp + 0x38]
mov dword [ebx], eax
mov ecx, dword [esp + 0x3c]
mov dword [ebx + 4], ecx
jmp 0x4030be
fld qword [esp + 0x38]
fstp qword [ebx]
jmp 0x4030be
mov eax, dword [esp + 0x38]
mov dword [ebx], eax
jmp 0x4030be
push 0x214
call fcn.00412aaa
add esp, 4
test eax, eax
je 0x4311a6
mov esi, dword [esp + 0x38]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x4311a8
xor eax, eax
mov dword [ebx], eax
cmp dword [eax + 4], 0
je case.default.0x431110
mov eax, dword [eax + 4]
inc dword [eax]
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x7c]
jmp 0x4030be
cmp dword [esp + 0x38], 0
je case.default.0x431110
push 0x10
call fcn.00412aaa
add esp, 4
push eax
mov dword [ebx], eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov ecx, dword [esp + 0x38]
mov edx, dword [ebx]
push ecx
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
jge 0x4030be
mov eax, dword [ebx]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebx]
push ecx
call fcn.004127bd
add esp, 4
mov dword [ebx], 0
jmp 0x4030be
mov dl, byte [esp + 0x38]
mov byte [ebx], dl
jmp 0x4030be
push 0x18
call fcn.00412aaa
add esp, 4
test eax, eax
je 0x43124b
mov ecx, dword [esp + 0x38]
push ecx
push eax
call fcn.0044e69f
mov dword [ebx], eax
jmp 0x4030be
xor eax, eax
mov dword [ebx], eax
jmp 0x4030be
push 8
call fcn.00412aaa
mov dword [ebx], eax
mov edx, dword [esp + 0x3c]
mov ecx, dword [edx]
mov dword [eax], ecx
mov edx, dword [ebx]
mov eax, dword [edx]
add esp, 4
test eax, eax
je 0x4312a0
push eax
call fcn.00412aaa
mov ecx, dword [ebx]
mov dword [ecx + 4], eax
mov eax, dword [ebx]
mov edx, dword [eax]
mov ecx, dword [esp + 0x3c]
mov eax, dword [eax + 4]
add esp, 4
push edx
mov edx, dword [ecx + 4]
push edx
push eax
call fcn.00412300
add esp, 0xc
jmp 0x4030be
push 1
call fcn.00412aaa
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 0x4030be
push 0x14
call fcn.00412aaa
add esp, 4
test eax, eax
je 0x43124b
mov ecx, dword [esp + 0x38]
push ecx
push eax
call fcn.0047064a
mov dword [ebx], eax
jmp 0x4030be
mov edi, dword [esp + 0x7c]
mov esi, dword [esp + 0x80]
jmp 0x4030be
xor eax, eax
jmp 0x4030c0
add dword [esp + 0x18], 2
jmp 0x40310d
push 0xffffffffffffffff
push 0x91
jmp 0x432b89
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [esp + 0x10]
push edx
push 0x91
push eax
jmp 0x432b8e
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x74]
mov ecx, dword [edx + eax*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [esp + 0x10]
push edx
push 0x79
push eax
jmp 0x432b8e
mov ecx, dword [edi + 4]
mov edx, dword [ecx + edx*4]
movsx eax, word [edx + 0xa]
push eax
push 0x6f
jmp 0x432b89
mov dword [esp + 0xa4], esi
jmp 0x4031ba
mov edx, dword [0x4a56e0]
mov dword [edx], eax
mov eax, dword [esp + 0xa4]
mov ecx, dword [0x4a56e0]
mov dword [ecx + 4], eax
mov byte [0x4a56e5], 0
jmp 0x403214
mov dword [edi + 4], esi
jmp 0x4031f4
push 0x20
mov dword [esp + 0x24], eax
call fcn.00412aaa
add esp, 4
cmp eax, esi
je 0x4313af
push eax
call fcn.0044da09
jmp 0x4313b1
xor eax, eax
mov ecx, dword [esp + 0x20]
push ecx
mov esi, eax
mov dword [edi], eax
call fcn.0040ece0
mov edx, dword [edi]
mov esi, dword [esp + 0x20]
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.0045214f
mov edx, dword [esi + 0x1c]
mov eax, dword [edi]
push edx
add eax, 0x1c
push eax
mov ecx, edi
call fcn.0045214f
xor esi, esi
jmp 0x403205
xor edi, edi
jmp 0x403205
mov edi, eax
mov eax, dword [eax + 0x18]
cmp eax, esi
je 0x431429
push eax
lea ecx, [esp + 0xa4]
call fcn.004023f0
mov eax, dword [edi + 0x1c]
cmp eax, esi
je 0x431441
push eax
lea ecx, [esp + 0xa4]
call fcn.004023f0
cmp byte [edi + 0x10], 0
jne 0x43145d
mov ecx, dword [edi + 0x14]
cmp ecx, esi
je 0x43145d
push 1
call fcn.0040f200
push edi
call fcn.0044648c
jmp 0x403229
mov edi, dword [edx]
mov edi, dword [edi]
cmp edi, 0x24
je 0x43148a
cmp edi, 0x1e
jne 0x43148e
mov dword [esp + 0x2c], 0x100
mov eax, dword [esp + 0x2c]
inc esi
add edx, 4
mov edi, dword [edx]
cmp word [edi + 8], bx
je 0x431468
mov dword [esp + 0x18], esi
jmp 0x40329d
mov edi, dword [esp + 0x7c]
mov edx, dword [edi + edx*4]
mov ecx, dword [ecx + esi*4]
push 1
push eax
push edx
call fcn.004374e1
push eax
mov eax, dword [ecx]
push eax
call fcn.0045e1fd
test al, al
je 0x431ad6
add esi, 2
mov dword [esp + 0x18], esi
jmp 0x403674
lea ebx, [esp + 0x88]
call fcn.0040e430
mov ecx, dword [esp + 0x60]
mov edx, dword [ecx + 4]
mov dword [esp + 0x9c], 0
mov esi, dword [edx + esi*4 + 8]
movzx eax, word [esi + 8]
cmp ax, 0x4a
je 0x43150f
cmp ax, 0x49
je 0x43150f
push esi
jmp 0x43152c
push esi
lea edi, [esp + 0x8c]
call fcn.00405b00
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + edx*4 + 0xc]
push eax
lea edi, [esp + 0x8c]
call fcn.00405b00
mov edi, 0x7f
lea esi, [esp + 0xa0]
call fcn.004062c0
push esi
lea edi, [esp + 0x8c]
call fcn.00405b00
mov ecx, dword [esp + 0x10]
push 0xffffffffffffffff
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0xa4]
push eax
push edi
call fcn.00402500
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x60]
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
add eax, eax
add eax, eax
mov esi, dword [eax + edx]
mov esi, dword [esi]
mov dword [esp + 0x30], eax
or ecx, 0x200
mov eax, 1
lea edx, [esp + 0x38]
call fcn.0040d4d0
jmp 0x403655
push esi
mov eax, edi
push edx
mov edi, 0x4a56cc
call fcn.00405130
jmp 0x403655
mov ecx, dword [0x4a56e0]
mov ebx, dword [ecx + 8]
jmp 0x403305
or dword [0x4a6d7c], 1
push 0x4a6d5c
call fcn.0044da09
push 0x42ac73
call fcn.004127a6
add esp, 4
xor eax, eax
jmp 0x403324
test edx, edx
jne 0x431620
test eax, eax
jne 0x4033ab
jmp 0x403358
mov ebx, dword [esp + 0x28]
xor eax, eax
jmp 0x40339d
or eax, 0xffffffff
jmp 0x40339d
mov ecx, dword [ecx]
mov eax, dword [edi]
call fcn.00405550
jmp 0x40339d
mov eax, dword [ebx]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x4033b8
push eax
push edi
call fcn.004464a7
add esp, 8
test al, al
je 0x43165d
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 0x4033b8
mov edx, dword [ebx]
mov eax, dword [esp + 0x34]
mov dword [eax + 0x18], edx
mov eax, dword [ebx]
mov ecx, dword [eax + 0x18]
mov dword [ebx], ecx
jmp 0x403337
push edi
push eax
call fcn.004464a7
add esp, 8
test al, al
je 0x4316a2
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 0x4033b8
mov eax, dword [ebx]
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x2c], eax
mov dword [ebx], edx
jmp 0x403340
mov byte [esp + 0x17], 1
jmp 0x4033b8
mov ebx, dword [ebx]
test ebx, ebx
je 0x4033f0
mov ecx, dword [esp + 0x20]
mov ebx, dword [ebx + 0x14]
push ecx
call fcn.00404c00
jmp 0x403655
xor eax, eax
jmp 0x403455
xor ebx, ebx
jmp 0x40345a
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 0x403492
push eax
call fcn.004497a3
mov dword [ebx + 8], eax
mov eax, dword [ebx]
test eax, eax
je 0x43172a
push eax
call fcn.004127bd
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.00412aaa
add esp, 4
xor ecx, ecx
mov dword [ebx], eax
mov word [eax + esi*2], cx
jmp 0x40347c
xor eax, eax
jmp 0x4034f6
mov eax, dword [edi]
mov dword [esi], eax
mov ecx, dword [edi + 4]
mov dword [esi + 4], ecx
jmp case.default.0x4034c2
fld qword [edi]
fstp qword [esi]
jmp case.default.0x4034c2
mov edx, dword [edi]
mov dword [esi], edx
jmp case.default.0x4034c2
push 0x214
call fcn.00412aaa
add esp, 4
test eax, eax
je 0x4317a4
mov edx, dword [esp + 0x20]
mov esi, dword [edx]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x4317a6
xor eax, eax
mov ecx, dword [esp + 0x34]
mov dword [ecx], eax
cmp dword [eax + 4], 0
je case.default.0x4034c2
mov eax, dword [eax + 4]
inc dword [eax]
jmp case.default.0x4034c2
cmp dword [edi], ecx
je case.default.0x4034c2
push 0x10
call fcn.00412aaa
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
jge case.default.0x4034c2
mov ecx, dword [esi]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [esi]
push edx
call fcn.004127bd
add esp, 4
mov dword [esi], 0
jmp case.default.0x4034c2
mov al, byte [edi]
mov byte [esi], al
jmp case.default.0x4034c2
push 0x18
call fcn.00412aaa
add esp, 4
test eax, eax
je 0x4318bb
mov ecx, dword [edi]
push ecx
push eax
call fcn.0044e69f
jmp 0x403c61
push 8
call fcn.00412aaa
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 0x43187f
push eax
call fcn.00412aaa
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.00412300
add esp, 0xc
jmp case.default.0x4034c2
push 1
call fcn.00412aaa
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.0x4034c2
push 0x14
call fcn.00412aaa
add esp, 4
test eax, eax
je 0x4318bb
mov ecx, dword [edi]
push ecx
push eax
call fcn.0047064a
jmp 0x403c61
xor eax, eax
jmp 0x403c61
or dword [0x4a6d7c], 1
push 0x4a6d5c
call fcn.0044da09
push 0x42ac73
call fcn.004127a6
add esp, 4
jmp 0x403523
cmp edx, edi
jne 0x43191b
cmp eax, edi
jne 0x4035a5
jmp 0x403556
xor edi, edi
xor eax, eax
jmp 0x40359b
or eax, 0xffffffff
xor edi, edi
jmp 0x40359b
mov ecx, dword [esi]
mov eax, dword [ebx]
call fcn.00405550
jmp 0x40359b
lea eax, [esi + 0x18]
mov dword [esp + 0x20], eax
mov eax, dword [eax]
cmp eax, edi
je 0x4035b6
push eax
push ebx
mov dword [esp + 0x6c], eax
call fcn.004464a7
add esp, 8
test al, al
je 0x431964
mov eax, dword [esp + 0x64]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [edx], ecx
mov dword [eax + 0x1c], esi
mov esi, eax
cmp dword [eax + 0x18], edi
je 0x4035b6
add eax, 0x18
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x18], esi
mov dword [esp + 0x2c], esi
mov esi, dword [ecx]
jmp 0x403540
push ebx
push eax
mov dword [esp + 0x6c], eax
call fcn.004464a7
add esp, 8
test al, al
je 0x4319b2
mov eax, dword [esp + 0x64]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x20]
mov dword [edx], ecx
mov dword [eax + 0x18], esi
mov esi, eax
cmp dword [eax + 0x1c], edi
je 0x4035b6
add eax, 0x1c
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x1c], esi
mov dword [esp + 0x34], esi
mov esi, dword [ecx]
jmp 0x403540
cmp edx, edi
jne 0x4319fe
cmp eax, edi
jne 0x403640
jmp 0x4035f1
xor edi, edi
xor eax, eax
jmp 0x403632
or eax, 0xffffffff
xor edi, edi
jmp 0x403632
mov ecx, dword [esi]
mov eax, dword [ebx]
call fcn.00405550
jmp 0x403632
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], esi
mov dword [esi + 0x18], edi
jmp 0x40364f
mov ebx, esi
jmp 0x40364f
mov ecx, dword [esp + 0x18]
mov edx, dword [eax + ecx*4 + 8]
movzx eax, word [edx + 8]
cmp ax, 0x4a
je 0x431a40
cmp ax, 0x49
je 0x431a40
add dword [esp + 0x18], 4
jmp 0x403674
add dword [esp + 0x18], 5
jmp 0x403674
cmp ax, 0x3f
jg 0x40368a
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x40368a
push eax
call fcn.0044648c
jmp 0x40368a
xor esi, esi
mov eax, dword [esp + 0x8c]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x431a88
push eax
call fcn.0044f15d
inc esi
cmp esi, dword [esp + 0x90]
jb 0x431a70
jmp 0x4036a3
mov eax, dword [esi + 4]
lea edx, [esp + 0x120]
push edx
push eax
mov dword [esp + 0x130], 1
mov byte [esp + 0x138], 0
mov byte [esp + 0x140], 0
mov byte [esp + 0x148], 0
call fcn.00473e78
mov byte [esi + 9], 0
xor ecx, ecx
jmp 0x40374d
mov edx, dword [esp + 0x60]
mov eax, dword [edx + 4]
mov ecx, dword [eax + esi*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [esp + 0x10]
push edx
push 0x79
push eax
call fcn.00445c74
lea ecx, [esp + 0xa0]
push ecx
call fcn.0044e5e1
lea ecx, [esp + 0x88]
call fcn.0040f6f0
jmp 0x432b93
xor eax, eax
xor ecx, ecx
jmp 0x403744
push 0xffffffffffffffff
push 0x9a
push edi
mov byte [0x494c8a], 0
call fcn.00445c74
jmp 0x4037da
push edi
call fcn.0040e380
xor ecx, ecx
jmp 0x403796
cmp dword [edi + 0xf0], ecx
je 0x403cb8
jmp 0x403c7e
mov byte [edi + 0xf4], 1
mov dword [edi + 0xf0], 1
jmp 0x403c9e
mov byte [0x494c94], 0
mov byte [0x494c8e], 0
mov dword [edi + 0xf0], 1
jmp 0x403cab
mov eax, dword [0x4a5dd8]
mov ebx, dword [eax]
call fcn.00436e0d
mov eax, dword [edi + 0x1a8]
xor esi, esi
test eax, eax
jbe 0x431bc1
mov ecx, dword [edi + 0x1a4]
mov edx, dword [ecx]
cmp dword [edx], 0
je 0x431bb9
mov edx, dword [edx]
cmp dword [edx], ebx
je 0x431bc1
inc esi
add ecx, 4
cmp esi, eax
jb 0x431ba4
xor ebx, ebx
cmp esi, eax
je 0x403cc7
lea eax, [esp + 0x160]
push eax
lea ecx, [esp + 0x168]
push ecx
lea edx, [esp + 0x158]
push edx
lea eax, [esp + 0x3c]
push eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x1a4]
mov edx, dword [ecx + esi*4]
mov ecx, dword [edx]
mov edi, dword [ecx + 8]
push eax
call fcn.0040e350
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x1a4]
mov eax, dword [edx + esi*4]
mov ecx, dword [eax]
mov ebx, dword [esp + 0x30]
add ecx, 0x18
inc ebx
push ecx
lea esi, [edi + 0x144]
mov dword [esp + 0x34], ebx
call fcn.0040ece0
push 0
push 1
push ebx
push edi
call fcn.004802e0
jmp case.default.0x4322de
cmp byte [0x494c8b], 0
jne 0x403cd4
push 0xa
call dword [sym.imp.KERNEL32.DLL_Sleep]
jmp case.default.0x4322de
cmp byte [0x4a6ce4], 0
jne 0x403ce0
mov byte [0x4a6ce4], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
mov esi, dword [edi + 0x464]
mov ebx, eax
lea eax, [edi + 0x464]
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x68], esi
push ecx
lea edx, [esp + 0x6c]
mov dword [esp], 0
push edx
call fcn.0044387d
test al, al
je 0x431d3a
mov ecx, dword [esi]
cmp byte [ecx + 0x11], 0
jne 0x431d22
mov edx, dword [ecx + 0x14]
mov eax, ebx
sub eax, edx
cmp ebx, edx
jae 0x431cbf
dec eax
cmp eax, dword [ecx + 0x18]
jb 0x431d22
inc dword [esp + 0x20]
mov dword [ecx + 0x14], ebx
lea eax, [esp + 0x148]
push eax
lea ecx, [esp + 0x16c]
push ecx
mov ecx, dword [esi]
mov edi, dword [ecx]
lea edx, [esp + 0x164]
push edx
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x70]
push eax
push edx
call fcn.0040e350
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x10]
mov ecx, dword [esi]
push 0
inc eax
push 1
push eax
push edx
mov dword [esp + 0x74], eax
mov byte [ecx + 0x10], 1
call fcn.004802e0
mov eax, dword [esi]
mov edi, dword [esp + 0x10]
mov byte [eax + 0x10], 0
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x6c]
push edx
call fcn.0044388d
mov esi, dword [esp + 0x68]
jmp 0x431c89
mov esi, dword [esp + 0x1c]
mov eax, dword [esi]
mov dword [esp + 0x1c], eax
push ecx
lea ecx, [esp + 0x20]
mov dword [esp], 0
push ecx
call fcn.0044387d
test al, al
je 0x431d8c
mov edx, dword [esp + 0x1c]
mov eax, dword [edx]
cmp byte [eax + 0x11], 0
jne 0x431d7f
lea ecx, [esp + 0x68]
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.0044388d
jmp 0x431d44
lea eax, [esp + 0x1c]
push eax
push esi
call fcn.00450e6e
jmp 0x431d3e
cmp dword [esp + 0x20], 0
mov byte [0x4a6ce4], 0
jg case.default.0x4322de
xor ebx, ebx
jmp 0x403ce0
cmp byte [edi + 0x470], 1
je 0x403ced
cmp byte [0x4a5e18], 1
je 0x403ced
lea ecx, [esp + 0xb4]
push ecx
call fcn.0044e102
lea edx, [esp + 0xb4]
push edx
push 0x4a5de0
call fcn.00450a3a
test al, al
je 0x432002
lea eax, [esp + 0xb8]
push eax
call fcn.0043a552
test al, al
jne 0x431dcc
mov edi, dword [esp + 0xb8]
lea ecx, [esp + 0x16c]
push ecx
lea edx, [esp + 0x158]
push edx
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x160]
push eax
lea ecx, [esp + 0x58]
push ecx
push edx
call fcn.0040e350
test al, al
je 0x431dcc
xor ebx, ebx
mov edi, 1
lea esi, [esp + 0x88]
mov dword [esp + 0x88], ebx
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], ebx
call fcn.00404b80
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x90], edi
mov edi, str._GUI_CTRLID
lea esi, [esp + 0x174]
mov dword [esp + 0x88], eax
call fcn.00405a50
lea eax, [ebx + 2]
lea ecx, [ebx + 1]
lea edx, [esp + 0x88]
call fcn.0040d4d0
mov ecx, esi
call fcn.004059c0
lea esi, [esp + 0x88]
call fcn.00404b80
mov ecx, dword [esp + 0xc8]
mov edi, str._GUI_WINHANDLE
lea esi, [esp + 0x184]
mov dword [esp + 0x90], 7
mov dword [esp + 0x88], ecx
call fcn.00405a50
lea eax, [ebx + 2]
lea ecx, [ebx + 1]
lea edx, [esp + 0x88]
call fcn.0040d4d0
mov ecx, esi
call fcn.004059c0
lea esi, [esp + 0x88]
call fcn.00404b80
mov edx, dword [esp + 0xcc]
mov edi, str._GUI_CTRLHANDLE
lea esi, [esp + 0x194]
mov dword [esp + 0x90], 7
mov dword [esp + 0x88], edx
call fcn.00405a50
lea eax, [ebx + 2]
lea ecx, [ebx + 1]
lea edx, [esp + 0x88]
call fcn.0040d4d0
mov ecx, esi
call fcn.004059c0
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x10]
push ebx
push 1
inc eax
push eax
push esi
mov byte [esi + 0x470], 1
call fcn.004802e0
mov byte [esi + 0x470], bl
lea esi, [esp + 0x88]
jmp 0x431fe8
xor ebx, ebx
mov edi, 1
lea esi, [esp + 0xe8]
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xf0], edi
mov dword [esp + 0xf4], ebx
call fcn.00404b80
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xf0], edi
mov edi, str._TRAY_ID
lea esi, [esp + 0x1a4]
mov dword [esp + 0xe8], eax
call fcn.00405a50
lea eax, [ebx + 2]
lea ecx, [ebx + 1]
lea edx, [esp + 0xe8]
call fcn.0040d4d0
mov ecx, esi
call fcn.004059c0
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x10]
push ebx
push 1
inc ecx
push ecx
push esi
mov byte [esi + 0x471], 1
call fcn.004802e0
mov byte [esi + 0x471], bl
lea esi, [esp + 0xe8]
call fcn.00404b80
lea ecx, [esp + 0xb8]
call fcn.004059c0
mov edi, dword [esp + 0x10]
jmp case.default.0x4322de
lea ecx, [esp + 0xb8]
call fcn.004059c0
mov edi, dword [esp + 0x10]
xor ebx, ebx
jmp 0x403ced
cmp byte [edi + 0x471], 1
je 0x403d08
lea ecx, [esp + 0xb4]
push ecx
call fcn.0044e102
lea edx, [esp + 0xb4]
push edx
push 0x4a5ec0
call fcn.004528a8
test al, al
je 0x432095
lea eax, [esp + 0xb8]
push eax
call fcn.0043a552
test al, al
jne 0x432033
mov edi, dword [esp + 0xb8]
lea ecx, [esp + 0x14c]
push ecx
lea edx, [esp + 0x174]
push edx
mov edx, dword [esp + 0x18]
lea eax, [esp + 0xa8]
push eax
lea ecx, [esp + 0x38]
push ecx
push edx
call fcn.0040e350
test al, al
je 0x432033
jmp 0x431f5a
lea ecx, [esp + 0xb8]
call fcn.004059c0
mov edi, dword [esp + 0x10]
xor ebx, ebx
jmp 0x403d08
mov edx, dword [edi + 0x45c]
push 0xa
push edx
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
mov dword [esp + 0x9c], eax
cmp eax, 0x102
je case.default.0x4322de
mov ecx, dword [edi + 0x45c]
lea eax, [esp + 0x9c]
push eax
push ecx
call dword [sym.imp.KERNEL32.DLL_GetExitCodeProcess]
mov edx, dword [edi + 0x45c]
push edx
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov eax, dword [esp + 0x9c]
mov ecx, dword [edi]
mov dword [esp + 0x68], eax
mov eax, dword [ecx + 4]
jmp 0x43211a
push eax
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov dword [edi + 0x460], ebx
mov edx, dword [edi]
mov eax, dword [edx + 4]
mov dword [esp + 0x68], ebx
add eax, edi
lea ecx, [esp + 0x68]
call fcn.0040d920
mov byte [edi + 0x13c], 1
mov dword [edi + 0xf0], ebx
jmp case.default.0x4322de
mov esi, dword [sym.imp.KERNEL32.DLL_Sleep]
push 0xa
call esi
cmp dword [edi + 0x454], ebx
je 0x432183
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [edi + 0x458]
cmp eax, ecx
jae 0x432169
sub eax, ecx
dec eax
jmp 0x43216b
sub eax, ecx
cmp eax, dword [edi + 0x454]
jb 0x432183
mov eax, dword [edi + 0x460]
cmp eax, ebx
je 0x432111
jmp 0x432104
mov edx, dword [edi + 0x444]
lea eax, [esp + 0x17]
push eax
lea ecx, [esp + 0x2c]
push ecx
push edx
call fcn.004471e5
add esp, 0xc
cmp dword [edi + 0xf0], 9
jne 0x4321c8
cmp byte [esp + 0x17], 0
jne 0x4321be
mov byte [esp + 0x17], 1
jmp 0x4321d3
mov byte [esp + 0x17], 0
jmp case.default.0x4322de
cmp byte [esp + 0x17], 1
jne case.default.0x4322de
mov eax, dword [edi + 0x460]
mov dword [esp + 0x48], 0xcccccccc
cmp eax, ebx
je 0x432208
lea ecx, [esp + 0x48]
push ecx
push eax
call dword [sym.imp.KERNEL32.DLL_GetExitCodeProcess]
mov edx, dword [edi + 0x460]
push edx
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov dword [edi + 0x460], ebx
cmp dword [edi + 0xf0], 8
jne 0x432246
mov eax, dword [esp + 0x28]
fild dword [esp + 0x28]
test eax, eax
jge 0x43222b
fadd qword [0x48d2f0]
mov edx, dword [edi]
fstp qword [esp + 0x68]
mov eax, dword [edx + 4]
lea ecx, [esp + 0x68]
push ecx
add eax, edi
push eax
call fcn.00455f41
jmp 0x432258
mov edx, dword [edi]
mov ecx, dword [esp + 0x48]
mov eax, dword [edx + 4]
push ebx
push ecx
add eax, edi
call fcn.004053e0
mov eax, dword [edi + 0x2fc]
push eax
mov byte [edi + 0x13c], 1
mov dword [edi + 0xf0], ebx
call esi
jmp case.default.0x4322de
push 0xa
call dword [sym.imp.KERNEL32.DLL_Sleep]
cmp dword [edi + 0x2f8], ebx
je 0x4322cc
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [edi + 0x300]
cmp eax, ecx
jae 0x4322a3
sub eax, ecx
dec eax
jmp 0x4322a5
sub eax, ecx
cmp eax, dword [edi + 0x2f8]
jb 0x4322cc
cmp dword [edi + 0xf0], 2
je 0x432125
mov ecx, dword [edi]
mov eax, dword [ecx + 4]
mov dword [esp + 0x68], ebx
jmp 0x43211a
mov eax, dword [edi + 0xf0]
add eax, 0xfffffffd
cmp eax, 3
ja case.default.0x4322de
jmp dword [eax*4 + 0x432be9]
push edi
call fcn.0046b975
jmp 0x432313
push edi
call fcn.0046b975
mov esi, eax
cmp esi, ebx
jl 0x43231d
jg case.default.0x4322de
jmp 0x432353
push 1
push edi
call fcn.0046b478
mov esi, eax
cmp esi, ebx
jge 0x432345
mov eax, dword [edi]
mov eax, dword [eax + 4]
mov edx, esi
push ebx
neg edx
push edx
add eax, edi
call fcn.004053a0
mov ecx, dword [edi]
mov eax, dword [ecx + 4]
add eax, edi
lea ecx, [esp + 0x68]
mov dword [esp + 0x68], ebx
call fcn.0040d920
cmp esi, ebx
je case.default.0x4322de
cmp esi, ebx
jle 0x4323c3
mov eax, dword [edi + 0xf0]
cmp eax, 5
je 0x43236b
cmp eax, 3
jne 0x4323c3
mov edx, dword [edi + 0x1d8]
mov ebx, dword [edx]
xor eax, eax
lea esi, [esp + 0xd8]
mov dword [esp + 0xd8], eax
mov dword [esp + 0xe0], 1
mov dword [esp + 0xe4], eax
call fcn.00404b80
mov ecx, dword [edi]
mov edx, dword [ecx + 4]
push 0
push esi
add edx, edi
push edx
mov dword [esp + 0xec], 7
mov dword [esp + 0xe4], ebx
call fcn.0047348e
call fcn.00404b80
xor ebx, ebx
mov eax, dword [edi + 0x2fc]
push eax
mov byte [edi + 0x13c], 1
mov dword [edi + 0xf0], ebx
call fcn.00438357
add esp, 4
jmp case.default.0x4322de
push 1
push edi
call fcn.0046b478
mov esi, eax
cmp esi, ebx
jl 0x43231d
jle 0x432353
jmp case.default.0x4322de
mov dword [edi + 0xf0], 1
jmp case.default.0x4322de
dec eax
cmp eax, 0x7e
ja case.0x432421.2
movzx eax, byte [eax + 0x432c11]
jmp dword [eax*4 + 0x432bf9]
push edi
mov eax, esi
call fcn.00404980
jmp case.default.0x4322de
lea ecx, [esp + 0x100]
push ecx
push edi
lea ecx, [esp + 0x2c]
mov edx, esi
mov dword [esp + 0x108], ebx
mov dword [esp + 0x110], 1
mov dword [esp + 0x114], ebx
call fcn.00404dc0
test eax, eax
jne 0x43248c
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x24]
mov eax, dword [edx + eax*4]
cmp word [eax + 8], 0x7f
je 0x43248c
movsx ecx, word [eax + 0xa]
push ecx
push 0x72
push edi
call fcn.00445c74
lea esi, [esp + 0x100]
call fcn.00404b80
jmp case.default.0x4322de
lea edx, [esp + 0xb3]
push edx
lea eax, [esp + 0x114]
push eax
lea ecx, [esp + 0x2c]
push ecx
push esi
mov ecx, edi
mov dword [esp + 0x120], ebx
mov dword [esp + 0x128], 1
mov dword [esp + 0x12c], ebx
call fcn.00402d40
test eax, eax
jne 0x4324fd
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x24]
mov eax, dword [edx + eax*4]
cmp word [eax + 8], 0x7f
je 0x4324fd
movsx ecx, word [eax + 0xa]
push ecx
push 0x72
push edi
call fcn.00445c74
lea esi, [esp + 0x110]
call fcn.00404b80
jmp case.default.0x4322de
lea ebx, [edi + 0x490]
push ebx
call fcn.004373f2
test al, al
jne 0x432537
movsx edx, word [edx + 0xa]
push edx
push 0xa7
push edi
call fcn.00445c74
jmp case.default.0x4322de
push ebx
lea eax, [esp + 0x28]
push eax
push esi
push edi
call fcn.004814a2
test eax, eax
je case.default.0x4322de
mov ecx, dword [esi + 4]
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + edx*4]
movsx ecx, word [eax + 0xa]
push ecx
push 0xaa
push edi
call fcn.00445c74
jmp case.default.0x4322de
movsx edx, word [edx + 0xa]
push edx
push 0x1388
push edi
call fcn.00445c74
jmp case.default.0x4322de
mov ecx, dword [edi]
mov eax, dword [ecx + 4]
add eax, edi
lea ecx, [esp + 0x30]
mov dword [esp + 0x30], 0
call fcn.0040d920
jmp 0x4037bd
mov esi, edi
call fcn.0040f9c0
cmp byte [edi + 0xf4], 1
je 0x4037da
push edi
call fcn.00406f70
push 0
call dword [sym.imp.USER32.dll_LockWindowUpdate]
mov edx, dword [0x494cc0]
push edx
call dword [sym.imp.USER32.dll_DestroyWindow]
mov esi, dword [sym.imp.USER32.dll_GetMessageW]
push 0
push 0
push 0
lea eax, [esp + 0x1c0]
push eax
call esi
test eax, eax
jle 0x4037da
lea ecx, [esp + 0x1b4]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [esp + 0x1b4]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 0
push 0
push 0
lea eax, [esp + 0x1c0]
push eax
call esi
test eax, eax
jg 0x4325ea
jmp 0x4037da
call fcn.004014b0
cmp esi, dword [edi]
jb 0x43261f
jmp 0x4037ea
mov edx, dword [eax + 4]
mov ecx, dword [edx + 0x28]
jmp 0x403812
mov edx, dword [eax + 4]
mov esi, dword [edx + 0x28]
jmp 0x40382f
push eax
call fcn.0044648c
mov dword [ebx + 0xc], 0
jmp 0x403845
mov ecx, dword [ebx]
test ecx, ecx
je 0x403851
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebx]
push eax
call fcn.004127bd
add esp, 4
jmp 0x403875
mov eax, dword [ebx]
test eax, eax
je 0x403875
push eax
call fcn.004476f1
jmp 0x403875
mov eax, ebx
call fcn.0040f2a0
jmp 0x403875
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
push edx
call fcn.004127bd
mov eax, dword [ebx]
add esp, 4
push eax
call fcn.004127bd
add esp, 4
jmp 0x403875
mov eax, dword [ebx]
test eax, eax
je 0x403875
push eax
call fcn.0044e5a3
jmp 0x403875
dec eax
cmp eax, 0xb
ja case.default.0x4326d4
jmp dword [eax*4 + 0x432c91]
mov edx, dword [esi]
mov dword [ebx], edx
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
jmp case.default.0x4326d4
mov ecx, dword [esi]
mov dword [ebx], ecx
jmp case.default.0x4326d4
fld qword [esi]
fstp qword [ebx]
jmp case.default.0x4326d4
mov edx, dword [esi]
mov dword [ebx], edx
jmp case.default.0x4326d4
push 0x214
call fcn.00412aaa
add esp, 4
test eax, eax
je 0x43272a
mov esi, dword [esi]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x43272c
xor eax, eax
mov dword [ebx], eax
cmp dword [eax + 4], 0
je case.default.0x4326d4
mov eax, dword [eax + 4]
inc dword [eax]
jmp case.default.0x4326d4
cmp dword [esi], 0
je case.default.0x4326d4
push 0x10
call fcn.00412aaa
add esp, 4
push eax
mov dword [ebx], eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [esi]
mov ecx, dword [ebx]
push eax
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
jge case.default.0x4326d4
mov edx, dword [ebx]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebx]
push eax
call fcn.004127bd
add esp, 4
mov dword [ebx], 0
jmp case.default.0x4326d4
mov cl, byte [esi]
mov byte [ebx], cl
jmp case.default.0x4326d4
push 0x18
call fcn.00412aaa
add esp, 4
test eax, eax
je 0x4327bc
mov edx, dword [esi]
push edx
push eax
call fcn.0044e69f
mov dword [ebx], eax
jmp case.default.0x4326d4
xor eax, eax
mov dword [ebx], eax
jmp case.default.0x4326d4
push 8
call fcn.00412aaa
mov dword [ebx], eax
mov ecx, dword [esi]
mov edx, dword [ecx]
mov dword [eax], edx
mov eax, dword [ebx]
mov eax, dword [eax]
add esp, 4
test eax, eax
je 0x43280d
push eax
call fcn.00412aaa
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.00412300
add esp, 0xc
jmp case.default.0x4326d4
push 1
call fcn.00412aaa
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.0x4326d4
push 0x14
call fcn.00412aaa
add esp, 4
test eax, eax
je 0x4327bc
mov ecx, dword [esi]
push ecx
push eax
call fcn.0047064a
mov dword [ebx], eax
jmp case.default.0x4326d4
xor eax, eax
jmp 0x4038be
mov eax, dword [eax + 0x28]
jmp 0x4038dd
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov byte [eax], 0
call fcn.00404b80
mov dword [esi + 8], 1
mov dword [esi], 0
jmp case.default.0x4326d4
mov eax, esi
call fcn.004053d0
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x134], ecx
jmp 0x4038e7
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x28]
jmp 0x4038f4
mov eax, esi
call fcn.004053d0
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x13c], eax
jmp 0x4038fe
mov eax, dword [esi + 4]
mov ebx, dword [eax + 0x28]
test eax, eax
je 0x4328c1
push eax
call fcn.0044e70d
mov dword [esi + 4], ebx
mov byte [esi + 9], 0
jmp 0x403908
mov byte [esi + 9], 1
jmp 0x4039a3
mov eax, dword [edi]
push eax
call fcn.004127bd
mov ecx, dword [edi + 0xc]
add esp, 4
push ecx
call fcn.004127bd
add esp, 4
jmp 0x40393b
mov ecx, dword [ebx]
test ecx, ecx
je 0x403957
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [ebx]
push edx
call fcn.004127bd
add esp, 4
jmp 0x40397b
mov eax, dword [ebx]
test eax, eax
je 0x40397b
push eax
call fcn.004476f1
jmp 0x40397b
mov eax, ebx
call fcn.0040f2a0
jmp 0x40397b
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
push ecx
call fcn.004127bd
mov edx, dword [ebx]
add esp, 4
push edx
call fcn.004127bd
add esp, 4
jmp 0x40397b
mov eax, dword [ebx]
test eax, eax
je 0x40397b
push eax
call fcn.0044e5a3
jmp 0x40397b
mov edx, dword [eax + 8]
mov ecx, dword [edx + 0x28]
jmp 0x4039b9
mov eax, dword [eax + 0x28]
jmp 0x4039d0
mov edx, dword [eax + 8]
mov ecx, dword [edx + 0x28]
jmp 0x4039e8
mov eax, dword [eax + 0x28]
jmp 0x4039ff
mov eax, dword [0x4a56e0]
mov esi, dword [eax + 8]
push eax
call fcn.0046bc54
mov ecx, esi
mov dword [0x4a56e0], ecx
mov byte [0x4a56e5], 0
jmp 0x403a16
mov byte [0x4a56e5], 1
jmp 0x403b20
mov ecx, dword [esp + 0x30]
push eax
call fcn.004023f0
jmp 0x403a53
mov ecx, dword [edi]
push ecx
call fcn.004127bd
mov edx, dword [edi + 0xc]
add esp, 4
push edx
call fcn.004127bd
add esp, 4
jmp 0x403a78
mov ecx, dword [ebx]
test ecx, ecx
je 0x403a94
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebx]
push eax
call fcn.004127bd
add esp, 4
jmp 0x403ab8
mov eax, dword [ebx]
test eax, eax
je 0x403ab8
push eax
call fcn.004476f1
jmp 0x403ab8
mov eax, ebx
call fcn.0040f2a0
jmp 0x403ab8
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
push edx
call fcn.004127bd
mov eax, dword [ebx]
add esp, 4
push eax
call fcn.004127bd
add esp, 4
jmp 0x403ab8
mov eax, dword [ebx]
test eax, eax
je 0x403ab8
push eax
call fcn.0044e5a3
jmp 0x403ab8
push eax
call fcn.0044648c
mov dword [esp + 0x44], 0
jmp 0x403b3f
mov eax, dword [esp + 0x38]
test eax, eax
je 0x403b70
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [esp + 0x38]
push ecx
call fcn.004127bd
add esp, 4
jmp 0x403b70
mov eax, dword [esp + 0x38]
test eax, eax
je 0x403b70
push eax
call fcn.004476f1
jmp 0x403b70
lea eax, [esp + 0x38]
call fcn.0040f2a0
jmp 0x403b70
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 4]
push eax
call fcn.004127bd
mov ecx, dword [esp + 0x3c]
add esp, 4
push ecx
call fcn.004127bd
add esp, 4
jmp 0x403b70
mov eax, dword [esp + 0x38]
test eax, eax
je 0x403b70
push eax
call fcn.0044e5a3
jmp 0x403b70
mov edx, dword [edi]
push edx
call fcn.004127bd
mov eax, dword [edi + 0xc]
add esp, 4
push eax
call fcn.004127bd
add esp, 4
jmp 0x403be3
mov ecx, dword [esi]
test ecx, ecx
je 0x403bff
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [esi]
push ecx
call fcn.004127bd
add esp, 4
jmp 0x403c23
mov eax, dword [esi]
test eax, eax
je 0x403c23
push eax
call fcn.004476f1
jmp 0x403c23
mov eax, esi
call fcn.0040f2a0
jmp 0x403c23
mov edx, dword [esi]
mov eax, dword [edx + 4]
push eax
call fcn.004127bd
mov ecx, dword [esi]
add esp, 4
push ecx
call fcn.004127bd
add esp, 4
jmp 0x403c23
mov eax, dword [esi]
test eax, eax
je 0x403c23
push eax
call fcn.0044e5a3
jmp 0x403c23
mov eax, dword [esp + 0x30]
push eax
push 0x70
mov ecx, dword [esp + 0x18]
push ecx
call fcn.00445c74
lea esi, [esp + 0x38]
call fcn.00404b80
lea ecx, [esp + 0x50]
call fcn.00444c7b
lea ecx, [esp + 0x78]
call fcn.00411e00
mov eax, 1
jmp 0x403c56