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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xbc
push ebx
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebx + 4]
push esi
push edi
mov edi, eax
mov eax, dword [edi]
mov edx, dword [ecx + eax*4]
mov eax, dword [edx]
mov esi, dword [eax]
push esi
call fcn.0041503a
mov dword [esp + 0x48], eax
inc eax
add esp, 4
cmp eax, 8
jb 0x42f128
xor ecx, ecx
mov dword [esp + 0x48], eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00412dbe
mov ecx, dword [esp + 0x48]
add esp, 4
lea edx, [ecx + ecx + 2]
push edx
push esi
push eax
mov dword [esp + 0x4c], eax
call fcn.004135d0
add esp, 0xc
push 4
call fcn.00412dbe
add esp, 4
test eax, eax
je 0x42f132
mov dword [eax], 1
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x138], 0
mov dword [esp + 0x4c], eax
je 0x42f206
cmp dword [eax], 1
jg 0x42f139
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
push eax
push ecx
call dword [sym.imp.USER32.dll_CharUpperBuffW]
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x134]
test esi, esi
jne 0x42f19c
mov esi, dword [eax + 0x12c]
test esi, esi
je 0x42f206
mov dword [esp + 0x24], esi
mov edx, dword [esi + 4]
cmp edx, dword [esp + 0x44]
jne 0x403975
test edx, edx
jbe 0x402c7b
mov ecx, dword [esp + 0x40]
mov eax, dword [esi]
lea ebx, [ebx]
mov si, word [eax]
cmp si, word [ecx]
jne 0x403971
add eax, 2
add ecx, 2
sub edx, 1
jne 0x402c60
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x4c]
add dword [eax], 0xffffffff
jne 0x402c9e
mov ecx, dword [esp + 0x40]
push ecx
call fcn.00412f61
mov edx, dword [esp + 0x50]
add esp, 4
push edx
call fcn.00412f61
add esp, 4
mov eax, esi
test eax, eax
je 0x42f20f
mov edx, dword [eax + 0x14]
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x58], edx
mov edx, dword [eax + 0x10]
mov eax, dword [edi]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x70], edx
mov edx, dword [ebx + 4]
mov ecx, dword [edx + eax*4]
movsx edx, word [ecx + 0xa]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x140]
inc eax
mov dword [edi], eax
mov esi, dword [ebx + 4]
mov dword [esp + 0x9c], ecx
xor ecx, ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x34], ecx
mov esi, dword [esi + eax*4]
cmp word [esi + 8], 0x47
mov dword [esp + 0x60], 0x486348
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x40], 0x489cd4
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], ecx
jne 0x42f194
inc eax
mov dword [esp + 0x14], edx
mov edx, eax
mov dword [esp + 0x20], ecx
xor esi, esi
mov dword [esp + 0x54], edx
mov dword [edi], eax
mov ecx, dword [ebx + 4]
mov ecx, dword [ecx + eax*4]
movsx ecx, word [ecx + 8]
cmp ecx, 0x47
jge 0x402d4c
inc eax
jmp 0x402d38
sub ecx, 0x47
je 0x42f26b
sub ecx, 1
jne 0x42f242
test esi, esi
jne 0x42f264
mov dword [esp + 0x10], eax
inc eax
mov dword [edi], eax
mov eax, dword [esp + 0x70]
cmp eax, dword [0x4a4738]
jg 0x42f271
cmp eax, ecx
jle 0x42f271
shl eax, 4
add eax, dword [0x4a476c]
mov dword [esp + 0x5c], eax
cmp dword [esp + 0x58], ecx
mov dword [esp + 0x24], ecx
jle 0x402f60
mov dword [esp + 0xc], 3
mov dword [esp + 0x18], ecx
lea esp, [esp]
cmp edx, dword [esp + 0x10]
jae 0x402f60
mov ecx, dword [esp + 0x5c]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0xc]
inc dword [esp + 0x24]
lea eax, [eax + ecx*4]
mov ecx, dword [eax]
xor esi, esi
xor bl, bl
cmp word [ecx + 8], si
je 0x42f27a
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + edx*4]
cmp word [edx + 8], 0x33
je 0x402dee
xor bl, bl
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
cmp edi, eax
je 0x403989
push 1
call fcn.00412dbe
add esp, 4
test eax, eax
je 0x42f2b2
mov byte [eax], bl
mov edx, dword [esp + 0x44]
mov dword [edx + edi*4], eax
inc edi
mov dword [esp + 0x48], edi
test bl, bl
jne 0x42f2b9
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x42f3c2
mov eax, dword [esp + 0x30]
cmp eax, 8
je 0x42f3d5
cmp eax, 0xa
je 0x42f3fa
cmp eax, 5
je 0x42f411
cmp eax, 0xb
je 0x42f41f
cmp eax, 0xc
je 0x42f441
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], 0
cmp edi, eax
je 0x4039e9
mov esi, dword [esp + 0x64]
push 0x10
call fcn.00412dbe
add esp, 4
test eax, eax
je 0x42f627
mov ebx, eax
mov eax, dword [esp + 0x30]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], 0
cmp eax, 1
jne 0x42f458
mov edx, dword [esp + 0x28]
mov dword [ebx], edx
mov ecx, dword [ebp + 0xc]
mov dword [esi + edi*4], ebx
inc edi
mov dword [esp + 0x68], edi
mov edi, dword [esi + edi*4 - 4]
mov esi, dword [esp + 0x10]
push esi
push edi
lea eax, [esp + 0x5c]
push eax
push ecx
mov ecx, dword [ebp + 8]
call fcn.00403a80
test eax, eax
jne 0x430377
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x5c]
mov ecx, dword [edx + 4]
mov edx, dword [ecx + eax*4 + 4]
inc eax
cmp word [edx + 8], 0x41
mov dword [esp + 0xc], eax
je 0x42f62e
mov edx, dword [esp + 0x54]
cmp edx, esi
je 0x402f60
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 4]
mov eax, dword [eax + edx*4]
mov ecx, 0x40
cmp word [eax + 8], cx
jne 0x42f681
lea eax, [edx + 1]
cmp eax, dword [esp + 0x10]
je 0x42f681
mov esi, dword [esp + 0xc]
mov edx, eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x54], edx
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4]
cmp word [eax + 8], cx
jne 0x402f4d
inc dword [esp + 0xc]
mov eax, dword [esp + 0x18]
inc eax
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x18], eax
jl 0x402db0
mov esi, dword [esp + 0x24]
cmp esi, dword [esp + 0x7c]
jl 0x430367
cmp esi, dword [esp + 0x58]
jg 0x430367
cmp edx, dword [esp + 0x10]
jne 0x430367
xor ebx, ebx
mov dword [esp + 0xc], 3
mov dword [esp + 0x20], ebx
mov dword [esp + 0x18], ebx
cmp byte [0x4a4725], bl
jne 0x42f697
push 8
call fcn.00412dbe
add esp, 4
cmp eax, ebx
je 0x42f6ab
mov ecx, dword [esp + 0x18]
mov dword [eax], ecx
mov ecx, dword [0x4a4720]
cmp ecx, ebx
jne 0x42f6bb
mov dword [eax + 4], ebx
mov dword [0x4a4720], eax
mov eax, dword [esp + 0x18]
mov edx, 1
add dword [0x4a471c], edx
cmp eax, ebx
jne 0x42f6c3
cmp dword [esp + 0x58], edx
jl 0x403495
mov dword [esp + 0x18], edx
xor edi, edi
mov ecx, dword [esp + 0x5c]
mov ecx, dword [ecx + 4]
mov esi, dword [esp + 0xc]
or edx, 0xffffffff
mov word [esp + 0x98], dx
mov dword [esp + 0x80], 0x48420c
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], edi
mov dword [esp + 0x8c], edi
mov dword [esp + 0x7c], edi
mov ebx, dword [ecx + esi*4]
lea edx, [ecx + esi*4]
xor eax, eax
mov word [esp + 0x9a], ax
mov dword [esp + 0x10], eax
cmp word [ebx + 8], di
je 0x42f724
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x18], edx
jg 0x42f782
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x44]
mov ebx, dword [ebx + edx*4]
or eax, 0x200
cmp byte [ebx], 0
mov ebx, dword [esp + 0x64]
mov edx, dword [ebx + edx*4]
jne 0x42f75b
mov ebx, eax
lea eax, [esi*4]
mov dword [esp + 0x78], eax
mov eax, dword [eax + ecx]
mov ecx, dword [eax]
mov dword [esp + 0x10], ecx
cmp dword [0x4a471c], edi
je 0x42f851
cmp byte [0x4a4725], 0
mov dword [esp + 0x1c], edx
jne 0x42f866
mov esi, dword [0x4a4720]
mov dword [esp + 0x3c], esi
cmp dword [esi], edi
je 0x4031a6
test byte [0x4a4c04], 1
mov byte [esp + 0x53], 0
je 0x42f874
mov eax, 0x4a4be4
mov dword [0x4a4c00], edi
mov dword [0x4a4bfc], edi
mov dword [esp + 0x74], eax
mov dword [esp + 0x14], eax
jmp 0x4030f0
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
mov ecx, dword [esi]
cmp eax, edi
je 0x42f897
mov edx, dword [ecx + 4]
cmp edx, edi
je 0x42f8f0
cmp eax, edx
jb 0x42f910
cmp eax, edi
jbe 0x42f901
mov ecx, dword [ecx]
mov edx, eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov si, word [eax]
cmp si, word [ecx]
jne 0x40313e
add eax, 2
add ecx, 2
sub edx, 1
jne 0x403126
jmp 0x42f8fd
mov dx, si
mov esi, dword [esp + 0x3c]
cmp dx, word [ecx]
jb 0x42f908
mov eax, 1
cmp eax, edi
jl 0x42f8a0
jle 0x42f969
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
cmp eax, edi
jne 0x42f922
cmp byte [esp + 0x53], 0
mov eax, dword [esi]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x74]
mov dword [edx + 0x1c], ecx
mov eax, dword [esi]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x14]
mov dword [edx + 0x18], ecx
mov eax, dword [esi]
mov ecx, dword [0x4a4c00]
mov dword [eax + 0x18], ecx
mov edx, dword [esi]
mov eax, dword [0x4a4bfc]
mov dword [edx + 0x1c], eax
jne 0x42f973
and ebx, 0xff00
push 0x20
mov dword [esp + 0x18], ebx
call fcn.00412dbe
add esp, 4
cmp eax, edi
je 0x42f998
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], edi
neg ecx
or ecx, eax
push ecx
call fcn.00412dbe
add esp, 4
xor ecx, ecx
mov dword [esi], eax
push 4
mov word [eax], cx
call fcn.00412dbe
add esp, 4
cmp eax, edi
je 0x42f991
mov dword [eax], 1
mov dword [esi + 0xc], eax
mov ebx, esi
mov eax, dword [esp + 0x10]
cmp ebx, eax
je 0x40324c
mov ecx, dword [eax + 4]
mov eax, dword [ebx + 0xc]
mov dword [ebx + 4], ecx
cmp dword [eax], 1
jg 0x42f99f
lea eax, [ecx + 1]
cmp dword [ebx + 8], eax
jb 0x42f9d7
mov edx, dword [ebx + 4]
mov ecx, dword [esp + 0x10]
lea eax, [edx + edx + 2]
mov edx, dword [ecx]
push eax
mov eax, dword [ebx]
push edx
push eax
call fcn.004135d0
add esp, 0xc
mov ecx, dword [esp + 0x14]
push 0x10
mov dword [ebx + 0x10], ecx
call fcn.00412dbe
add esp, 4
cmp eax, edi
je 0x42fb9a
mov ecx, dword [esp + 0x1c]
mov esi, eax
mov eax, dword [ecx + 8]
mov dword [esi + 8], eax
dec eax
mov dword [esp + 0x14], esi
mov dword [esi + 0xc], edi
cmp eax, 0xb
ja case.default.0x40327e
jmp dword [eax*4 + 0x403a48]
push 0x10
call fcn.00412dbe
add esp, 4
cmp eax, edi
je 0x42fa20
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 0xc]
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
inc dword [ecx]
mov dword [esi + 0xc], eax
mov ecx, dword [esp + 0x14]
xor edi, edi
mov eax, dword [esp + 0x3c]
mov dword [ebx + 0x14], ecx
mov dword [ebx + 0x1c], edi
mov dword [ebx + 0x18], edi
mov esi, dword [eax]
cmp esi, edi
je 0x403a3c
test byte [0x4a4c04], 1
je 0x42fba1
mov dword [0x4a4c00], edi
mov dword [0x4a4bfc], edi
mov dword [esp + 0x10], 0x4a4be4
mov dword [esp + 0x74], 0x4a4be4
nop
mov eax, dword [ebx + 4]
cmp eax, edi
je 0x42fbc4
mov edx, dword [esi + 4]
cmp edx, edi
je 0x42fc2b
cmp eax, edx
jb 0x42fc4b
cmp eax, edi
jbe 0x42fc3a
mov ecx, dword [esi]
mov edx, eax
mov eax, dword [ebx]
lea esp, [esp]
mov di, word [eax]
cmp di, word [ecx]
jne 0x403348
add eax, 2
add ecx, 2
sub edx, 1
jne 0x403330
jmp 0x42fc38
mov ax, word [eax]
xor edi, edi
cmp ax, word [ecx]
jb 0x42fc41
mov eax, 1
cmp eax, edi
jl 0x42fbcd
jle 0x403376
lea eax, [esi + 0x1c]
mov dword [esp + 0x14], eax
mov eax, dword [eax]
cmp eax, edi
jne 0x42fc59
mov ecx, dword [esi + 0x18]
mov edx, dword [esp + 0x74]
mov dword [edx + 0x1c], ecx
mov eax, dword [esi + 0x1c]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x18], eax
mov edx, dword [0x4a4c00]
mov dword [esi + 0x18], edx
mov eax, dword [0x4a4bfc]
mov dword [esi + 0x1c], eax
mov eax, dword [ebx + 4]
cmp eax, edi
je 0x42fca4
mov edx, dword [esi + 4]
cmp edx, edi
je 0x42fcbe
cmp eax, edx
jb 0x42fcde
cmp eax, edi
jbe 0x42fccd
mov ecx, dword [esi]
mov edx, eax
mov eax, dword [ebx]
mov di, word [eax]
cmp di, word [ecx]
jne 0x4033df
add eax, 2
add ecx, 2
sub edx, 1
jne 0x4033c7
jmp 0x42fccb
mov dx, word [eax]
cmp dx, word [ecx]
jb 0x42fcd4
mov eax, 1
xor edi, edi
cmp eax, edi
jl 0x42fcad
jle 0x42fcec
mov ecx, dword [0x4a4bfc]
mov dword [ebx + 0x1c], ecx
mov dword [ebx + 0x18], esi
mov dword [esi + 0x1c], edi
mov eax, dword [esp + 0x3c]
mov dword [eax], ebx
mov edx, dword [esp + 0x5c]
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x78]
mov edx, dword [ecx + eax + 4]
cmp word [edx + 8], 0x41
je 0x42fcf3
add dword [esp + 0xc], 2
mov ax, word [esp + 0x98]
inc dword [esp + 0x20]
cmp ax, 0x30
jge 0x42fd27
mov dword [esp + 0x80], 0x48420c
cmp dword [esp + 0x88], edi
ja 0x42fd4b
mov ecx, dword [esp + 0x84]
push ecx
mov dword [esp + 0x8c], edi
call fcn.00412f61
mov eax, dword [esp + 0x1c]
inc eax
add esp, 4
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x18], eax
jle 0x402ff5
mov esi, dword [esp + 0x24]
xor ebx, ebx
lea edx, [ebx + 1]
mov edi, dword [ebp + 8]
mov eax, dword [edi]
mov dword [edi + 0x140], esi
mov ecx, dword [eax + 4]
cmp byte [ecx + edi + 0xd], 0
lea esi, [ecx + edi + 4]
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xbc], ebx
jne 0x42fdb0
push 0x30
call fcn.00412dbe
add esp, 4
cmp eax, ebx
je 0x42fdf7
mov dword [eax + 8], 1
mov dword [eax + 0xc], ebx
mov dword [eax], ebx
mov byte [eax + 0x10], 0
mov dword [eax + 0x14], ebx
mov byte [eax + 0x18], 0
mov dword [eax + 0x1c], ebx
mov byte [eax + 0x20], 0
mov ecx, dword [esi + 4]
cmp ecx, ebx
je 0x42fdfe
mov dword [eax + 0x28], ecx
mov dword [esi + 4], eax
mov ecx, dword [esp + 0x70]
inc dword [esi]
inc ecx
push ebx
push ecx
mov ecx, edi
call fcn.00402210
mov edx, dword [edi]
mov eax, dword [edx + 4]
cmp byte [eax + edi + 0xd], 0
mov ecx, dword [eax + edi + 8]
lea eax, [eax + edi + 4]
jne 0x42fe06
cmp byte [ecx + 0x10], 0
je 0x43002f
cmp byte [eax + 9], 0
mov edx, dword [ebp + 0x14]
mov byte [edx], 1
jne 0x42fe0e
mov esi, dword [eax + 4]
mov ebx, dword [ebp + 0x10]
cmp ebx, esi
je case.default.0x42feaa
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x42fe19
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x42fe2b
cmp eax, 0xa
je 0x42fe4c
cmp eax, 5
je 0x42fe61
cmp eax, 0xb
je 0x42fe6d
cmp eax, 0xc
je 0x42fe8b
mov dword [ebx + 8], 1
mov dword [ebx], 0
mov eax, dword [esi + 8]
mov dword [ebx + 8], eax
cmp eax, 4
jne 0x42fea0
push 0x10
call fcn.00412dbe
add esp, 4
test eax, eax
je 0x430020
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
inc dword [ecx]
mov dword [ebx + 0xc], eax
mov ecx, dword [edi]
mov edx, dword [ecx + 4]
cmp byte [edx + edi + 0xd], 0
mov eax, dword [edx + edi + 8]
lea esi, [edx + edi + 4]
jne 0x430027
cmp byte [eax + 0x18], 0
jne 0x43004b
cmp byte [esi + 9], 0
jne 0x430061
mov eax, dword [esi + 4]
cmp byte [eax + 0x20], 0
jne 0x43006c
cmp byte [esi + 9], 0
jne 0x430082
cmp byte [esi + 8], 0
jne 0x4300a2
mov ebx, dword [esi + 4]
mov ecx, dword [ebx + 0x28]
mov dword [esp + 0x70], ecx
test ebx, ebx
je 0x4036a9
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x403663
mov ecx, dword [eax + 0xc]
dec dword [ecx]
mov edx, dword [eax + 0xc]
cmp dword [edx], 0
mov dword [esp + 0x20], eax
je 0x4300ab
mov ecx, dword [esp + 0x20]
push ecx
call fcn.00412f61
add esp, 4
mov dword [ebx + 0xc], 0
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x4300cf
cmp eax, 0xa
je 0x4300f0
cmp eax, 5
je 0x430105
cmp eax, 0xb
je 0x430111
cmp eax, 0xc
je 0x43012f
push ebx
mov dword [ebx + 8], 1
mov dword [ebx], 0
call fcn.00412f61
add esp, 4
mov eax, dword [esp + 0x70]
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 0x430144
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0xb4]
mov dword [ecx + 0x14], edx
cmp byte [eax + 0xd], 0
mov eax, dword [eax + 8]
jne 0x43014f
mov byte [eax + 0x18], 0
mov ecx, dword [edi]
mov eax, dword [ecx + 4]
add eax, edi
cmp byte [eax + 0xd], 0
jne 0x430157
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0xbc]
mov dword [ecx + 0x1c], edx
cmp byte [eax + 0xd], 0
mov eax, dword [eax + 8]
jne 0x430162
mov byte [eax + 0x20], 0
cmp byte [0x4a4725], 0
jne 0x43016a
mov ecx, dword [0x4a4720]
cmp byte [0x4a4724], 0
jne 0x43018c
mov esi, dword [ecx]
mov ebx, dword [ecx + 4]
mov dword [esp + 0x70], ecx
test esi, esi
je 0x403815
mov eax, dword [esi + 0x18]
mov dword [esp + 0x78], ebx
test eax, eax
je 0x403756
push eax
call fcn.00404cf0
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x430198
cmp byte [esi + 0x10], 0
jne 0x4037e4
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x4037e4
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x40379e
mov eax, dword [ecx + 0xc]
dec dword [eax]
mov dword [esp + 0x20], ecx
mov ecx, dword [ecx + 0xc]
cmp dword [ecx], 0
je 0x4301a7
mov eax, dword [esp + 0x20]
push eax
call fcn.00412f61
add esp, 4
mov dword [ebx + 0xc], 0
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x4301cb
cmp eax, 0xa
je 0x4301ec
cmp eax, 5
je 0x430201
cmp eax, 0xb
je 0x43020d
cmp eax, 0xc
je 0x43022b
push ebx
mov dword [ebx + 8], 1
mov dword [ebx], 0
call fcn.00412f61
add esp, 4
mov eax, dword [esi + 0xc]
dec dword [eax]
mov edx, dword [esi + 0xc]
cmp dword [edx], 0
jne 0x403808
mov eax, dword [esi]
push eax
call fcn.00412f61
mov ecx, dword [esi + 0xc]
add esp, 4
push ecx
call fcn.00412f61
add esp, 4
push esi
call fcn.00412f61
mov ebx, dword [esp + 0x7c]
add esp, 4
mov edx, dword [esp + 0x70]
push edx
call fcn.00412f61
add esp, 4
mov dword [0x4a4720], ebx
mov byte [0x4a4725], 0
mov eax, dword [esp + 0x9c]
dec dword [0x4a471c]
mov dword [edi + 0x140], eax
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x430240
mov eax, dword [esp + 0x30]
cmp eax, 8
je 0x430253
cmp eax, 0xa
je 0x430278
cmp eax, 5
je 0x43028f
cmp eax, 0xb
je 0x43029d
cmp eax, 0xc
je 0x4302bf
xor edi, edi
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edi
cmp dword [esp + 0x48], edi
jbe 0x4038b1
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x44]
jmp 0x4038a0
mov edx, dword [ebx + edi*4]
push edx
call fcn.00412f61
inc edi
add esp, 4
cmp edi, esi
jb 0x4038a0
mov eax, dword [esp + 0x44]
push eax
call fcn.00412f61
add esp, 4
cmp dword [esp + 0x68], 0
jbe 0x403950
xor ebx, ebx
jmp 0x4038d0
mov ecx, dword [esp + 0x64]
mov esi, dword [ecx + ebx*4]
test esi, esi
je 0x403949
mov edi, dword [esi + 0xc]
test edi, edi
je 0x403903
mov eax, dword [edi + 0xc]
dec dword [eax]
mov edx, dword [edi + 0xc]
cmp dword [edx], 0
je 0x4302d6
push edi
call fcn.00412f61
add esp, 4
mov dword [esi + 0xc], 0
mov eax, dword [esi + 8]
cmp eax, 8
je 0x4302f2
cmp eax, 0xa
je 0x430313
cmp eax, 5
je 0x430328
cmp eax, 0xb
je 0x430334
cmp eax, 0xc
je 0x430352
push esi
mov dword [esi + 8], 1
mov dword [esi], 0
call fcn.00412f61
add esp, 4
inc ebx
cmp ebx, dword [esp + 0x68]
jb 0x4038d0
mov eax, dword [esp + 0x64]
push eax
call fcn.00412f61
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ecx]
mov dword [esi], eax
jmp case.default.0x40327e
mov esi, dword [esp + 0x24]
mov esi, dword [esi + 0x20]
mov dword [esp + 0x24], esi
test esi, esi
jne 0x402c43
jmp 0x42f206
add eax, eax
cmp eax, 4
jae 0x403995
mov eax, 4
xor ecx, ecx
mov dword [esp + 0x4c], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00412dbe
mov edx, dword [esp + 0x48]
add esp, 4
lea ecx, [edi*4]
push ecx
push edx
push eax
mov dword [esp + 0x84], eax
call fcn.004135d0
mov eax, dword [esp + 0x50]
add esp, 0xc
push eax
call fcn.00412f61
mov ecx, dword [esp + 0x7c]
add esp, 4
mov dword [esp + 0x44], ecx
jmp 0x402dfe
add eax, eax
cmp eax, 4
jae 0x4039f5
mov eax, 4
xor ecx, ecx
mov dword [esp + 0x6c], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00412dbe
mov ebx, dword [esp + 0x68]
mov esi, eax
add esp, 4
lea eax, [edi*4]
push eax
push ebx
push esi
call fcn.004135d0
add esp, 0xc
push ebx
call fcn.00412f61
add esp, 4
mov dword [esp + 0x64], esi
jmp 0x402e83
mov dword [ebx + 0x1c], edi
mov dword [ebx + 0x18], edi
jmp 0x403413
mov eax, 8
jmp 0x402ba7
xor eax, eax
jmp 0x402bf3
mov eax, dword [esp + 0x4c]
dec dword [eax]
lea esi, [esp + 0x40]
call fcn.004102f0
mov edx, dword [esp + 0x44]
inc edx
push edx
call fcn.00438522
xor ecx, ecx
mov esi, eax
mov edx, 2
mul edx
seto cl
mov dword [esp + 0x48], esi
neg ecx
or ecx, eax
push ecx
call fcn.00412dbe
mov edx, dword [esp + 0x44]
mov esi, eax
mov eax, dword [esp + 0x48]
add esp, 4
lea ecx, [eax + eax + 2]
push ecx
push edx
push esi
call fcn.004135d0
add esp, 0xc
mov dword [esp + 0x40], esi
jmp 0x402c10
push edx
push 0x6f
jmp 0x43036e
mov eax, dword [eax + 0x138]
sub eax, 1
js 0x42f206
mov dword [esp + 0x58], 0
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x58]
lea eax, [ecx + edx]
cdq
sub eax, edx
sar eax, 1
mov ecx, dword [esi + eax*4]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x40]
call fcn.00405f20
test eax, eax
jge 0x42f1ed
mov eax, dword [esp + 0x18]
dec eax
mov dword [esp + 0x24], eax
jmp 0x42f1fc
jle 0x42f223
mov ecx, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x58], ecx
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x58], edx
jle 0x42f1b7
lea ecx, [esp + 0x40]
call fcn.004066f0
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
push eax
push edi
push ebx
push ecx
call fcn.0047ca0f
jmp 0x40395f
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x58], eax
jg 0x42f206
mov ecx, dword [esp + 0x18]
mov esi, dword [esi + ecx*4]
lea ecx, [esp + 0x40]
call fcn.004066f0
jmp 0x402c9e
sub ecx, 0x37
jne 0x402d49
mov edx, eax
mov eax, dword [ebx + 4]
mov ecx, dword [eax + edx*4 - 4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0x6f
push eax
jmp 0x430372
dec esi
inc eax
jmp 0x402d38
inc esi
jmp 0x402d49
mov dword [esp + 0x5c], ecx
jmp 0x402d92
mov ecx, dword [eax]
mov ecx, dword [ecx]
cmp ecx, 0x23
jne 0x42f28e
mov bl, 1
jmp 0x42f29c
cmp ecx, 0x1e
jne 0x42f638
mov esi, 0x100
mov ecx, dword [eax + 4]
inc dword [esp + 0xc]
add eax, 4
cmp word [ecx + 8], 0
je 0x42f27a
jmp 0x402ddc
xor eax, eax
jmp 0x402e12
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 4]
mov ecx, dword [esp + 0x54]
mov eax, dword [edx + ecx*4]
cmp word [eax + 8], 0x33
jne 0x42f648
mov ebx, dword [eax]
lea ecx, [esp + 0x3c]
push ecx
xor ecx, ecx
lea edi, [esp + 0x24]
call fcn.0040e9e0
test al, al
je 0x42f664
test dword [esp + 0x20], 0x100
je 0x42f325
test esi, 0x100
jne 0x42f325
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x54]
mov ecx, dword [edx + eax*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0xb0
push eax
jmp 0x430372
mov edx, dword [esp + 0x3c]
mov edi, 1
add dword [esp + 0x54], edi
add dword [esp + 0xc], edi
cmp dword [edx + 8], 5
jne 0x42f396
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 4]
mov edx, dword [esp + 0x54]
mov eax, dword [eax + edx*4]
cmp word [eax + 8], 0x4e
jne 0x42f396
mov eax, dword [ebp + 8]
push 0
lea edx, [esp + 0x40]
push edx
push eax
lea eax, [esp + 0x60]
call fcn.00401890
test eax, eax
je 0x42f396
lea esi, [esp + 0x28]
call fcn.00401f90
lea ecx, [esp + 0x40]
call fcn.00436bd4
lea ecx, [esp + 0x60]
call fcn.00412860
mov eax, edi
jmp 0x40395f
lea esi, [esp + 0x28]
call fcn.00401f90
mov ecx, dword [esp + 0x3c]
push esi
lea esi, [esp + 0x64]
mov dword [esp + 0x34], 6
mov dword [esp + 0x2c], ecx
call fcn.004019d0
mov esi, dword [esp + 0x10]
jmp 0x402f02
push eax
call fcn.0044db5e
mov dword [esp + 0x34], 0
jmp 0x402e32
mov eax, dword [esp + 0x28]
test eax, eax
je 0x402e63
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esp + 0x28]
push eax
call fcn.00412f61
add esp, 4
jmp 0x402e63
mov eax, dword [esp + 0x28]
test eax, eax
je 0x402e63
push eax
call fcn.0044db42
jmp 0x402e63
lea eax, [esp + 0x28]
call fcn.0040fa90
jmp 0x402e63
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 4]
push edx
call fcn.00412f61
mov eax, dword [esp + 0x2c]
add esp, 4
push eax
call fcn.00412f61
add esp, 4
jmp 0x402e63
mov eax, dword [esp + 0x28]
test eax, eax
je 0x402e63
push eax
call fcn.00454e58
jmp 0x402e63
dec eax
cmp eax, 0xb
ja case.default.0x42f462
jmp dword [eax*4 + 0x43039c]
push 0x10
call fcn.00412dbe
add esp, 4
test eax, eax
je 0x42f49f
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
inc dword [ecx]
mov dword [ebx + 0xc], eax
jmp 0x402eb8
xor eax, eax
mov dword [ebx + 0xc], eax
jmp 0x402eb8
mov eax, dword [esp + 0x28]
mov dword [ebx], eax
mov ecx, dword [esp + 0x2c]
mov dword [ebx + 4], ecx
jmp 0x402eb8
fld qword [esp + 0x28]
fstp qword [ebx]
jmp 0x402eb8
mov eax, dword [esp + 0x28]
mov dword [ebx], eax
jmp 0x402eb8
push 0x214
call fcn.00412dbe
add esp, 4
test eax, eax
je 0x42f4f8
mov esi, dword [esp + 0x28]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x42f4fa
xor eax, eax
mov dword [ebx], eax
cmp dword [eax + 4], 0
je case.default.0x42f462
mov eax, dword [eax + 4]
inc dword [eax]
mov edi, dword [esp + 0x68]
mov esi, dword [esp + 0x64]
jmp 0x402eb8
cmp dword [esp + 0x28], 0
je case.default.0x42f462
push 0x10
call fcn.00412dbe
add esp, 4
push eax
mov dword [ebx], eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov ecx, dword [esp + 0x28]
mov edx, dword [ebx]
push ecx
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
jge 0x402eb8
mov eax, dword [ebx]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebx]
push ecx
call fcn.00412f61
add esp, 4
mov dword [ebx], 0
jmp 0x402eb8
mov dl, byte [esp + 0x28]
mov byte [ebx], dl
jmp 0x402eb8
push 0x18
call fcn.00412dbe
add esp, 4
test eax, eax
je 0x42f596
mov ecx, dword [esp + 0x28]
push ecx
push eax
call fcn.0044ddd4
mov dword [ebx], eax
jmp 0x402eb8
xor eax, eax
mov dword [ebx], eax
jmp 0x402eb8
push 8
call fcn.00412dbe
mov dword [ebx], eax
mov edx, dword [esp + 0x2c]
mov ecx, dword [edx]
mov dword [eax], ecx
mov edx, dword [ebx]
mov eax, dword [edx]
add esp, 4
test eax, eax
je 0x42f5eb
push eax
call fcn.00412dbe
mov ecx, dword [ebx]
mov dword [ecx + 4], eax
mov eax, dword [ebx]
mov edx, dword [eax]
mov ecx, dword [esp + 0x2c]
mov eax, dword [eax + 4]
add esp, 4
push edx
mov edx, dword [ecx + 4]
push edx
push eax
call fcn.004135d0
add esp, 0xc
jmp 0x402eb8
push 1
call fcn.00412dbe
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 0x402eb8
push 0x18
call fcn.00412dbe
add esp, 4
test eax, eax
je 0x42f596
mov ecx, dword [esp + 0x28]
push ecx
push eax
call fcn.0046f3cb
mov dword [ebx], eax
jmp 0x402eb8
xor ebx, ebx
jmp 0x402eb8
add dword [esp + 0xc], 2
jmp 0x402f02
mov ecx, dword [ebp + 8]
push 0xffffffffffffffff
push 0x91
push ecx
jmp 0x430372
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0x91
push eax
jmp 0x430372
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x54]
mov ecx, dword [edx + eax*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0x79
push eax
jmp 0x430372
mov ecx, dword [esi + 4]
mov edx, dword [ecx + edx*4]
movsx eax, word [edx + 0xa]
mov ecx, dword [ebp + 8]
push eax
push 0x6f
push ecx
jmp 0x430372
mov edx, dword [0x4a4720]
mov dword [edx], ebx
mov byte [0x4a4725], 0
jmp 0x402fce
mov ecx, dword [0x4a4720]
xor eax, eax
cmp ecx, ebx
je 0x402fc6
mov dword [eax + 4], ecx
jmp 0x402fc9
mov edi, eax
mov eax, dword [eax + 0x18]
cmp eax, ebx
je 0x42f6df
push eax
lea ecx, [esp + 0x1c]
call fcn.00404cf0
mov edx, 1
mov eax, dword [edi + 0x1c]
cmp eax, ebx
je 0x42f6f9
push eax
lea ecx, [esp + 0x1c]
call fcn.00404cf0
mov edx, 1
cmp byte [edi + 0x10], 0
jne 0x42f714
mov ecx, dword [edi + 0x14]
cmp ecx, ebx
je 0x42f714
push edx
call fcn.0040f9f0
push edi
call fcn.0044db5e
mov edx, 1
jmp 0x402fe5
mov ebx, dword [edx]
mov ebx, dword [ebx]
cmp ebx, 0x23
je 0x42f746
cmp ebx, 0x1e
jne 0x42f74a
mov dword [esp + 0x10], 0x100
mov eax, dword [esp + 0x10]
inc esi
add edx, 4
mov ebx, dword [edx]
cmp word [ebx + 8], di
je 0x42f724
mov dword [esp + 0xc], esi
jmp 0x40304d
mov ecx, dword [ecx + esi*4]
push eax
push edx
call fcn.00437d05
push eax
mov eax, dword [ecx]
push eax
call fcn.0045a1eb
test al, al
je 0x42fd74
add esi, 2
mov dword [esp + 0xc], esi
jmp 0x403434
lea ebx, [esp + 0x80]
call fcn.0040e210
mov ecx, dword [esp + 0x5c]
mov edx, dword [ecx + 4]
mov dword [esp + 0x7c], 0
mov eax, dword [edx + esi*4 + 8]
movzx ecx, word [eax + 8]
cmp cx, 0x4a
je 0x42f7bf
cmp cx, 0x49
je 0x42f7bf
push eax
jmp 0x42f7d8
push eax
lea edi, [esp + 0x84]
call fcn.00406830
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + esi*4 + 0xc]
push edx
lea edi, [esp + 0x84]
call fcn.00406830
mov edi, 0x7f
lea esi, [esp + 0x90]
call fcn.00406ff0
push esi
lea edi, [esp + 0x84]
call fcn.00406830
push 0xffffffffffffffff
lea ecx, [esp + 0x2c]
push ecx
mov ecx, dword [ebp + 8]
lea edx, [esp + 0x84]
push edx
push edi
call fcn.00403a80
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x5c]
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x10]
add eax, eax
add eax, eax
mov esi, dword [eax + edx]
mov edi, dword [esi]
mov dword [esp + 0x78], eax
or ecx, 0x200
mov eax, 1
lea edx, [esp + 0x28]
call fcn.0040e370
xor edi, edi
jmp 0x403415
mov eax, dword [esp + 0x10]
push ebx
push edx
mov esi, 0x4a4718
call fcn.00405e30
jmp 0x403415
mov edx, dword [0x4a4720]
mov esi, dword [edx + 4]
jmp 0x4030b4
or dword [0x4a4c04], 1
push 0x4a4be4
call fcn.0044db79
push 0x42a398
call fcn.00412f4a
add esp, 4
jmp 0x4030d2
cmp dword [ecx + 4], edi
je 0x403101
mov eax, dword [esi]
mov ecx, dword [eax + 0x18]
cmp ecx, edi
je 0x40316e
mov eax, dword [esp + 0x10]
call fcn.004060d0
test al, al
je 0x42f8db
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov ecx, dword [esi]
mov edx, dword [eax + 0x1c]
mov dword [ecx + 0x18], edx
mov ecx, dword [esi]
mov dword [eax + 0x1c], ecx
mov dword [esi], eax
cmp dword [eax + 0x18], edi
je 0x40316e
mov edx, dword [esi]
mov eax, dword [esp + 0x14]
mov dword [eax + 0x18], edx
mov eax, dword [esi]
mov ecx, dword [eax + 0x18]
mov dword [esi], ecx
jmp 0x4030e7
cmp eax, edi
jne 0x403161
jmp 0x40310c
mov esi, dword [esp + 0x3c]
xor eax, eax
jmp 0x403153
or eax, 0xffffffff
jmp 0x403153
mov eax, dword [esp + 0x10]
mov ecx, dword [ecx]
mov eax, dword [eax]
call fcn.00406240
jmp 0x403153
mov ecx, dword [esp + 0x10]
call fcn.004060d0
test al, al
je 0x42f950
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
mov edx, dword [esi]
mov ecx, dword [eax + 0x18]
mov dword [edx + 0x1c], ecx
mov edx, dword [esi]
mov dword [eax + 0x18], edx
mov dword [esi], eax
cmp dword [eax + 0x1c], edi
je 0x40316e
mov eax, dword [esi]
mov ecx, dword [esp + 0x74]
mov dword [ecx + 0x1c], eax
mov eax, dword [esi]
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x74], eax
mov dword [esi], edx
jmp 0x4030f0
mov byte [esp + 0x53], 1
jmp 0x40316e
mov esi, dword [esi]
cmp esi, edi
je 0x4031a6
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esi + 0x14]
push ecx
call fcn.00405b40
xor edi, edi
jmp 0x403415
xor eax, eax
jmp 0x403207
xor ebx, ebx
jmp 0x40320c
dec dword [eax]
mov esi, ebx
call fcn.004102f0
mov edx, dword [ebx + 4]
inc edx
push edx
call fcn.00438522
xor ecx, ecx
mov dword [ebx + 8], eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00412dbe
add esp, 4
mov dword [ebx], eax
xor edi, edi
jmp 0x403232
push eax
mov esi, ecx
call fcn.00438522
mov dword [ebx + 8], eax
mov eax, dword [ebx]
cmp eax, edi
je 0x42f9f5
push eax
call fcn.00412f61
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.00412dbe
xor ecx, ecx
mov dword [ebx], eax
add esp, 4
mov word [eax + esi*2], cx
xor edi, edi
jmp 0x403232
xor eax, eax
jmp 0x4032b6
mov eax, dword [ecx]
mov dword [esi], eax
mov ecx, dword [ecx + 4]
mov dword [esi + 4], ecx
jmp case.default.0x40327e
fld qword [ecx]
fstp qword [esi]
jmp case.default.0x40327e
mov edx, dword [ecx]
mov dword [esi], edx
jmp case.default.0x40327e
push 0x214
call fcn.00412dbe
add esp, 4
cmp eax, edi
je 0x42fa6e
mov edx, dword [esp + 0x1c]
mov esi, dword [edx]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, eax
mov eax, dword [esp + 0x14]
mov dword [eax], edi
cmp dword [edi + 4], 0
je case.default.0x40327e
mov edi, dword [edi + 4]
inc dword [edi]
jmp case.default.0x40327e
cmp dword [ecx], edi
je case.default.0x40327e
push 0x10
call fcn.00412dbe
add esp, 4
push eax
mov dword [esi], eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov eax, dword [esi]
push edx
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
jge case.default.0x40327e
mov ecx, dword [esi]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [esi]
push edx
call fcn.00412f61
add esp, 4
mov dword [esi], edi
jmp case.default.0x40327e
mov al, byte [ecx]
mov byte [esi], al
jmp case.default.0x40327e
push 0x18
call fcn.00412dbe
add esp, 4
cmp eax, edi
je 0x42fb93
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
push edx
push eax
call fcn.0044ddd4
jmp 0x40396a
push 8
call fcn.00412dbe
mov ecx, dword [esp + 0x20]
mov dword [esi], eax
mov edx, dword [ecx]
mov ecx, dword [edx]
mov dword [eax], ecx
mov edx, dword [esi]
mov eax, dword [edx]
add esp, 4
cmp eax, edi
je 0x42fb53
push eax
call fcn.00412dbe
mov ecx, dword [esi]
mov dword [ecx + 4], eax
mov esi, dword [esi]
mov edx, dword [esi]
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov eax, dword [esi + 4]
add esp, 4
push edx
mov edx, dword [ecx + 4]
push edx
push eax
call fcn.004135d0
add esp, 0xc
jmp case.default.0x40327e
push 1
call fcn.00412dbe
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.0x40327e
push 0x18
call fcn.00412dbe
add esp, 4
cmp eax, edi
je 0x42fb93
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
push edx
push eax
call fcn.0046f3cb
jmp 0x40396a
xor eax, eax
jmp 0x40396a
xor ecx, ecx
jmp 0x4032bf
or dword [0x4a4c04], 1
push 0x4a4be4
call fcn.0044db79
push 0x42a398
call fcn.00412f4a
add esp, 4
jmp 0x4032e3
cmp dword [esi + 4], edi
je 0x40330b
lea eax, [esi + 0x18]
mov dword [esp + 0x14], eax
mov eax, dword [eax]
cmp eax, edi
je 0x403376
mov dword [esp + 0x1c], eax
mov ecx, eax
mov eax, ebx
call fcn.004060d0
test al, al
je 0x42fc15
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x14]
mov dword [edx], ecx
mov dword [eax + 0x1c], esi
mov esi, eax
cmp dword [eax + 0x18], edi
je 0x403376
add eax, 0x18
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x18], esi
mov dword [esp + 0x10], esi
mov esi, dword [ecx]
jmp 0x403300
cmp eax, edi
jne 0x403365
jmp 0x403316
xor edi, edi
xor eax, eax
jmp 0x40335b
mov eax, 0xffffffff
jmp 0x40335b
mov ecx, dword [esi]
mov eax, dword [ebx]
call fcn.00406240
jmp 0x40335b
mov ecx, ebx
mov dword [esp + 0x1c], eax
call fcn.004060d0
test al, al
je 0x42fc8e
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [ecx], edx
mov dword [eax + 0x18], esi
mov esi, eax
cmp dword [eax + 0x1c], edi
je 0x403376
add eax, 0x1c
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x14]
mov dword [edx + 0x1c], esi
mov dword [esp + 0x74], esi
mov esi, dword [eax]
jmp 0x403300
cmp dword [esi + 4], edi
je 0x4033a6
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], esi
mov dword [esi + 0x18], edi
jmp 0x40340f
cmp eax, edi
jne 0x403400
jmp 0x4033b1
xor edi, edi
xor eax, eax
jmp 0x4033f2
or eax, 0xffffffff
xor edi, edi
jmp 0x4033f2
mov ecx, dword [esi]
mov eax, dword [ebx]
call fcn.00406240
jmp 0x4033f2
mov ebx, esi
jmp 0x40340f
mov ecx, dword [esp + 0xc]
mov edx, dword [eax + ecx*4 + 8]
movzx eax, word [edx + 8]
cmp ax, 0x4a
je 0x42fd1d
cmp ax, 0x49
je 0x42fd1d
add dword [esp + 0xc], 4
jmp 0x403434
add dword [esp + 0xc], 5
jmp 0x403434
cmp ax, 0x3f
jg 0x40344a
mov eax, dword [esp + 0x90]
cmp eax, edi
je 0x40344a
push eax
call fcn.0044db5e
jmp 0x40344a
xor esi, esi
mov eax, dword [esp + 0x84]
mov eax, dword [eax + esi*4]
cmp eax, edi
je 0x42fd65
push eax
call fcn.0044f651
inc esi
cmp esi, dword [esp + 0x88]
jb 0x42fd4d
jmp 0x403462
mov edx, dword [esp + 0x5c]
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0xc]
mov edx, dword [eax + ecx*4]
movsx eax, word [edx + 0xa]
mov ecx, dword [ebp + 8]
push eax
push 0x79
push ecx
call fcn.004456fb
lea edx, [esp + 0x90]
push edx
call fcn.0044db8b
lea ecx, [esp + 0x80]
call fcn.00410130
jmp 0x430377
mov eax, dword [esi + 4]
mov dword [esp + 0xa8], edx
lea edx, [esp + 0xa0]
push edx
push eax
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xb4], ebx
mov byte [esp + 0xb8], 0
mov byte [esp + 0xc0], 0
mov byte [esp + 0xc8], 0
call fcn.00472950
mov byte [esi + 9], 0
jmp 0x403501
xor eax, eax
jmp 0x4034f0
mov dword [eax + 0x28], ebx
jmp 0x4034fe
mov ecx, dword [ecx + 0x28]
jmp 0x403529
mov eax, dword [eax + 4]
mov esi, dword [eax + 0x28]
jmp 0x403546
push eax
call fcn.0044db5e
mov dword [ebx + 0xc], 0
jmp 0x40355c
mov ecx, dword [ebx]
test ecx, ecx
je 0x403568
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebx]
push ecx
call fcn.00412f61
add esp, 4
jmp 0x40358c
mov eax, dword [ebx]
test eax, eax
je 0x40358c
push eax
call fcn.0044db42
jmp 0x40358c
mov eax, ebx
call fcn.0040fa90
jmp 0x40358c
mov edx, dword [ebx]
mov eax, dword [edx + 4]
push eax
call fcn.00412f61
mov ecx, dword [ebx]
add esp, 4
push ecx
call fcn.00412f61
add esp, 4
jmp 0x40358c
mov eax, dword [ebx]
test eax, eax
je 0x40358c
push eax
call fcn.00454e58
jmp 0x40358c
dec eax
cmp eax, 0xb
ja case.default.0x42feaa
jmp dword [eax*4 + 0x4303cc]
mov eax, dword [esi]
mov dword [ebx], eax
mov ecx, dword [esi + 4]
mov dword [ebx + 4], ecx
jmp case.default.0x42feaa
mov edx, dword [esi]
mov dword [ebx], edx
jmp case.default.0x42feaa
fld qword [esi]
fstp qword [ebx]
jmp case.default.0x42feaa
mov eax, dword [esi]
mov dword [ebx], eax
jmp case.default.0x42feaa
push 0x214
call fcn.00412dbe
add esp, 4
test eax, eax
je 0x42ff03
mov esi, dword [esi]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp + 8]
jmp 0x42ff05
xor eax, eax
mov dword [ebx], eax
cmp dword [eax + 4], 0
je case.default.0x42feaa
mov eax, dword [eax + 4]
inc dword [eax]
jmp case.default.0x42feaa
cmp dword [esi], 0
je case.default.0x42feaa
push 0x10
call fcn.00412dbe
add esp, 4
push eax
mov dword [ebx], eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov ecx, dword [esi]
mov edx, dword [ebx]
push ecx
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
jge case.default.0x42feaa
mov eax, dword [ebx]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebx]
push ecx
call fcn.00412f61
add esp, 4
mov dword [ebx], 0
jmp case.default.0x42feaa
mov dl, byte [esi]
mov byte [ebx], dl
jmp case.default.0x42feaa
push 0x18
call fcn.00412dbe
add esp, 4
test eax, eax
je 0x42ff95
mov ecx, dword [esi]
push ecx
push eax
call fcn.0044ddd4
mov dword [ebx], eax
jmp case.default.0x42feaa
xor eax, eax
mov dword [ebx], eax
jmp case.default.0x42feaa
push 8
call fcn.00412dbe
mov dword [ebx], eax
mov edx, dword [esi]
mov ecx, dword [edx]
mov dword [eax], ecx
mov edx, dword [ebx]
mov eax, dword [edx]
add esp, 4
test eax, eax
je 0x42ffe6
push eax
call fcn.00412dbe
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.004135d0
add esp, 0xc
jmp case.default.0x42feaa
push 1
call fcn.00412dbe
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.0x42feaa
push 0x18
call fcn.00412dbe
add esp, 4
test eax, eax
je 0x42ff95
mov ecx, dword [esi]
push ecx
push eax
call fcn.0046f3cb
mov dword [ebx], eax
jmp case.default.0x42feaa
xor eax, eax
jmp 0x4035d5
mov eax, dword [eax + 0x28]
jmp 0x4035f0
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov byte [eax], 0
call fcn.00401f90
mov dword [esi + 8], 1
mov dword [esi], ebx
jmp case.default.0x42feaa
mov eax, esi
call fcn.00402040
mov ecx, dword [eax + 0x14]
mov dword [esp + 0xb4], ecx
jmp 0x4035fa
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x28]
jmp 0x403607
mov eax, esi
call fcn.00402040
mov eax, dword [eax + 0x1c]
mov dword [esp + 0xbc], eax
jmp 0x403611
mov eax, dword [esi + 4]
mov ebx, dword [eax + 0x28]
test eax, eax
je 0x430096
push eax
call fcn.00455d55
mov dword [esi + 4], ebx
mov byte [esi + 9], 0
jmp 0x40361b
mov byte [esi + 9], 1
jmp 0x4036b4
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
push ecx
call fcn.00412f61
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0xc]
add esp, 4
push eax
call fcn.00412f61
add esp, 4
jmp 0x40364f
mov ecx, dword [ebx]
test ecx, ecx
je 0x40366f
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [ebx]
push edx
call fcn.00412f61
add esp, 4
jmp 0x403693
mov eax, dword [ebx]
test eax, eax
je 0x403693
push eax
call fcn.0044db42
jmp 0x403693
mov eax, ebx
call fcn.0040fa90
jmp 0x403693
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
push ecx
call fcn.00412f61
mov edx, dword [ebx]
add esp, 4
push edx
call fcn.00412f61
add esp, 4
jmp 0x403693
mov eax, dword [ebx]
test eax, eax
je 0x403693
push eax
call fcn.00454e58
jmp 0x403693
mov edx, dword [eax + 8]
mov ecx, dword [edx + 0x28]
jmp 0x4036ca
mov eax, dword [eax + 0x28]
jmp 0x4036e1
mov edx, dword [eax + 8]
mov ecx, dword [edx + 0x28]
jmp 0x4036f9
mov eax, dword [eax + 0x28]
jmp 0x403710
mov eax, dword [0x4a4720]
mov esi, dword [eax + 4]
push eax
call fcn.0046b1b2
mov ecx, esi
mov dword [0x4a4720], ecx
mov byte [0x4a4725], 0
jmp 0x403727
mov byte [0x4a4725], 1
jmp 0x40382f
mov ecx, dword [esp + 0x70]
push eax
call fcn.00404cf0
jmp 0x403761
mov edx, dword [esp + 0x20]
mov eax, dword [edx]
push eax
call fcn.00412f61
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0xc]
add esp, 4
push edx
call fcn.00412f61
add esp, 4
jmp 0x40378a
mov ecx, dword [ebx]
test ecx, ecx
je 0x4037aa
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebx]
push ecx
call fcn.00412f61
add esp, 4
jmp 0x4037ce
mov eax, dword [ebx]
test eax, eax
je 0x4037ce
push eax
call fcn.0044db42
jmp 0x4037ce
mov eax, ebx
call fcn.0040fa90
jmp 0x4037ce
mov edx, dword [ebx]
mov eax, dword [edx + 4]
push eax
call fcn.00412f61
mov ecx, dword [ebx]
add esp, 4
push ecx
call fcn.00412f61
add esp, 4
jmp 0x4037ce
mov eax, dword [ebx]
test eax, eax
je 0x4037ce
push eax
call fcn.00454e58
jmp 0x4037ce
push eax
call fcn.0044db5e
mov dword [esp + 0x34], 0
jmp 0x40384e
mov eax, dword [esp + 0x28]
test eax, eax
je 0x40387f
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [esp + 0x28]
push ecx
call fcn.00412f61
add esp, 4
jmp 0x40387f
mov eax, dword [esp + 0x28]
test eax, eax
je 0x40387f
push eax
call fcn.0044db42
jmp 0x40387f
lea eax, [esp + 0x28]
call fcn.0040fa90
jmp 0x40387f
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 4]
push eax
call fcn.00412f61
mov ecx, dword [esp + 0x2c]
add esp, 4
push ecx
call fcn.00412f61
add esp, 4
jmp 0x40387f
mov eax, dword [esp + 0x28]
test eax, eax
je 0x40387f
push eax
call fcn.00454e58
jmp 0x40387f
mov eax, dword [edi]
push eax
call fcn.00412f61
mov ecx, dword [edi + 0xc]
add esp, 4
push ecx
call fcn.00412f61
add esp, 4
jmp 0x4038f3
mov ecx, dword [esi]
test ecx, ecx
je 0x40390f
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [esi]
push edx
call fcn.00412f61
add esp, 4
jmp 0x403933
mov eax, dword [esi]
test eax, eax
je 0x403933
push eax
call fcn.0044db42
jmp 0x403933
mov eax, esi
call fcn.0040fa90
jmp 0x403933
mov eax, dword [esi]
mov ecx, dword [eax + 4]
push ecx
call fcn.00412f61
mov edx, dword [esi]
add esp, 4
push edx
call fcn.00412f61
add esp, 4
jmp 0x403933
mov eax, dword [esi]
test eax, eax
je 0x403933
push eax
call fcn.00454e58
jmp 0x403933
mov ecx, dword [esp + 0x14]
push ecx
push 0x70
mov edx, dword [ebp + 8]
push edx
call fcn.004456fb
lea esi, [esp + 0x28]
call fcn.00401f90
lea ecx, [esp + 0x40]
call fcn.00436bd4
lea ecx, [esp + 0x60]
call fcn.00412860
mov eax, 1
jmp 0x40395f