Function at 0x405050
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 + 0x18], 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.004127f5
add esp, 4
mov dword [esp + 0x54], eax
add eax, 1
je 0x430a39
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.00412c3a
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.00412490
add esp, 0xc
push 4
call fcn.00412c3a
add esp, 4
test eax, eax
je 0x430a43
mov dword [eax], 1
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 0x138], 0
mov dword [esp + 0x5c], eax
je 0x430b22
cmp dword [eax], 1
jg 0x430a4a
mov eax, dword [esp + 0x54]
push eax
push esi
call dword [sym.imp.USER32.dll_CharUpperBuffW]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x134]
test eax, eax
jne 0x430ab1
mov esi, dword [edx + 0x12c]
test esi, esi
je 0x430b22
mov dword [esp + 0x1c], esi
lea ecx, [ecx]
mov edx, dword [esi + 4]
cmp edx, dword [esp + 0x54]
jne 0x4060d7
test edx, edx
jbe 0x40517b
mov ecx, dword [esp + 0x50]
mov eax, dword [esi]
jmp 0x405160
mov si, word [eax]
cmp si, word [ecx]
jne 0x4060d3
add eax, 2
add ecx, 2
sub edx, 1
jne 0x405160
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x5c]
add dword [eax], 0xffffffff
jne 0x40519e
mov eax, dword [esp + 0x50]
push eax
call fcn.0041294d
mov ecx, dword [esp + 0x60]
add esp, 4
push ecx
call fcn.0041294d
add esp, 4
test esi, esi
je 0x430b2b
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 + 0x18]
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], 0x48839c
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], esi
mov dword [esp + 0x50], 0x48bc7c
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], esi
jne 0x430aa5
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 0x405256
inc eax
jmp 0x405242
sub ecx, 0x47
je 0x430b90
sub ecx, 1
jne 0x430b63
cmp dword [esp + 0x24], ecx
jne 0x430b86
mov dword [esp + 0x28], eax
inc eax
mov dword [edi], eax
mov eax, dword [esp + 0x68]
cmp eax, dword [0x4a68b8]
jg 0x430b99
cmp eax, ecx
jle 0x430b99
shl eax, 4
add eax, dword [0x4a68ec]
mov dword [esp + 0x60], eax
cmp dword [esp + 0x4c], ecx
mov dword [esp + 0x48], ecx
jle 0x40547b
mov dword [esp + 0x14], 3
mov dword [esp + 0x24], ecx
jmp 0x4052c0
cmp edx, dword [esp + 0x28]
jae 0x40547b
mov ecx, dword [esp + 0x60]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x14]
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 0x430ba2
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + edx*4]
cmp word [edx + 8], 0x33
je 0x405305
xor bl, bl
mov edi, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
cmp edi, eax
je 0x4060eb
push 1
call fcn.00412c3a
add esp, 4
test eax, eax
je 0x430bdd
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 0x430be4
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x430cfc
mov eax, dword [esp + 0x40]
cmp eax, 8
je 0x430d0f
cmp eax, 0xa
je 0x430d34
cmp eax, 5
je 0x430d4b
cmp eax, 0xb
je 0x430d59
cmp eax, 0xc
je 0x430d7b
mov eax, dword [esp + 0x84]
mov dword [esp + 0x40], 1
mov dword [esp + 0x38], 0
cmp esi, eax
je 0x406148
mov edi, dword [esp + 0x7c]
push 0x10
call fcn.00412c3a
add esp, 4
test eax, eax
je 0x430f78
mov ebx, eax
mov eax, dword [esp + 0x40]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], 0
cmp eax, 1
jne 0x430d92
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 + 0x28]
mov dword [esp + 0x90], esi
call fcn.00406260
test eax, eax
jne 0x4327fc
mov eax, dword [esp + 0x14]
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 + 0x14], eax
je 0x430f7f
mov edx, dword [esp + 0x74]
cmp edx, ebx
je 0x40547b
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 0x430fd0
lea eax, [edx + 1]
cmp eax, dword [esp + 0x28]
je 0x430fd0
mov edi, dword [esp + 0x14]
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 0x405468
inc dword [esp + 0x14]
mov eax, dword [esp + 0x24]
inc eax
cmp eax, dword [esp + 0x4c]
mov dword [esp + 0x24], eax
jl 0x4052c0
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x9c]
jl 0x4327eb
cmp eax, dword [esp + 0x4c]
jg 0x4327eb
cmp edx, dword [esp + 0x28]
jne 0x4327eb
mov ebx, dword [esp + 0x68]
xor esi, esi
xor eax, eax
cmp ebx, esi
mov dword [esp + 0x14], 3
mov dword [esp + 0x1c], esi
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], ebx
jl 0x430fe2
cmp byte [0x4a5705], 0
jne 0x430fee
push 0xc
call fcn.00412c3a
add esp, 4
cmp eax, esi
je 0x431094
mov edi, eax
mov dword [edi], esi
mov edx, dword [esp + 0xa4]
mov dword [edi + 4], edx
cmp dword [esp + 0xa4], esi
jl 0x431012
mov eax, dword [esp + 0xa0]
cmp eax, esi
jne 0x43101a
mov dword [edi], esi
mov ecx, dword [0x4a5700]
mov dword [edi + 8], ecx
mov dword [0x4a5700], edi
mov eax, dword [esp + 0xa0]
inc dword [0x4a56fc]
cmp eax, esi
jne 0x43109b
mov eax, 1
cmp dword [esp + 0x4c], eax
jl 0x4059e5
mov dword [esp + 0x24], eax
lea esp, [esp]
mov ecx, dword [esp + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [esp + 0x14]
xor ebx, ebx
or edx, 0xffffffff
mov word [esp + 0xa8], dx
mov dword [esp + 0x88], 0x486234
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 0x4310f4
mov edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x48]
jg 0x43115b
mov edi, dword [esp + 0x54]
mov edx, dword [esp + 0x1c]
mov edi, dword [edi + edx*4]
or eax, 0x200
cmp byte [edi], 0
jne 0x43112b
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x7c]
mov edx, dword [edx + esi*4]
mov esi, eax
mov eax, dword [esp + 0x14]
add eax, eax
add eax, eax
mov dword [esp + 0x30], eax
mov eax, dword [eax + ecx]
mov edi, dword [eax]
cmp dword [0x4a56fc], ebx
je 0x431230
cmp byte [0x4a5705], 0
mov dword [esp + 0x20], edx
jne 0x431243
mov ebx, dword [0x4a5700]
xor eax, eax
mov dword [esp + 0x28], ebx
cmp dword [ebx], eax
je 0x405700
test byte [0x4a6d9c], 1
mov byte [esp + 0x13], al
je 0x431251
mov dword [0x4a6d98], eax
mov dword [0x4a6d94], eax
mov eax, 0x4a6d7c
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], eax
jmp 0x405650
mov eax, dword [edi + 4]
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
test eax, eax
je 0x431276
test edx, edx
je 0x43127e
cmp eax, edx
jb 0x43129e
test eax, eax
jbe 0x43128f
mov ecx, dword [ecx]
mov edx, eax
mov eax, dword [edi]
mov edi, edi
mov bx, word [eax]
cmp bx, word [ecx]
jne 0x405698
add eax, 2
add ecx, 2
sub edx, 1
jne 0x405680
jmp 0x43128b
mov dx, bx
mov ebx, dword [esp + 0x28]
cmp dx, word [ecx]
jb 0x431296
mov eax, 1
test eax, eax
jl 0x4312ac
jle 0x431347
mov eax, dword [ebx]
mov eax, dword [eax + 0x1c]
test eax, eax
jne 0x4312fe
cmp byte [esp + 0x13], 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 [0x4a6d98]
mov dword [eax + 0x18], ecx
mov edx, dword [ebx]
mov eax, dword [0x4a6d94]
mov dword [edx + 0x1c], eax
jne 0x431351
and esi, 0xff00
push 0x20
mov dword [esp + 0x68], esi
call fcn.00412c3a
add esp, 4
test eax, eax
je 0x431374
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.00412c3a
add esp, 4
xor ecx, ecx
mov dword [esi], eax
push 4
mov word [eax], cx
call fcn.00412c3a
add esp, 4
test eax, eax
je 0x43136d
mov dword [eax], 1
mov dword [esi + 0xc], eax
mov ebx, esi
cmp ebx, edi
je 0x4057a2
mov eax, dword [ebx + 0xc]
cmp dword [eax], 1
jg 0x43137b
mov esi, dword [edi + 4]
lea eax, [esi + 1]
mov dword [ebx + 4], esi
cmp dword [ebx + 8], eax
jb 0x43139a
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.00412490
add esp, 0xc
mov eax, dword [esp + 0x64]
push 0x10
mov dword [ebx + 0x10], eax
call fcn.00412c3a
xor ecx, ecx
add esp, 4
cmp eax, ecx
je 0x40580d
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.0x4057d2
jmp dword [eax*4 + 0x406228]
push 0x10
call fcn.00412c3a
add esp, 4
test eax, eax
je 0x4313df
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 0x4061a1
test byte [0x4a6d9c], 1
je 0x43154e
mov eax, 0x4a6d7c
mov dword [0x4a6d98], edi
mov dword [0x4a6d94], 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 0x431571
cmp edx, edi
je 0x431579
cmp eax, edx
jb 0x431599
cmp eax, edi
jbe 0x431588
mov ecx, dword [esi]
mov edx, eax
mov eax, dword [ebx]
lea esp, [esp]
mov di, word [eax]
cmp di, word [ecx]
jne 0x405898
add eax, 2
add ecx, 2
sub edx, 1
jne 0x405880
jmp 0x431586
mov dx, word [eax]
cmp dx, word [ecx]
jb 0x43158f
mov eax, 1
xor edi, edi
cmp eax, edi
jl 0x4315a7
jle 0x4058c6
lea eax, [esi + 0x1c]
mov dword [esp + 0x20], eax
mov eax, dword [eax]
cmp eax, edi
jne 0x431606
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 [0x4a6d98]
mov edx, dword [esi + 4]
mov dword [esi + 0x18], eax
mov ecx, dword [0x4a6d94]
mov dword [esi + 0x1c], ecx
mov eax, dword [ebx + 4]
cmp eax, edi
je 0x431654
cmp edx, edi
je 0x43165c
cmp eax, edx
jb 0x43167c
cmp eax, edi
jbe 0x43166b
mov ecx, dword [esi]
mov edx, eax
mov eax, dword [ebx]
mov di, word [eax]
cmp di, word [ecx]
jne 0x40592f
add eax, 2
add ecx, 2
sub edx, 1
jne 0x405917
jmp 0x431669
mov dx, word [eax]
cmp dx, word [ecx]
jb 0x431672
mov eax, 1
xor edi, edi
cmp eax, edi
jl 0x43168a
jle 0x43169b
mov ecx, dword [0x4a6d94]
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 0x4316a2
add dword [esp + 0x14], 2
mov ax, word [esp + 0xa8]
inc dword [esp + 0x1c]
cmp ax, 0x30
jge 0x4316d6
cmp dword [esp + 0x90], 0
mov dword [esp + 0x88], 0x486234
ja 0x4316fa
mov ecx, dword [esp + 0x8c]
push ecx
mov dword [esp + 0x94], 0
call fcn.0041294d
mov eax, dword [esp + 0x28]
inc eax
add esp, 4
cmp eax, dword [esp + 0x4c]
mov dword [esp + 0x24], eax
jle 0x405550
mov ebx, dword [esp + 0x68]
mov edi, dword [esp + 0x18]
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 0x431723
push 0x30
call fcn.00412c3a
add esp, 4
test eax, eax
je 0x43179b
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 + 0x14], eax
mov eax, dword [edi + 0xe4]
inc ebx
cmp eax, 0x1268
mov dword [esp + 0x60], edx
mov dword [esp + 0x34], ebx
jge 0x4317a4
inc eax
mov dword [edi + 0xe4], eax
cmp eax, 1
je 0x4317bd
cmp byte [edi + 0xf4], 0
mov byte [edi + 0x13c], 0
jne 0x405acd
jmp 0x405ac0
cmp byte [edi + 0x13c], 0
je 0x405f78
mov eax, dword [edi + 0xe4]
mov byte [edi + 0x13c], 0
cmp eax, 1
je 0x432206
dec eax
mov dword [edi + 0xe4], eax
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x14]
cmp esi, dword [edi]
jb 0x432288
mov eax, dword [esp + 0x18]
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 0x432296
mov ecx, dword [eax + 4]
cmp byte [ecx + 0x10], 0
je 0x4324bf
cmp byte [eax + 9], 0
mov ecx, dword [ebp + 0x14]
mov byte [ecx], 1
jne 0x4322a1
mov esi, dword [eax + 4]
mov ebx, dword [ebp + 0x10]
cmp ebx, esi
je case.default.0x43233d
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x4322ac
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x4322be
cmp eax, 0xa
je 0x4322df
cmp eax, 5
je 0x4322f4
cmp eax, 0xb
je 0x432300
cmp eax, 0xc
je 0x43231e
mov dword [ebx + 8], 1
mov dword [ebx], 0
mov eax, dword [esi + 8]
mov dword [ebx + 8], eax
cmp eax, 4
jne 0x432333
push 0x10
call fcn.00412c3a
add esp, 4
test eax, eax
je 0x4324b0
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 + 0x18]
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 0x4324b7
cmp byte [eax + 0x18], 0
jne 0x4324df
cmp byte [esi + 9], 0
jne 0x4324f5
mov eax, dword [esi + 4]
cmp byte [eax + 0x20], 0
jne 0x432500
cmp byte [esi + 9], 0
jne 0x432516
cmp byte [esi + 8], 0
jne 0x432536
mov ebx, dword [esi + 4]
mov ecx, dword [ebx + 0x28]
mov dword [esp + 0xac], ecx
test ebx, ebx
je 0x405ca5
mov edi, dword [ebx + 0xc]
test edi, edi
je 0x405c5b
mov eax, dword [edi + 0xc]
dec dword [eax]
mov edx, dword [edi + 0xc]
cmp dword [edx], 0
je 0x43253f
push edi
call fcn.0041294d
add esp, 4
mov dword [ebx + 0xc], 0
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x43255b
cmp eax, 0xa
je 0x43257c
cmp eax, 5
je 0x432591
cmp eax, 0xb
je 0x43259d
cmp eax, 0xc
je 0x4325bb
push ebx
mov dword [ebx + 8], 1
mov dword [ebx], 0
call fcn.0041294d
mov edi, dword [esp + 0x1c]
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 0x4325d0
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 0x4325db
mov byte [eax + 0x18], 0
mov ecx, dword [edi]
mov eax, dword [ecx + 4]
add eax, edi
cmp byte [eax + 0xd], 0
jne 0x4325e3
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 0x4325ee
mov byte [eax + 0x20], 0
cmp byte [0x4a5705], 0
jne 0x4325f6
mov ecx, dword [0x4a5700]
cmp byte [0x4a5704], 0
jne 0x432618
mov esi, dword [ecx]
mov edx, dword [ecx + 8]
mov dword [esp + 0xac], edx
mov dword [esp + 0x30], ecx
test esi, esi
je 0x405e0f
mov eax, dword [esi + 0x18]
test eax, eax
je 0x405d58
push eax
call fcn.00406aa0
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x432624
cmp byte [esi + 0x10], 0
jne 0x405de2
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x405de2
mov edi, dword [ebx + 0xc]
test edi, edi
je 0x405d98
mov eax, dword [edi + 0xc]
dec dword [eax]
mov eax, dword [edi + 0xc]
cmp dword [eax], 0
je 0x432633
push edi
call fcn.0041294d
add esp, 4
mov dword [ebx + 0xc], 0
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x43264f
cmp eax, 0xa
je 0x432670
cmp eax, 5
je 0x432685
cmp eax, 0xb
je 0x432691
cmp eax, 0xc
je 0x4326af
push ebx
mov dword [ebx + 8], 1
mov dword [ebx], 0
call fcn.0041294d
mov edi, dword [esp + 0x1c]
add esp, 4
mov eax, dword [esi + 0xc]
dec dword [eax]
mov ecx, dword [esi + 0xc]
cmp dword [ecx], 0
jne 0x405e06
mov edx, dword [esi]
push edx
call fcn.0041294d
mov eax, dword [esi + 0xc]
add esp, 4
push eax
call fcn.0041294d
add esp, 4
push esi
call fcn.0041294d
add esp, 4
mov ecx, dword [esp + 0x30]
push ecx
call fcn.0041294d
mov edx, dword [esp + 0xb0]
add esp, 4
mov dword [0x4a5700], edx
mov byte [0x4a5705], 0
mov eax, dword [esp + 0xfc]
dec dword [0x4a56fc]
mov dword [edi + 0x140], eax
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x4326c4
mov eax, dword [esp + 0x40]
cmp eax, 8
je 0x4326d7
cmp eax, 0xa
je 0x4326fc
cmp eax, 5
je 0x432713
cmp eax, 0xb
je 0x432721
cmp eax, 0xc
je 0x432743
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 0x405eb1
lea ebx, [ebx]
mov edx, dword [ebx + esi*4]
push edx
call fcn.0041294d
inc esi
add esp, 4
cmp esi, edi
jb 0x405ea0
push ebx
call fcn.0041294d
add esp, 4
cmp dword [esp + 0x80], 0
jbe 0x405f57
xor ebx, ebx
lea ebx, [ebx]
mov eax, dword [esp + 0x7c]
mov esi, dword [eax + ebx*4]
test esi, esi
je 0x405f49
mov edi, dword [esi + 0xc]
test edi, edi
je 0x405f03
mov eax, dword [edi + 0xc]
dec dword [eax]
mov ecx, dword [edi + 0xc]
cmp dword [ecx], 0
je 0x43275a
push edi
call fcn.0041294d
add esp, 4
mov dword [esi + 0xc], 0
mov eax, dword [esi + 8]
cmp eax, 8
je 0x432776
cmp eax, 0xa
je 0x432797
cmp eax, 5
je 0x4327ac
cmp eax, 0xb
je 0x4327b8
cmp eax, 0xc
je 0x4327d6
push esi
mov dword [esi + 8], 1
mov dword [esi], 0
call fcn.0041294d
add esp, 4
inc ebx
cmp ebx, dword [esp + 0x80]
jb 0x405ed0
mov edx, dword [esp + 0x7c]
push edx
call fcn.0041294d
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.0x4057d2
cmp byte [0x494cab], 0
jne 0x405fc8
cmp byte [0x4a5e38], 0
jne 0x4317cb
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 0x4061b0
cmp byte [0x494cae], 1
je 0x4317f2
cmp dword [edi + 0xf0], 1
je 0x4321e9
cmp dword [0x4a5df4], 0
jne 0x43180f
xor ebx, ebx
cmp byte [0x494cb4], 1
je 0x4318c1
cmp dword [edi + 0x46c], ebx
jne 0x4318db
cmp byte [0x4a5e0c], 0
jne 0x431a20
push edi
call fcn.004046f0
cmp al, 1
je case.default.0x431f47
cmp byte [0x4a5f80], 0
jne 0x431c8b
mov eax, dword [edi + 0xf0]
cmp eax, 7
je 0x431d15
cmp eax, 8
je 0x431da0
cmp eax, 9
je 0x431da0
cmp eax, 2
je 0x431edc
cmp eax, 3
je 0x431edc
cmp eax, 4
je 0x431edc
cmp eax, 5
je 0x431edc
cmp eax, 6
je 0x431edc
mov ecx, dword [esp + 0x34]
mov dword [edi + 0xec], ecx
mov eax, ecx
inc ecx
cmp eax, dword [0x4a68b8]
mov dword [esp + 0x34], ecx
jg 0x43206a
cmp eax, ebx
jle 0x43206a
shl eax, 4
add eax, dword [0x4a68ec]
cmp eax, ebx
je 0x43206a
mov esi, eax
mov edx, dword [esi + 4]
mov dword [esp + 0x24], ebx
mov edx, dword [edx]
movsx eax, word [edx + 8]
cmp eax, ebx
jne 0x432079
lea eax, [esp + 0x34]
push eax
push esi
push edi
call fcn.00404bd0
cmp byte [edi + 0xf4], 0
jne 0x405acd
xor ecx, ecx
jmp 0x405ac0
mov esi, dword [esp + 0x1c]
mov esi, dword [esi + 0x20]
mov dword [esp + 0x1c], esi
test esi, esi
jne 0x405140
jmp 0x430b22
add eax, eax
cmp eax, 4
jae 0x4060f7
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.00412c3a
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.00412490
mov eax, dword [esp + 0x60]
add esp, 0xc
push eax
call fcn.0041294d
mov ecx, dword [esp + 0x68]
add esp, 4
mov dword [esp + 0x54], ecx
jmp 0x405315
add eax, eax
cmp eax, 4
jae 0x406154
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.00412c3a
mov ebx, dword [esp + 0x80]
mov edi, eax
add esp, 4
lea eax, [esi*4]
push eax
push ebx
push edi
call fcn.00412490
add esp, 0xc
push ebx
call fcn.0041294d
add esp, 4
mov dword [esp + 0x7c], edi
jmp 0x405399
mov dword [ebx + 0x1c], edi
mov dword [ebx + 0x18], edi
jmp 0x405963
cmp dword [esp + 0xb8], 0x12
je 0x4317dc
lea ecx, [esp + 0xb4]
push ecx
mov ecx, 0x4a5e00
call fcn.0040e0f0
test eax, eax
jne 0x40620a
lea edx, [esp + 0xb4]
push edx
mov ebx, 0x4a5e00
call fcn.0040e110
test eax, eax
jne 0x406206
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 + 0x18]
push 1
push 0
push 0
push 0
lea edx, [esp + 0xc4]
push edx
call esi
test eax, eax
je 0x405fae
jmp 0x4061b0
mov esi, 8
jmp 0x40509b
xor eax, eax
jmp 0x4050ef
mov eax, dword [esp + 0x5c]
dec dword [eax]
lea esi, [esp + 0x50]
call fcn.00411b70
mov edx, dword [esp + 0x54]
inc edx
push edx
call fcn.0044869a
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.00412c3a
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.00412490
add esp, 0xc
mov dword [esp + 0x50], esi
jmp 0x40510d
mov eax, dword [esp + 0x30]
push eax
push 0x6f
jmp 0x4327f2
mov dword [esp + 0x68], eax
mov eax, dword [edx + 0x138]
sub eax, 1
js 0x430b22
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.004071a0
test eax, eax
jge 0x430b09
mov eax, dword [esp + 0x1c]
dec eax
mov dword [esp + 0x48], eax
jmp 0x430b18
jle 0x430b40
mov ecx, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x4c], ecx
mov edx, dword [esp + 0x48]
cmp dword [esp + 0x4c], edx
jle 0x430ad0
lea ecx, [esp + 0x50]
call fcn.004020b0
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x18]
push eax
push edi
push ebx
push ecx
call fcn.004700e6
jmp 0x405f66
mov eax, dword [esp + 0x48]
cmp dword [esp + 0x4c], eax
jg 0x430b22
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x1c]
mov esi, dword [ecx + edx*4]
lea ecx, [esp + 0x50]
call fcn.004020b0
jmp 0x40519e
sub ecx, 0x37
jne 0x405253
mov edx, eax
mov eax, dword [ebx + 4]
mov ecx, dword [eax + edx*4 - 4]
movsx edx, word [ecx + 0xa]
mov eax, dword [esp + 0x18]
push edx
push 0x6f
push eax
jmp 0x4327f7
dec dword [esp + 0x24]
inc eax
jmp 0x405242
inc dword [esp + 0x24]
jmp 0x405253
mov dword [esp + 0x60], ecx
jmp 0x40529e
mov ecx, dword [eax]
mov ecx, dword [ecx]
cmp ecx, 0x24
jne 0x430bb6
mov bl, 1
jmp 0x430bc7
cmp ecx, 0x1e
jne 0x430f89
mov dword [esp + 0x2c], 0x100
mov ecx, dword [eax + 4]
inc dword [esp + 0x14]
add eax, 4
cmp word [ecx + 8], 0
je 0x430ba2
jmp 0x4052f3
xor eax, eax
jmp 0x405329
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 0x430f95
mov esi, dword [eax]
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
xor ecx, ecx
call fcn.004074f0
test al, al
je 0x430fb2
test dword [esp + 0x20], 0x100
je 0x430c54
test dword [esp + 0x2c], 0x100
jne 0x430c54
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 + 0x18]
push edx
push 0xb0
push eax
jmp 0x4327f7
mov eax, dword [esp + 0x1c]
mov edi, 1
add dword [esp + 0x74], edi
add dword [esp + 0x14], edi
cmp dword [eax + 8], 5
jne 0x430cc9
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 0x430cc9
mov edx, dword [esp + 0x18]
push 0
lea eax, [esp + 0x20]
push eax
push edx
lea eax, [esp + 0x80]
call fcn.00407730
test eax, eax
je 0x430cc9
lea esi, [esp + 0x38]
call fcn.004043a0
lea ecx, [esp + 0x50]
call fcn.00435ddf
lea ecx, [esp + 0x78]
call fcn.00411f90
mov eax, edi
jmp 0x405f66
lea esi, [esp + 0x38]
call fcn.004043a0
mov eax, dword [esp + 0x1c]
push esi
lea esi, [esp + 0x7c]
mov dword [esp + 0x44], 6
mov dword [esp + 0x3c], eax
call fcn.00406fd0
mov esi, dword [esp + 0x80]
mov ebx, dword [esp + 0x28]
jmp 0x40541d
push eax
call fcn.00445565
mov dword [esp + 0x44], 0
jmp 0x405349
mov eax, dword [esp + 0x38]
test eax, eax
je 0x40537a
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [esp + 0x38]
push edx
call fcn.0041294d
add esp, 4
jmp 0x40537a
mov eax, dword [esp + 0x38]
test eax, eax
je 0x40537a
push eax
call fcn.004465e5
jmp 0x40537a
lea eax, [esp + 0x38]
call fcn.0040fcb0
jmp 0x40537a
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 4]
push ecx
call fcn.0041294d
mov edx, dword [esp + 0x3c]
add esp, 4
push edx
call fcn.0041294d
add esp, 4
jmp 0x40537a
mov eax, dword [esp + 0x38]
test eax, eax
je 0x40537a
push eax
call fcn.0044d4d1
jmp 0x40537a
dec eax
cmp eax, 0xb
ja case.default.0x430d9c
jmp dword [eax*4 + 0x432821]
push 0x10
call fcn.00412c3a
add esp, 4
test eax, eax
je 0x430dd9
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 0x4053ce
xor eax, eax
mov dword [ebx + 0xc], eax
jmp 0x4053ce
mov eax, dword [esp + 0x38]
mov dword [ebx], eax
mov ecx, dword [esp + 0x3c]
mov dword [ebx + 4], ecx
jmp 0x4053ce
fld qword [esp + 0x38]
fstp qword [ebx]
jmp 0x4053ce
mov eax, dword [esp + 0x38]
mov dword [ebx], eax
jmp 0x4053ce
push 0x214
call fcn.00412c3a
add esp, 4
test eax, eax
je 0x430e32
mov esi, dword [esp + 0x38]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x430e34
xor eax, eax
mov dword [ebx], eax
cmp dword [eax + 4], 0
je case.default.0x430d9c
mov eax, dword [eax + 4]
inc dword [eax]
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x7c]
jmp 0x4053ce
cmp dword [esp + 0x38], 0
je case.default.0x430d9c
push 0x10
call fcn.00412c3a
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 0x4053ce
mov eax, dword [ebx]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebx]
push ecx
call fcn.0041294d
add esp, 4
mov dword [ebx], 0
jmp 0x4053ce
mov dl, byte [esp + 0x38]
mov byte [ebx], dl
jmp 0x4053ce
push 0x18
call fcn.00412c3a
add esp, 4
test eax, eax
je 0x430ed7
mov ecx, dword [esp + 0x38]
push ecx
push eax
call fcn.0044d9ac
mov dword [ebx], eax
jmp 0x4053ce
xor eax, eax
mov dword [ebx], eax
jmp 0x4053ce
push 8
call fcn.00412c3a
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 0x430f2c
push eax
call fcn.00412c3a
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.00412490
add esp, 0xc
jmp 0x4053ce
push 1
call fcn.00412c3a
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 0x4053ce
push 0x14
call fcn.00412c3a
add esp, 4
test eax, eax
je 0x430ed7
mov ecx, dword [esp + 0x38]
push ecx
push eax
call fcn.00470389
mov dword [ebx], eax
jmp 0x4053ce
mov edi, dword [esp + 0x7c]
mov esi, dword [esp + 0x80]
jmp 0x4053ce
xor eax, eax
jmp 0x4053d0
add dword [esp + 0x14], 2
jmp 0x40541d
push 0xffffffffffffffff
push 0x91
jmp 0x4327f2
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 + 0x18]
push edx
push 0x91
push eax
jmp 0x4327f7
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 + 0x18]
push edx
push 0x79
push eax
jmp 0x4327f7
mov ecx, dword [edi + 4]
mov edx, dword [ecx + edx*4]
movsx eax, word [edx + 0xa]
push eax
push 0x6f
jmp 0x4327f2
mov dword [esp + 0xa4], esi
jmp 0x4054ca
mov edx, dword [0x4a5700]
mov dword [edx], eax
mov eax, dword [esp + 0xa4]
mov ecx, dword [0x4a5700]
mov dword [ecx + 4], eax
mov byte [0x4a5705], 0
jmp 0x405524
mov dword [edi + 4], esi
jmp 0x405504
push 0x20
mov dword [esp + 0x24], eax
call fcn.00412c3a
add esp, 4
cmp eax, esi
je 0x43103b
push eax
call fcn.0044c8c6
jmp 0x43103d
xor eax, eax
mov ecx, dword [esp + 0x20]
push ecx
mov esi, eax
mov dword [edi], eax
call fcn.0040f420
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.004515a5
mov edx, dword [esi + 0x1c]
mov eax, dword [edi]
push edx
add eax, 0x1c
push eax
mov ecx, edi
call fcn.004515a5
xor esi, esi
jmp 0x405515
xor edi, edi
jmp 0x405515
mov edi, eax
mov eax, dword [eax + 0x18]
cmp eax, esi
je 0x4310b5
push eax
lea ecx, [esp + 0xa4]
call fcn.00406aa0
mov eax, dword [edi + 0x1c]
cmp eax, esi
je 0x4310cd
push eax
lea ecx, [esp + 0xa4]
call fcn.00406aa0
cmp byte [edi + 0x10], 0
jne 0x4310e9
mov ecx, dword [edi + 0x14]
cmp ecx, esi
je 0x4310e9
push 1
call fcn.0040fc10
push edi
call fcn.00445565
jmp 0x405539
mov edi, dword [edx]
mov edi, dword [edi]
cmp edi, 0x24
je 0x431116
cmp edi, 0x1e
jne 0x43111a
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 0x4310f4
mov dword [esp + 0x14], esi
jmp 0x4055ad
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.00437108
push eax
mov eax, dword [ecx]
push eax
call fcn.0045d6bf
test al, al
je 0x431762
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x405984
lea ebx, [esp + 0x88]
call fcn.0040eaa0
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 0x43119b
cmp ax, 0x49
je 0x43119b
push esi
jmp 0x4311b8
push esi
lea edi, [esp + 0x8c]
call fcn.00402750
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx + edx*4 + 0xc]
push eax
lea edi, [esp + 0x8c]
call fcn.00402750
mov edi, 0x7f
lea esi, [esp + 0xa0]
call fcn.00402590
push esi
lea edi, [esp + 0x8c]
call fcn.00402750
mov ecx, dword [esp + 0x18]
push 0xffffffffffffffff
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0xa4]
push eax
push edi
call fcn.00406260
mov eax, dword [esp + 0x14]
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.00401430
jmp 0x405965
push esi
mov eax, edi
push edx
mov edi, 0x4a56ec
call fcn.00403de0
jmp 0x405965
mov ecx, dword [0x4a5700]
mov ebx, dword [ecx + 8]
jmp 0x405615
or dword [0x4a6d9c], 1
push 0x4a6d7c
call fcn.0044c8c6
push 0x42a6e3
call fcn.00412936
add esp, 4
xor eax, eax
jmp 0x405634
test edx, edx
jne 0x4312ac
test eax, eax
jne 0x4056bb
jmp 0x405668
mov ebx, dword [esp + 0x28]
xor eax, eax
jmp 0x4056ad
or eax, 0xffffffff
jmp 0x4056ad
mov ecx, dword [ecx]
mov eax, dword [edi]
call fcn.004071d0
jmp 0x4056ad
mov eax, dword [ebx]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x4056c8
push eax
push edi
call fcn.00445580
add esp, 8
test al, al
je 0x4312e9
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 0x4056c8
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 0x405647
push edi
push eax
call fcn.00445580
add esp, 8
test al, al
je 0x43132e
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 0x4056c8
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 0x405650
mov byte [esp + 0x13], 1
jmp 0x4056c8
mov ebx, dword [ebx]
test ebx, ebx
je 0x405700
mov ecx, dword [esp + 0x20]
mov ebx, dword [ebx + 0x14]
push ecx
call fcn.004042f0
jmp 0x405965
xor eax, eax
jmp 0x405765
xor ebx, ebx
jmp 0x40576a
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 0x4057a2
push eax
call fcn.0044869a
mov dword [ebx + 8], eax
mov eax, dword [ebx]
test eax, eax
je 0x4313b6
push eax
call fcn.0041294d
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.00412c3a
add esp, 4
xor ecx, ecx
mov dword [ebx], eax
mov word [eax + esi*2], cx
jmp 0x40578c
xor eax, eax
jmp 0x405806
mov eax, dword [edi]
mov dword [esi], eax
mov ecx, dword [edi + 4]
mov dword [esi + 4], ecx
jmp case.default.0x4057d2
fld qword [edi]
fstp qword [esi]
jmp case.default.0x4057d2
mov edx, dword [edi]
mov dword [esi], edx
jmp case.default.0x4057d2
push 0x214
call fcn.00412c3a
add esp, 4
test eax, eax
je 0x431430
mov edx, dword [esp + 0x20]
mov esi, dword [edx]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x431432
xor eax, eax
mov ecx, dword [esp + 0x34]
mov dword [ecx], eax
cmp dword [eax + 4], 0
je case.default.0x4057d2
mov eax, dword [eax + 4]
inc dword [eax]
jmp case.default.0x4057d2
cmp dword [edi], ecx
je case.default.0x4057d2
push 0x10
call fcn.00412c3a
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.0x4057d2
mov ecx, dword [esi]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [esi]
push edx
call fcn.0041294d
add esp, 4
mov dword [esi], 0
jmp case.default.0x4057d2
mov al, byte [edi]
mov byte [esi], al
jmp case.default.0x4057d2
push 0x18
call fcn.00412c3a
add esp, 4
test eax, eax
je 0x431547
mov ecx, dword [edi]
push ecx
push eax
call fcn.0044d9ac
jmp 0x405f71
push 8
call fcn.00412c3a
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 0x43150b
push eax
call fcn.00412c3a
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.00412490
add esp, 0xc
jmp case.default.0x4057d2
push 1
call fcn.00412c3a
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.0x4057d2
push 0x14
call fcn.00412c3a
add esp, 4
test eax, eax
je 0x431547
mov ecx, dword [edi]
push ecx
push eax
call fcn.00470389
jmp 0x405f71
xor eax, eax
jmp 0x405f71
or dword [0x4a6d9c], 1
push 0x4a6d7c
call fcn.0044c8c6
push 0x42a6e3
call fcn.00412936
add esp, 4
jmp 0x405833
cmp edx, edi
jne 0x4315a7
cmp eax, edi
jne 0x4058b5
jmp 0x405866
xor edi, edi
xor eax, eax
jmp 0x4058ab
or eax, 0xffffffff
xor edi, edi
jmp 0x4058ab
mov ecx, dword [esi]
mov eax, dword [ebx]
call fcn.004071d0
jmp 0x4058ab
lea eax, [esi + 0x18]
mov dword [esp + 0x20], eax
mov eax, dword [eax]
cmp eax, edi
je 0x4058c6
push eax
push ebx
mov dword [esp + 0x6c], eax
call fcn.00445580
add esp, 8
test al, al
je 0x4315f0
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 0x4058c6
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 0x405850
push ebx
push eax
mov dword [esp + 0x6c], eax
call fcn.00445580
add esp, 8
test al, al
je 0x43163e
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 0x4058c6
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 0x405850
cmp edx, edi
jne 0x43168a
cmp eax, edi
jne 0x405950
jmp 0x405901
xor edi, edi
xor eax, eax
jmp 0x405942
or eax, 0xffffffff
xor edi, edi
jmp 0x405942
mov ecx, dword [esi]
mov eax, dword [ebx]
call fcn.004071d0
jmp 0x405942
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], esi
mov dword [esi + 0x18], edi
jmp 0x40595f
mov ebx, esi
jmp 0x40595f
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + ecx*4 + 8]
movzx eax, word [edx + 8]
cmp ax, 0x4a
je 0x4316cc
cmp ax, 0x49
je 0x4316cc
add dword [esp + 0x14], 4
jmp 0x405984
add dword [esp + 0x14], 5
jmp 0x405984
cmp ax, 0x3f
jg 0x40599a
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x40599a
push eax
call fcn.00445565
jmp 0x40599a
xor esi, esi
mov eax, dword [esp + 0x8c]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x431714
push eax
call fcn.0044e688
inc esi
cmp esi, dword [esp + 0x90]
jb 0x4316fc
jmp 0x4059b3
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.00473b76
mov byte [esi + 9], 0
xor ecx, ecx
jmp 0x405a5d
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 + 0x18]
push edx
push 0x79
push eax
call fcn.0045d305
lea ecx, [esp + 0xa0]
push ecx
call fcn.0044d559
lea ecx, [esp + 0x88]
call fcn.00410090
jmp 0x4327fc
xor eax, eax
xor ecx, ecx
jmp 0x405a54
push 0xffffffffffffffff
push 0x9a
push edi
mov byte [0x494caa], 0
call fcn.0045d305
jmp 0x405aea
mov esi, edi
call fcn.00411b90
xor ecx, ecx
jmp 0x405aa6
cmp dword [edi + 0xf0], ecx
je 0x405fc8
jmp 0x405f8e
mov byte [edi + 0xf4], 1
mov dword [edi + 0xf0], 1
jmp 0x405fae
mov byte [0x494cb4], 0
mov byte [0x494cae], 0
mov dword [edi + 0xf0], 1
jmp 0x405fbb
mov eax, dword [0x4a5df8]
mov ebx, dword [eax]
call fcn.00436a34
mov eax, dword [edi + 0x1a8]
xor esi, esi
test eax, eax
jbe 0x431852
mov ecx, dword [edi + 0x1a4]
mov edx, dword [ecx]
cmp dword [edx], 0
je 0x431846
mov edx, dword [edx]
cmp dword [edx], ebx
je 0x431852
inc esi
add ecx, 4
cmp esi, dword [edi + 0x1a8]
jb 0x431831
xor ebx, ebx
cmp esi, eax
je 0x405fd7
lea eax, [esp + 0x160]
push eax
lea ecx, [esp + 0x168]
push ecx
mov ecx, dword [edi + 0x1a4]
lea edx, [esp + 0x158]
push edx
mov edx, dword [ecx + esi*4]
lea eax, [esp + 0x3c]
push eax
mov eax, dword [edx]
mov ecx, dword [eax + 8]
push ecx
push edi
call fcn.004622e2
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.0040f420
push 0
push 1
push ebx
push edi
call fcn.0047ffd7
jmp case.default.0x431f47
cmp byte [0x494cab], 0
jne 0x405fe4
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp case.default.0x431f47
cmp byte [0x4a6d04], 0
jne 0x405ff0
mov byte [0x4a6d04], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
mov esi, dword [edi + 0x464]
mov ebx, eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x68], esi
push ecx
lea edx, [esp + 0x6c]
mov dword [esp], 0
push edx
call fcn.00444e0c
test al, al
je 0x4319af
mov ecx, dword [esi]
cmp byte [ecx + 0x11], 0
jne 0x431997
mov edx, dword [ecx + 0x14]
mov eax, ebx
sub eax, edx
cmp ebx, edx
jae 0x43193f
dec eax
cmp eax, dword [ecx + 0x18]
jb 0x431997
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]
lea edx, [esp + 0x164]
push edx
mov edx, dword [ecx]
lea eax, [esp + 0x70]
push eax
push edx
push edi
call fcn.004622e2
mov eax, dword [esp + 0x64]
mov ecx, dword [esi]
push 0
inc eax
push 1
push eax
push edi
mov dword [esp + 0x74], eax
mov byte [ecx + 0x10], 1
call fcn.0047ffd7
mov edx, dword [esi]
mov byte [edx + 0x10], 0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x6c]
push ecx
call fcn.00442d58
mov esi, dword [esp + 0x68]
jmp 0x431909
mov edx, dword [edi + 0x464]
mov dword [esp + 0x1c], edx
push ecx
lea eax, [esp + 0x20]
mov dword [esp], 0
push eax
call fcn.00444e0c
test al, al
je 0x431a07
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
cmp byte [edx + 0x11], 0
jne 0x4319f4
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x20]
push ecx
call fcn.00442d58
jmp 0x4319b9
lea edx, [esp + 0x1c]
push edx
lea eax, [edi + 0x464]
push eax
call fcn.00444e36
jmp 0x4319af
cmp dword [esp + 0x20], 0
mov byte [0x4a6d04], 0
jg case.default.0x431f47
xor ebx, ebx
jmp 0x405ff0
cmp byte [edi + 0x470], 1
je 0x405ffd
cmp byte [0x4a5e38], 1
je 0x405ffd
lea eax, [esp + 0xb4]
push eax
call fcn.0044d030
lea ecx, [esp + 0xb4]
push ecx
push 0x4a5e00
call fcn.0044ff63
test al, al
je 0x431c7a
lea edx, [esp + 0xb8]
push edx
call fcn.0043a8df
test al, al
jne 0x431a47
lea eax, [esp + 0x16c]
push eax
lea ecx, [esp + 0x158]
push ecx
mov ecx, dword [esp + 0xc0]
lea edx, [esp + 0x160]
push edx
lea eax, [esp + 0x58]
push eax
push ecx
push edi
call fcn.004622e2
test al, al
je 0x431a47
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.004043a0
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x90], edi
mov edi, str._GUI_CTRLID
lea esi, [esp + 0x174]
mov dword [esp + 0x88], edx
call fcn.004015c0
lea eax, [ebx + 2]
lea ecx, [ebx + 1]
lea edx, [esp + 0x88]
call fcn.00401430
mov ecx, esi
call fcn.004020b0
lea esi, [esp + 0x88]
call fcn.004043a0
mov eax, dword [esp + 0xc8]
mov edi, str._GUI_WINHANDLE
lea esi, [esp + 0x184]
mov dword [esp + 0x90], 7
mov dword [esp + 0x88], eax
call fcn.004015c0
lea eax, [ebx + 2]
lea ecx, [ebx + 1]
lea edx, [esp + 0x88]
call fcn.00401430
mov ecx, esi
call fcn.004020b0
lea esi, [esp + 0x88]
call fcn.004043a0
mov ecx, dword [esp + 0xcc]
mov edi, str._GUI_CTRLHANDLE
lea esi, [esp + 0x194]
mov dword [esp + 0x90], 7
mov dword [esp + 0x88], ecx
call fcn.004015c0
lea eax, [ebx + 2]
lea ecx, [ebx + 1]
lea edx, [esp + 0x88]
call fcn.00401430
mov ecx, esi
call fcn.004020b0
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x18]
push ebx
push 1
inc edx
push edx
push esi
mov byte [esi + 0x470], 1
call fcn.0047ffd7
mov byte [esi + 0x470], bl
lea esi, [esp + 0x88]
jmp 0x431c60
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.004043a0
mov edx, dword [esp + 0xb4]
mov dword [esp + 0xf0], edi
mov edi, str._TRAY_ID
lea esi, [esp + 0x1a4]
mov dword [esp + 0xe8], edx
call fcn.004015c0
lea eax, [ebx + 2]
lea ecx, [ebx + 1]
lea edx, [esp + 0xe8]
call fcn.00401430
mov ecx, esi
call fcn.004020b0
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x18]
push ebx
push 1
inc eax
push eax
push esi
mov byte [esi + 0x471], 1
call fcn.0047ffd7
mov byte [esi + 0x471], bl
lea esi, [esp + 0xe8]
call fcn.004043a0
lea ecx, [esp + 0xb8]
call fcn.004020b0
mov edi, dword [esp + 0x18]
jmp case.default.0x431f47
lea ecx, [esp + 0xb8]
call fcn.004020b0
jmp 0x405ffd
cmp byte [edi + 0x471], 1
je 0x406018
lea eax, [esp + 0xb4]
push eax
call fcn.0044d030
lea ecx, [esp + 0xb4]
push ecx
push 0x4a5ee0
call fcn.00451d21
test al, al
je 0x431d04
lea edx, [esp + 0xb8]
push edx
call fcn.0043a8df
test al, al
jne 0x431ca5
lea eax, [esp + 0x14c]
push eax
lea ecx, [esp + 0x174]
push ecx
mov ecx, dword [esp + 0xc0]
lea edx, [esp + 0xa8]
push edx
lea eax, [esp + 0x38]
push eax
push ecx
push edi
call fcn.004622e2
test al, al
je 0x431ca5
jmp 0x431bd2
lea ecx, [esp + 0xb8]
call fcn.004020b0
jmp 0x406018
mov ecx, dword [edi + 0x45c]
push 0xa
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [esp + 0x9c], eax
cmp eax, 0x102
je case.default.0x431f47
mov eax, dword [edi + 0x45c]
lea edx, [esp + 0x9c]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov ecx, dword [edi + 0x45c]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [esp + 0x9c]
mov eax, dword [edi]
mov eax, dword [eax + 4]
mov dword [esp + 0x68], edx
jmp 0x431d83
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 0x460], ebx
mov ecx, dword [edi]
mov eax, dword [ecx + 4]
mov dword [esp + 0x68], ebx
add eax, edi
lea ecx, [esp + 0x68]
call fcn.0040e920
mov byte [edi + 0x13c], 1
mov dword [edi + 0xf0], ebx
jmp case.default.0x431f47
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0xa
call esi
cmp dword [edi + 0x454], ebx
je 0x431dec
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [edi + 0x458]
cmp eax, ecx
jae 0x431dd2
sub eax, ecx
dec eax
jmp 0x431dd4
sub eax, ecx
cmp eax, dword [edi + 0x454]
jb 0x431dec
mov eax, dword [edi + 0x460]
cmp eax, ebx
je 0x431d7a
jmp 0x431d6d
mov ecx, dword [edi + 0x444]
lea edx, [esp + 0x13]
push edx
lea eax, [esp + 0x2c]
push eax
push ecx
call fcn.004460fc
add esp, 0xc
cmp dword [edi + 0xf0], 9
jne 0x431e31
cmp byte [esp + 0x13], 0
jne 0x431e27
mov byte [esp + 0x13], 1
jmp 0x431e3c
mov byte [esp + 0x13], 0
jmp case.default.0x431f47
cmp byte [esp + 0x13], 1
jne case.default.0x431f47
mov eax, dword [edi + 0x460]
mov dword [esp + 0x48], 0xcccccccc
cmp eax, ebx
je 0x431e71
lea edx, [esp + 0x48]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov eax, dword [edi + 0x460]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 0x460], ebx
cmp dword [edi + 0xf0], 8
jne 0x431eaf
mov ecx, dword [esp + 0x28]
fild dword [esp + 0x28]
test ecx, ecx
jge 0x431e94
fadd qword [0x48d260]
mov eax, dword [edi]
fstp qword [esp + 0x68]
mov ecx, dword [eax + 4]
lea edx, [esp + 0x68]
push edx
add ecx, edi
push ecx
call fcn.00455445
jmp 0x431ec1
mov eax, dword [edi]
mov edx, dword [esp + 0x48]
mov eax, dword [eax + 4]
push ebx
push edx
add eax, edi
call fcn.00403b90
mov ecx, dword [edi + 0x2fc]
push ecx
mov byte [edi + 0x13c], 1
mov dword [edi + 0xf0], ebx
call esi
jmp case.default.0x431f47
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [edi + 0x2f8], ebx
je 0x431f35
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [edi + 0x300]
cmp eax, ecx
jae 0x431f0c
sub eax, ecx
dec eax
jmp 0x431f0e
sub eax, ecx
cmp eax, dword [edi + 0x2f8]
jb 0x431f35
cmp dword [edi + 0xf0], 2
je 0x431d8e
mov edx, dword [edi]
mov eax, dword [edx + 4]
mov dword [esp + 0x68], ebx
jmp 0x431d83
mov eax, dword [edi + 0xf0]
add eax, 0xfffffffd
cmp eax, 3
ja case.default.0x431f47
jmp dword [eax*4 + 0x432851]
push edi
call fcn.0046b6b4
jmp 0x431f7c
push edi
call fcn.0046b6b4
mov esi, eax
cmp esi, ebx
jl 0x431f86
jg case.default.0x431f47
jmp 0x431fbc
push 1
push edi
call fcn.0046ada9
mov esi, eax
cmp esi, ebx
jge 0x431fae
mov ecx, dword [edi]
mov eax, esi
neg eax
push ebx
push eax
mov eax, dword [ecx + 4]
add eax, edi
call fcn.00403bd0
mov edx, dword [edi]
mov eax, dword [edx + 4]
add eax, edi
lea ecx, [esp + 0x68]
mov dword [esp + 0x68], ebx
call fcn.0040e920
cmp esi, ebx
je case.default.0x431f47
cmp esi, ebx
jle 0x43202c
mov eax, dword [edi + 0xf0]
cmp eax, 5
je 0x431fd4
cmp eax, 3
jne 0x43202c
xor eax, eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xe4], eax
mov eax, dword [edi + 0x1d8]
mov ebx, dword [eax]
lea esi, [esp + 0xd8]
mov dword [esp + 0xe0], 1
call fcn.004043a0
mov edx, dword [edi]
mov eax, dword [edx + 4]
push 0
push esi
add eax, edi
push eax
mov dword [esp + 0xec], 7
mov dword [esp + 0xe4], ebx
call fcn.00473198
call fcn.004043a0
xor ebx, ebx
mov ecx, dword [edi + 0x2fc]
push ecx
mov byte [edi + 0x13c], 1
mov dword [edi + 0xf0], ebx
call fcn.00437df9
add esp, 4
jmp case.default.0x431f47
push 1
push edi
call fcn.0046ada9
mov esi, eax
cmp esi, ebx
jl 0x431f86
jle 0x431fbc
jmp case.default.0x431f47
mov dword [edi + 0xf0], 1
jmp case.default.0x431f47
dec eax
cmp eax, 0x7e
ja case.0x43208a.2
movzx eax, byte [eax + 0x432879]
jmp dword [eax*4 + 0x432861]
push edi
mov eax, esi
call fcn.00404420
jmp case.default.0x431f47
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.00404100
test eax, eax
jne 0x4320f5
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x24]
mov eax, dword [edx + eax*4]
cmp word [eax + 8], 0x7f
je 0x4320f5
movsx ecx, word [eax + 0xa]
push ecx
push 0x72
push edi
call fcn.0045d305
lea esi, [esp + 0x100]
call fcn.004043a0
jmp case.default.0x431f47
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.00405050
test eax, eax
jne 0x432166
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x24]
mov eax, dword [edx + eax*4]
cmp word [eax + 8], 0x7f
je 0x432166
movsx ecx, word [eax + 0xa]
push ecx
push 0x72
push edi
call fcn.0045d305
lea esi, [esp + 0x110]
call fcn.004043a0
jmp case.default.0x431f47
lea ebx, [edi + 0x490]
push ebx
call fcn.00437019
test al, al
jne 0x4321a0
movsx edx, word [edx + 0xa]
push edx
push 0xa7
push edi
call fcn.0045d305
jmp case.default.0x431f47
push ebx
lea eax, [esp + 0x28]
push eax
push esi
push edi
call fcn.0048115d
test eax, eax
je case.default.0x431f47
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.0045d305
jmp case.default.0x431f47
movsx edx, word [edx + 0xa]
push edx
push 0x1388
push edi
call fcn.0045d305
jmp case.default.0x431f47
mov ecx, dword [edi]
mov eax, dword [ecx + 4]
add eax, edi
lea ecx, [esp + 0x30]
mov dword [esp + 0x30], 0
call fcn.0040e920
jmp 0x405acd
mov esi, edi
call fcn.00410400
cmp byte [edi + 0xf4], 1
je 0x405aea
push edi
call fcn.004014f0
push 0
call dword [sym.imp.USER32.dll_LockWindowUpdate]
mov edx, dword [0x494ce0]
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 0x405aea
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 0x432253
jmp 0x405aea
call fcn.004079b0
cmp esi, dword [edi]
jb 0x432288
jmp 0x405afa
mov edx, dword [eax + 4]
mov ecx, dword [edx + 0x28]
jmp 0x405b22
mov edx, dword [eax + 4]
mov esi, dword [edx + 0x28]
jmp 0x405b3f
push eax
call fcn.00445565
mov dword [ebx + 0xc], 0
jmp 0x405b55
mov ecx, dword [ebx]
test ecx, ecx
je 0x405b61
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebx]
push eax
call fcn.0041294d
add esp, 4
jmp 0x405b85
mov eax, dword [ebx]
test eax, eax
je 0x405b85
push eax
call fcn.004465e5
jmp 0x405b85
mov eax, ebx
call fcn.0040fcb0
jmp 0x405b85
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
push edx
call fcn.0041294d
mov eax, dword [ebx]
add esp, 4
push eax
call fcn.0041294d
add esp, 4
jmp 0x405b85
mov eax, dword [ebx]
test eax, eax
je 0x405b85
push eax
call fcn.0044d4d1
jmp 0x405b85
dec eax
cmp eax, 0xb
ja case.default.0x43233d
jmp dword [eax*4 + 0x4328f9]
mov edx, dword [esi]
mov dword [ebx], edx
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
jmp case.default.0x43233d
mov ecx, dword [esi]
mov dword [ebx], ecx
jmp case.default.0x43233d
fld qword [esi]
fstp qword [ebx]
jmp case.default.0x43233d
mov edx, dword [esi]
mov dword [ebx], edx
jmp case.default.0x43233d
push 0x214
call fcn.00412c3a
add esp, 4
test eax, eax
je 0x432393
mov esi, dword [esi]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x432395
xor eax, eax
mov dword [ebx], eax
cmp dword [eax + 4], 0
je case.default.0x43233d
mov eax, dword [eax + 4]
inc dword [eax]
jmp case.default.0x43233d
cmp dword [esi], 0
je case.default.0x43233d
push 0x10
call fcn.00412c3a
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.0x43233d
mov edx, dword [ebx]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebx]
push eax
call fcn.0041294d
add esp, 4
mov dword [ebx], 0
jmp case.default.0x43233d
mov cl, byte [esi]
mov byte [ebx], cl
jmp case.default.0x43233d
push 0x18
call fcn.00412c3a
add esp, 4
test eax, eax
je 0x432425
mov edx, dword [esi]
push edx
push eax
call fcn.0044d9ac
mov dword [ebx], eax
jmp case.default.0x43233d
xor eax, eax
mov dword [ebx], eax
jmp case.default.0x43233d
push 8
call fcn.00412c3a
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 0x432476
push eax
call fcn.00412c3a
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.00412490
add esp, 0xc
jmp case.default.0x43233d
push 1
call fcn.00412c3a
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.0x43233d
push 0x14
call fcn.00412c3a
add esp, 4
test eax, eax
je 0x432425
mov ecx, dword [esi]
push ecx
push eax
call fcn.00470389
mov dword [ebx], eax
jmp case.default.0x43233d
xor eax, eax
jmp 0x405bce
mov eax, dword [eax + 0x28]
jmp 0x405bed
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov byte [eax], 0
call fcn.004043a0
mov dword [esi + 8], 1
mov dword [esi], 0
jmp case.default.0x43233d
mov eax, esi
call fcn.00403bc0
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x134], ecx
jmp 0x405bf7
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x28]
jmp 0x405c04
mov eax, esi
call fcn.00403bc0
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x13c], eax
jmp 0x405c0e
mov eax, dword [esi + 4]
mov ebx, dword [eax + 0x28]
test eax, eax
je 0x43252a
push eax
call fcn.0044da1a
mov dword [esi + 4], ebx
mov byte [esi + 9], 0
jmp 0x405c18
mov byte [esi + 9], 1
jmp 0x405cb3
mov eax, dword [edi]
push eax
call fcn.0041294d
mov ecx, dword [edi + 0xc]
add esp, 4
push ecx
call fcn.0041294d
add esp, 4
jmp 0x405c4b
mov ecx, dword [ebx]
test ecx, ecx
je 0x405c67
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [ebx]
push edx
call fcn.0041294d
add esp, 4
jmp 0x405c8b
mov eax, dword [ebx]
test eax, eax
je 0x405c8b
push eax
call fcn.004465e5
jmp 0x405c8b
mov eax, ebx
call fcn.0040fcb0
jmp 0x405c8b
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
push ecx
call fcn.0041294d
mov edx, dword [ebx]
add esp, 4
push edx
call fcn.0041294d
add esp, 4
jmp 0x405c8b
mov eax, dword [ebx]
test eax, eax
je 0x405c8b
push eax
call fcn.0044d4d1
jmp 0x405c8b
mov edx, dword [eax + 8]
mov ecx, dword [edx + 0x28]
jmp 0x405cc9
mov eax, dword [eax + 0x28]
jmp 0x405ce0
mov edx, dword [eax + 8]
mov ecx, dword [edx + 0x28]
jmp 0x405cf8
mov eax, dword [eax + 0x28]
jmp 0x405d0f
mov eax, dword [0x4a5700]
mov esi, dword [eax + 8]
push eax
call fcn.0046b993
mov ecx, esi
mov dword [0x4a5700], ecx
mov byte [0x4a5705], 0
jmp 0x405d26
mov byte [0x4a5705], 1
jmp 0x405e30
mov ecx, dword [esp + 0x30]
push eax
call fcn.00406aa0
jmp 0x405d63
mov ecx, dword [edi]
push ecx
call fcn.0041294d
mov edx, dword [edi + 0xc]
add esp, 4
push edx
call fcn.0041294d
add esp, 4
jmp 0x405d88
mov ecx, dword [ebx]
test ecx, ecx
je 0x405da4
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebx]
push eax
call fcn.0041294d
add esp, 4
jmp 0x405dc8
mov eax, dword [ebx]
test eax, eax
je 0x405dc8
push eax
call fcn.004465e5
jmp 0x405dc8
mov eax, ebx
call fcn.0040fcb0
jmp 0x405dc8
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
push edx
call fcn.0041294d
mov eax, dword [ebx]
add esp, 4
push eax
call fcn.0041294d
add esp, 4
jmp 0x405dc8
mov eax, dword [ebx]
test eax, eax
je 0x405dc8
push eax
call fcn.0044d4d1
jmp 0x405dc8
push eax
call fcn.00445565
mov dword [esp + 0x44], 0
jmp 0x405e4f
mov eax, dword [esp + 0x38]
test eax, eax
je 0x405e80
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [esp + 0x38]
push ecx
call fcn.0041294d
add esp, 4
jmp 0x405e80
mov eax, dword [esp + 0x38]
test eax, eax
je 0x405e80
push eax
call fcn.004465e5
jmp 0x405e80
lea eax, [esp + 0x38]
call fcn.0040fcb0
jmp 0x405e80
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 4]
push eax
call fcn.0041294d
mov ecx, dword [esp + 0x3c]
add esp, 4
push ecx
call fcn.0041294d
add esp, 4
jmp 0x405e80
mov eax, dword [esp + 0x38]
test eax, eax
je 0x405e80
push eax
call fcn.0044d4d1
jmp 0x405e80
mov edx, dword [edi]
push edx
call fcn.0041294d
mov eax, dword [edi + 0xc]
add esp, 4
push eax
call fcn.0041294d
add esp, 4
jmp 0x405ef3
mov ecx, dword [esi]
test ecx, ecx
je 0x405f0f
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [esi]
push ecx
call fcn.0041294d
add esp, 4
jmp 0x405f33
mov eax, dword [esi]
test eax, eax
je 0x405f33
push eax
call fcn.004465e5
jmp 0x405f33
mov eax, esi
call fcn.0040fcb0
jmp 0x405f33
mov edx, dword [esi]
mov eax, dword [edx + 4]
push eax
call fcn.0041294d
mov ecx, dword [esi]
add esp, 4
push ecx
call fcn.0041294d
add esp, 4
jmp 0x405f33
mov eax, dword [esi]
test eax, eax
je 0x405f33
push eax
call fcn.0044d4d1
jmp 0x405f33
mov eax, dword [esp + 0x30]
push eax
push 0x70
mov ecx, dword [esp + 0x20]
push ecx
call fcn.0045d305
lea esi, [esp + 0x38]
call fcn.004043a0
lea ecx, [esp + 0x50]
call fcn.00435ddf
lea ecx, [esp + 0x78]
call fcn.00411f90
mov eax, 1
jmp 0x405f66