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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x9c
push ebx
push esi
mov ebx, 1
xor esi, esi
push edi
mov dword [esp + 0xc], ecx
test byte [0x4a0920], bl
je 0x409d70
mov edi, dword [ebp + 0x10]
push 8
mov byte [esp + 0x34], bl
mov byte [esp + 0x35], 0
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
mov byte [esp + 0x20], bl
mov byte [esp + 0x21], 0
call fcn.00412288
add esp, 4
cmp eax, esi
je 0x4328aa
mov dword [eax], 0x14
mov edx, dword [ebp + 8]
mov dword [eax + 4], esi
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
mov eax, dword [edx + 4]
mov eax, dword [eax + ecx*4]
movsx ecx, word [eax + 0xa]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], 0x17
mov dword [esp + 0x38], ecx
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebx]
cmp ecx, dword [ebp + 0x14]
je case.0x432c89.4
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
lea edx, [eax + ecx*4]
mov eax, dword [edx]
cmp word [eax + 8], 0x7f
je case.0x432c89.4
movsx esi, word [eax + 8]
cmp esi, 0x36
je 0x4093de
cmp esi, 0x37
jl 0x40951e
cmp esi, 0x41
jge 0x40951e
mov esi, 0x14
mov dword [esp + 0x24], esi
mov cl, byte [esp + 0x31]
mov edi, dword [esp + 0x2c]
test cl, cl
jne 0x409847
mov eax, edi
mov eax, dword [eax]
imul eax, eax, 0x15
movzx eax, byte [eax + esi + 0x48cab0]
cmp eax, 3
jne 0x409618
cmp dword [esp + 0x14], 1
jne 0x43368b
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x4098c5
test edi, edi
je 0x4093d3
mov eax, edi
mov esi, dword [eax + 4]
push eax
call fcn.00412949
add esp, 4
mov eax, esi
test esi, esi
jne 0x4093c1
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp dword [esp + 0x14], 0
mov dword [esp + 0x24], 0x16
jne 0x409a69
cmp edi, 0x4a0910
je case.default.0x43321e
mov eax, dword [edi + 0xc]
test eax, eax
jne 0x43318d
mov eax, dword [edi + 8]
cmp eax, 8
je 0x43319f
cmp eax, 0xa
je 0x4331c0
cmp eax, 5
je 0x4331d5
cmp eax, 0xb
je 0x4331e1
cmp eax, 0xc
je 0x4331ff
mov dword [edi + 8], 1
mov dword [edi], 0
mov ecx, dword [0x4a0918]
mov dword [edi + 8], ecx
mov eax, dword [0x4a0918]
cmp eax, 1
jne 0x433214
mov edx, dword [0x4a0910]
mov dword [edi], edx
mov ecx, dword [esp + 0x14]
mov edx, dword [ebp + 8]
mov eax, dword [ebx]
mov edx, dword [edx + 4]
mov eax, dword [edx + eax*4]
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, 1
jne 0x409a8f
mov ebx, edi
mov esi, dword [eax]
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x43343d
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x43344f
cmp eax, 0xa
je 0x433470
cmp eax, 5
je 0x433485
cmp eax, 0xb
je 0x433491
cmp eax, 0xc
je 0x4334af
push 0x10
mov dword [ebx], 0
mov dword [ebx + 8], 4
call fcn.00412288
add esp, 4
test eax, eax
je 0x4334c4
mov ecx, dword [esi + 4]
mov dword [eax + 4], ecx
mov edx, dword [esi + 8]
mov dword [eax + 8], edx
mov ecx, dword [esi]
mov dword [eax], ecx
mov esi, dword [esi + 0xc]
mov dword [eax + 0xc], esi
inc dword [esi]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp + 0xc]
inc dword [eax]
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x9d], 0
jne 0x4334cb
cmp byte [eax + 0x9e], 0
je 0x409338
jmp 0x4334e3
cmp esi, 5
jne 0x40966e
cmp dword [esp + 0x14], 0
mov dword [esp + 0x24], 0x16
jne 0x409869
cmp edi, 0x4a0910
je case.default.0x432ece
mov eax, dword [edi + 0xc]
test eax, eax
jne 0x432e3d
mov eax, dword [edi + 8]
cmp eax, 8
je 0x432e4f
cmp eax, 0xa
je 0x432e70
cmp eax, 5
je 0x432e85
cmp eax, 0xb
je 0x432e91
cmp eax, 0xc
je 0x432eaf
mov dword [edi + 8], 1
mov dword [edi], 0
mov eax, dword [0x4a0918]
mov dword [edi + 8], eax
mov eax, dword [0x4a0918]
cmp eax, 1
jne 0x432ec4
mov edx, dword [0x4a0910]
mov dword [edi], edx
mov ecx, dword [esp + 0x14]
mov eax, dword [ebp + 8]
mov edx, dword [ebx]
mov eax, dword [eax + 4]
mov eax, dword [eax + edx*4]
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, 1
jne 0x4098a5
mov esi, edi
mov ecx, dword [eax]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x20], ecx
test eax, eax
jne 0x4330ee
mov eax, dword [esi + 8]
cmp eax, 8
je 0x433104
cmp eax, 0xa
je 0x433129
cmp eax, 5
je 0x433142
cmp eax, 0xb
je 0x433152
cmp eax, 0xc
je 0x433174
mov dword [esi + 8], 1
mov dword [esi], ecx
inc dword [ebx]
jmp 0x40933b
cmp eax, 6
ja case.0x40961d.3
jmp dword [eax*4 + 0x409db4]
test cl, cl
jne 0x4098b9
push 8
call fcn.00412288
add esp, 4
test eax, eax
je 0x433516
mov dword [eax], esi
test edi, edi
je 0x43351d
mov dword [eax + 4], edi
mov dword [esp + 0x2c], eax
inc dword [esp + 0x28]
cmp esi, 7
je 0x409d21
cmp esi, 8
je 0x409d21
mov edi, dword [esp + 0x10]
jmp 0x409338
cmp esi, 0x51
ja case.0x432c89.4
movzx esi, byte [esi + 0x409e30]
jmp dword [esi*4 + 0x409dd0]
cmp dword [esp + 0x14], 0
mov dword [esp + 0x24], 0x16
jne 0x409a03
push 0x4a0910
mov ebx, edi
call fcn.004082a0
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, 1
jne 0x409a44
mov dword [esp + 0x3c], edi
cmp dword [0x4a0424], 0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + edx*4]
mov ebx, dword [edx]
mov dword [esp + 0x20], ebx
jne 0x43297e
mov ebx, dword [0x4a0420]
xor esi, esi
cmp ebx, esi
je 0x432a19
test byte [0x4a0904], 1
mov byte [esp + 0x37], 0
je 0x4329ab
mov dword [0x4a0900], esi
mov dword [0x4a08fc], esi
mov dword [esp + 0x48], 0x4a08e4
mov dword [esp + 0x4c], 0x4a08e4
lea esp, [esp]
mov ecx, dword [esp + 0x20]
mov esi, dword [ecx + 4]
test esi, esi
je 0x4329d4
mov edx, dword [ebx + 4]
test edx, edx
je 0x4329e3
cmp esi, edx
jb 0x409cde
mov eax, esi
test eax, eax
jbe 0x40976d
mov edx, dword [ebx]
mov ecx, dword [ecx]
lea esp, [esp]
mov bx, word [ecx]
cmp bx, word [edx]
jne 0x409978
add ecx, 2
add edx, 2
sub eax, 1
jne 0x409750
mov ebx, dword [0x4a0420]
xor eax, eax
test eax, eax
jg 0x409994
jl 0x409c1a
mov byte [esp + 0x37], 1
cmp byte [esp + 0x37], 0
mov ecx, dword [ebx + 0x18]
mov edx, dword [esp + 0x4c]
mov dword [edx + 0x1c], ecx
mov eax, dword [0x4a0420]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x48]
mov dword [edx + 0x18], ecx
mov eax, dword [0x4a0420]
mov ecx, dword [0x4a0900]
mov dword [eax + 0x18], ecx
mov edx, dword [0x4a0420]
mov eax, dword [0x4a08fc]
mov dword [edx + 0x1c], eax
je 0x432a19
mov eax, dword [0x4a0420]
test eax, eax
je 0x432a19
mov eax, dword [eax + 0x14]
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
test eax, eax
je 0x433595
inc dword [esi]
cmp dword [eax + 8], 5
mov edx, eax
mov dword [esp + 0x20], edx
je 0x409c98
mov eax, dword [edx + 8]
cmp eax, 8
je 0x432a20
cmp eax, 5
je 0x409816
mov eax, dword [esi]
mov ecx, dword [ebx + 4]
mov edx, dword [ecx + eax*4]
cmp word [edx + 8], 0x4e
je 0x4335b8
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x3c]
push eax
call fcn.004082a0
mov esi, dword [esp + 0xc]
cmp byte [esi + 0x9d], 0
jne 0x432a72
cmp byte [esi + 0x9e], 0
je 0x409338
jmp 0x432a72
mov eax, dword [edi + 4]
jmp 0x40938e
lea eax, [esp + 0x10]
lea ecx, [esp + 0x28]
call fcn.004083c0
test eax, eax
je 0x40937c
jmp 0x43368b
cmp byte [esp + 0x1d], 0
jne 0x409936
push 0x18
call fcn.00412288
add esp, 4
test eax, eax
je 0x4330db
mov ebx, eax
mov eax, 0x4a0910
call fcn.004081f0
mov eax, dword [esp + 0x18]
mov dword [ebx + 0x10], eax
mov dword [esp + 0x18], ebx
mov ebx, dword [ebp + 0xc]
jmp case.default.0x432ece
cmp byte [esp + 0x1d], 0
jne 0x4330e2
mov esi, dword [esp + 0x18]
jmp 0x4095c7
mov dword [edi], esi
mov byte [esp + 0x31], 0
jmp 0x40964f
mov esi, eax
jmp 0x4098d0
mov ebx, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
mov dword [esp + 0x40], edx
test ebx, ebx
jne 0x409b9d
mov eax, dword [esi + 8]
cmp eax, 8
je 0x433713
cmp eax, 0xa
je 0x433734
cmp eax, 5
je 0x433749
cmp eax, 0xb
je 0x433755
cmp eax, 0xc
je 0x433773
push esi
mov dword [esi + 8], 1
mov dword [esi], 0
call fcn.00412949
mov esi, dword [esp + 0x44]
add esp, 4
test esi, esi
je 0x4093bb
jmp 0x4098d0
mov ebx, dword [esp + 0x18]
push 0x4a0910
call fcn.004082a0
mov ebx, dword [ebp + 0xc]
mov byte [esp + 0x1d], 0
jmp case.default.0x432ece
mov eax, dword [esp + 0x24]
cmp eax, 0x16
jne 0x409b8f
mov esi, 0xb
inc ecx
mov dword [ebx], ecx
jmp 0x409378
inc ecx
mov esi, 0xd
mov dword [ebx], ecx
jmp 0x409378
mov ax, bx
mov ebx, dword [0x4a0420]
cmp ax, word [edx]
jb 0x409cf0
mov eax, 1
jmp 0x40976f
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x409782
mov edx, dword [eax + 4]
cmp edx, esi
ja 0x409da8
mov dword [esp + 0x40], edx
test edx, edx
jbe 0x4099dd
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
mov eax, dword [eax]
mov dword [esp + 0x54], edx
mov edi, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x409d9a
add eax, 2
add ecx, 2
sub dword [esp + 0x54], 1
jne 0x4099c0
mov edx, dword [esp + 0x40]
cmp edx, esi
jb 0x4329f0
mov eax, dword [esp + 0x4c]
mov dword [eax + 0x1c], ebx
mov eax, dword [0x4a0420]
mov ebx, dword [eax + 0x1c]
mov dword [esp + 0x4c], eax
mov dword [0x4a0420], ebx
jmp 0x409720
cmp byte [esp + 0x1d], 0
jne 0x409cfa
push 0x18
call fcn.00412288
add esp, 4
test eax, eax
je 0x43295f
mov ebx, eax
mov eax, 0x4a0910
call fcn.004081f0
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x432966
mov dword [ebx + 0x10], eax
mov dword [esp + 0x18], ebx
jmp 0x4096a4
cmp byte [esp + 0x1d], 0
jne 0x43296e
mov eax, dword [esp + 0x18]
mov dword [esp + 0x3c], eax
jmp 0x4096ba
inc ecx
mov esi, 0xe
mov dword [ebx], ecx
jmp 0x409378
cmp byte [esp + 0x1d], 0
je 0x409b56
mov ebx, dword [esp + 0x18]
push 0x4a0910
call fcn.004082a0
mov ebx, dword [ebp + 0xc]
mov byte [esp + 0x1d], 0
jmp case.default.0x43321e
cmp byte [esp + 0x1d], 0
jne 0x433431
mov ebx, dword [esp + 0x18]
jmp 0x40947f
test cl, cl
je 0x409b38
mov eax, dword [edi + 4]
cmp dword [eax], 0x12
je 0x409b09
test cl, cl
je 0x409aba
mov edi, dword [edi + 4]
cmp dword [edi], 0x14
je case.0x40961d.6
lea eax, [esp + 0x10]
lea ecx, [esp + 0x28]
call fcn.004083c0
test eax, eax
jne 0x43368b
mov edi, dword [esp + 0x2c]
mov cl, byte [esp + 0x31]
jmp case.0x40961d.2
inc ecx
mov esi, 0x12
mov dword [ebx], ecx
jmp 0x409378
inc ecx
mov esi, 0x13
mov dword [ebx], ecx
jmp 0x409378
inc ecx
mov esi, 9
mov dword [ebx], ecx
jmp 0x409378
test cl, cl
je 0x409b1f
mov ebx, dword [edi + 4]
push edi
call fcn.00412949
add esp, 4
mov dword [esp + 0x2c], ebx
mov edi, ebx
cmp byte [esp + 0x30], 0
je 0x4334fc
mov byte [esp + 0x31], 1
dec dword [esp + 0x28]
jmp case.0x40961d.3
mov eax, edi
jmp 0x409aae
xor esi, esi
inc ecx
mov dword [ebx], ecx
jmp 0x409378
inc ecx
mov esi, 1
mov dword [ebx], ecx
jmp 0x409378
push 0x18
call fcn.00412288
add esp, 4
test eax, eax
je 0x43342a
mov ebx, eax
mov eax, 0x4a0910
call fcn.004081f0
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x409d12
mov dword [ebx + 0x10], eax
mov dword [esp + 0x18], ebx
mov ebx, dword [ebp + 0xc]
jmp case.default.0x43321e
cmp eax, 0x13
je 0x40995e
jmp 0x432b92
mov eax, dword [ebx + 0xc]
dec dword [eax]
mov eax, dword [ebx + 0xc]
cmp dword [eax], 0
je 0x4336f7
push ebx
call fcn.00412949
add esp, 4
mov dword [esi + 0xc], 0
jmp 0x4098e2
mov edi, 0x4a0910
lea esi, [esp + 0x10]
mov dword [esp + 0x24], 0x16
call fcn.00401af0
mov edi, 1
cmp dword [esp + 0x14], edi
jne 0x432b1c
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
push eax
push esi
call fcn.0040c130
test eax, eax
jne 0x4335d8
cmp dword [esi + 0x98], edi
je 0x4335d8
mov edi, dword [esp + 0x10]
jmp 0x409338
mov ecx, dword [ebx + 0x18]
test ecx, ecx
je 0x409782
mov eax, dword [esp + 0x20]
call fcn.00407d50
test al, al
je 0x409c56
mov eax, dword [ebx + 0x18]
mov ecx, dword [eax + 0x1c]
mov dword [ebx + 0x18], ecx
mov edx, dword [0x4a0420]
mov dword [eax + 0x1c], edx
mov ebx, eax
mov dword [0x4a0420], ebx
cmp dword [eax + 0x18], 0
je 0x409782
mov eax, dword [esp + 0x48]
mov dword [eax + 0x18], ebx
mov eax, dword [0x4a0420]
mov ebx, dword [eax + 0x18]
mov dword [esp + 0x48], eax
mov dword [0x4a0420], ebx
jmp 0x409720
mov eax, dword [eax]
cmp eax, 4
jl 0x409c84
cmp eax, 0x26
jl case.0x432c89.4
cmp eax, 1
jne 0x432c76
inc ecx
lea esi, [eax + 6]
mov dword [ebx], ecx
jmp 0x409378
mov ecx, dword [esi]
mov eax, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
cmp word [ecx + 8], 0x4e
jne 0x4097f2
mov eax, dword [esp + 0xc]
push 1
lea edx, [esp + 0x24]
push edx
push eax
mov eax, esi
mov ecx, ebx
call fcn.0040c250
test eax, eax
jne 0x4335ce
mov edx, dword [esp + 0x20]
jmp 0x4097f2
inc ecx
mov esi, 5
mov dword [ebx], ecx
jmp 0x409378
mov eax, dword [esp + 0x20]
mov ecx, dword [ebx]
mov eax, dword [eax]
call fcn.00407c10
jmp 0x40976f
mov eax, 0xffffffff
jmp 0x40976f
mov ebx, dword [esp + 0x18]
push 0x4a0910
call fcn.004082a0
mov byte [esp + 0x1d], 0
jmp 0x4096a4
mov dword [ebx + 0x10], eax
mov dword [esp + 0x18], ebx
mov ebx, dword [ebp + 0xc]
jmp case.default.0x43321e
cmp dword [esp + 0x14], 0
je 0x409665
lea eax, [esp + 0x10]
call fcn.0040e7f0
lea ebx, [esp + 0x78]
call fcn.004081f0
mov ecx, ebx
call int.0040e1d0
test al, al
je 0x433529
cmp esi, 8
je 0x433532
test al, al
je 0x433529
lea esi, [esp + 0x78]
call fcn.0040bd60
mov edi, dword [esp + 0x10]
jmp 0x409338
or dword [0x4a0920], ebx
push 0x429769
mov dword [0x4a0910], esi
mov dword [0x4a0918], ebx
mov dword [0x4a091c], esi
call fcn.00414a74
add esp, 4
jmp 0x4092d6
cmp dx, word [ecx]
jae 0x4099e5
jmp 0x4329f0
mov edx, esi
mov dword [esp + 0x40], esi
jmp 0x4099ae
xor eax, eax
jmp 0x40930f
mov edi, 0x4a0910
lea esi, [esp + 0x10]
mov dword [esp + 0x24], 0x16
call fcn.00401af0
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov ecx, dword [edi]
mov eax, dword [edx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 4]
mov ebx, dword [eax]
mov eax, esi
mov dword [esp + 0x8c], ecx
call fcn.0040e7f0
mov esi, eax
call fcn.0040bd60
mov edx, dword [esp + 0x8c]
mov dword [esi], ebx
mov dword [esi + 8], 2
mov dword [esi + 4], edx
inc dword [edi]
mov ebx, edi
mov edi, dword [esp + 0x10]
jmp 0x40933b
mov edi, 0x4a0910
lea esi, [esp + 0x10]
mov dword [esp + 0x24], 0x16
call fcn.00401af0
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov eax, dword [ebx]
mov edx, dword [ecx + 4]
mov eax, dword [edx + eax*4]
fld qword [eax]
mov eax, esi
fstp qword [esp + 0x40]
call fcn.0040e7f0
mov esi, eax
call fcn.0040bd60
fld qword [esp + 0x40]
mov edi, dword [esp + 0x10]
fstp qword [esi]
mov dword [esi + 8], 3
inc dword [ebx]
jmp 0x40933b
xor ebx, ebx
jmp 0x409a2c
mov dword [ebx + 0x10], eax
jmp 0x409a3b
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x10]
mov dword [esp + 0x3c], edx
jmp 0x4096ba
lea eax, [esp + 0x40]
push eax
push 0x4a0424
mov dword [esp + 0x48], 0
call fcn.00437437
mov esi, eax
mov eax, ebx
call fcn.0040e860
test eax, eax
jne 0x4097d2
jmp 0x4096db
or dword [0x4a0904], 1
push 0x4a08e4
call fcn.0044bc4c
push 0x42975f
call fcn.00414a74
mov ebx, dword [0x4a0420]
add esp, 4
jmp 0x4096fd
cmp dword [ebx + 4], 0
jne 0x409c1a
jmp 0x40972f
test esi, esi
jne 0x409994
jmp 0x40973a
mov eax, dword [ebx + 0x1c]
mov ecx, dword [eax + 0x18]
mov dword [ebx + 0x1c], ecx
mov edx, dword [0x4a0420]
mov dword [eax + 0x18], edx
mov ebx, eax
mov dword [0x4a0420], ebx
cmp dword [eax + 0x1c], 0
je 0x409782
jmp 0x4099e5
xor eax, eax
jmp 0x4097d2
mov eax, dword [esp + 0x20]
sub esp, 0x10
mov ebx, esp
call fcn.004081f0
mov ecx, dword [esp + 0x4c]
mov edx, dword [ebp + 8]
push ecx
mov ecx, dword [esp + 0x20]
push esi
push edx
call fcn.0047b619
test eax, eax
je 0x409338
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov edx, dword [esi]
mov edx, dword [ecx + edx*4]
movsx eax, word [edx + 0xa]
mov ecx, dword [esp + 0xc]
push eax
push 0xaa
push ecx
call fcn.00453713
lea ecx, [esp + 0x10]
push ecx
jmp 0x4337a7
push ebx
call fcn.00436aff
test al, al
je 0x409338
mov eax, ebx
lea ebx, [esp + 0x58]
call fcn.004081f0
cmp byte [esi + 0x9d], 0
je 0x432abf
push ebx
call fcn.0045d156
push ebx
call fcn.0044bbd8
push eax
call fcn.004143ca
add esp, 4
test eax, eax
jne 0x432abf
mov eax, dword [esp + 0x20]
push eax
call fcn.004082a0
cmp byte [esi + 0x9e], 0
je 0x432b00
lea ecx, [esp + 0x58]
push ecx
push esi
call fcn.0046eb2b
lea edx, [esp + 0x58]
push edx
call fcn.0044bbd8
push eax
call fcn.004143ca
add esp, 4
test eax, eax
jne 0x432b00
mov eax, dword [esp + 0x20]
push eax
lea ebx, [esp + 0x5c]
call fcn.004082a0
mov ebx, dword [esp + 0x3c]
lea ecx, [esp + 0x58]
push ecx
call fcn.004082a0
lea esi, [esp + 0x58]
call fcn.0040bd60
jmp 0x409338
cmp byte [esp + 0x1d], 0
je 0x432b33
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x10]
jmp 0x409bec
mov eax, dword [esp + 0x18]
jmp 0x409bec
mov edi, 0x4a0910
lea esi, [esp + 0x10]
call fcn.00401af0
lea eax, [esp + 0x53]
push eax
mov eax, esi
call fcn.0040e7f0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
push eax
push ecx
mov ecx, dword [esp + 0x18]
push edx
call fcn.00409e90
test eax, eax
jne 0x4337a2
mov esi, dword [esp + 0xc]
cmp dword [esi + 0x98], 1
je 0x4337a2
mov edi, dword [esp + 0x10]
mov dword [esp + 0x24], 0x16
jmp 0x409338
mov esi, 0x11
jmp 0x409963
mov eax, dword [esp + 0x24]
cmp eax, 0x16
je 0x432bb7
mov esi, 0x10
cmp eax, 0x13
jne 0x432bbc
mov esi, 0xc
inc ecx
mov dword [ebx], ecx
jmp 0x409378
mov edi, 0x4a0910
lea esi, [esp + 0x10]
call fcn.00401af0
mov esi, dword [ebp + 0xc]
mov eax, dword [esi]
mov edi, dword [ebp + 8]
lea ecx, [eax + 1]
mov dword [esi], ecx
mov edx, dword [edi + 4]
mov eax, dword [edx + eax*4]
mov eax, dword [eax]
mov edx, dword [eax + 4]
sub esp, 0x10
mov dword [esp + 4], edx
mov edx, dword [eax + 8]
mov dword [esp + 8], edx
mov edx, dword [eax]
mov dword [esp], edx
mov eax, dword [eax + 0xc]
mov dword [esp + 0xc], eax
inc dword [eax]
lea eax, [esp + 0x20]
call fcn.0040e7f0
mov ebx, dword [esp + 0x1c]
push eax
push ebx
call fcn.0046dd6b
test eax, eax
jne 0x4335f2
mov edi, dword [esp + 0x10]
mov dword [esp + 0x24], 0x16
mov ebx, esi
jmp 0x40933b
inc ecx
mov esi, 4
mov dword [ebx], ecx
jmp 0x409378
inc ecx
mov esi, 6
mov dword [ebx], ecx
jmp 0x409378
inc ecx
mov esi, 2
mov dword [ebx], ecx
jmp 0x409378
inc ecx
mov esi, 3
mov dword [ebx], ecx
jmp 0x409378
inc ecx
mov esi, 0xf
mov dword [ebx], ecx
jmp 0x409378
sub eax, 2
cmp eax, 0x26
ja case.0x432c89.4
movzx eax, byte [eax + 0x4337da]
jmp dword [eax*4 + 0x4337c2]
inc ecx
mov esi, 8
mov dword [ebx], ecx
jmp 0x409378
inc ecx
mov esi, 0xa
mov dword [ebx], ecx
jmp 0x409378
mov edi, 0x4a0910
lea esi, [esp + 0x10]
mov dword [esp + 0x24], 0x16
call fcn.00401af0
mov eax, esi
call fcn.0040e7f0
mov esi, eax
call fcn.0040bd60
mov ebx, dword [ebp + 0xc]
mov edi, dword [esp + 0x10]
mov dword [esi + 8], 9
mov byte [esi], 0
inc dword [ebx]
jmp 0x40933b
mov edi, 0x4a0910
lea esi, [esp + 0x10]
mov dword [esp + 0x24], 0x16
call fcn.00401af0
mov eax, esi
call fcn.0040e7f0
mov esi, eax
call fcn.0040bd60
mov ebx, dword [ebp + 0xc]
mov edi, dword [esp + 0x10]
mov dword [esi + 8], 9
mov byte [esi], 1
inc dword [ebx]
jmp 0x40933b
lea ecx, [esp + 0x90]
push ecx
mov dword [esp + 0x28], 0x16
call fcn.004542d7
mov edi, 0x4a0910
lea esi, [esp + 0x10]
call fcn.00401af0
lea edx, [esp + 0x90]
push edx
mov eax, esi
call fcn.0040e7f0
push eax
call fcn.004573a4
mov eax, dword [ebp + 0xc]
inc dword [eax]
lea ecx, [esp + 0x98]
call fcn.0040c430
mov edi, dword [esp + 0x10]
jmp 0x409338
test ecx, ecx
jbe 0x432dbe
mov eax, dword [edx - 4]
movzx eax, word [eax + 8]
cmp ax, 0x33
je 0x432d97
cmp ax, 0x35
jne 0x432dbe
mov esi, dword [esp + 0xc]
push 1
push str.Variable_must_be_of_type_Object.
push 0
push 0xa9
push esi
call fcn.004760b0
test eax, eax
jne 0x433615
inc dword [ebx]
jmp 0x40933b
mov esi, dword [esp + 0xc]
lea edx, [esi + 0x3e8]
push edx
call fcn.00436a6f
test al, al
je 0x43363a
xor eax, eax
sub esp, 0x10
mov dword [esp + 0x78], eax
mov dword [esp + 0x84], eax
mov eax, edx
mov ebx, esp
mov dword [esp + 0x80], 1
call fcn.004081f0
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
lea ecx, [esp + 0x78]
push ecx
mov ecx, dword [esp + 0x20]
push edi
push esi
call fcn.0047b619
test eax, eax
jne 0x43365f
lea edi, [esp + 0x68]
lea esi, [esp + 0x10]
mov dword [esp + 0x24], 0x16
call fcn.00401af0
mov esi, edi
call fcn.0040bd60
mov edi, dword [esp + 0x10]
jmp 0x409338
push eax
call fcn.0044bc31
mov dword [edi + 0xc], 0
jmp 0x40954d
mov ecx, dword [edi]
test ecx, ecx
je 0x409559
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [edi]
push edx
call fcn.00412949
add esp, 4
jmp 0x40957d
mov eax, dword [edi]
test eax, eax
je 0x40957d
push eax
call fcn.004452a3
jmp 0x40957d
mov eax, edi
call fcn.0040f940
jmp 0x40957d
mov eax, dword [edi]
mov ecx, dword [eax + 4]
push ecx
call fcn.00412949
mov edx, dword [edi]
add esp, 4
push edx
call fcn.00412949
add esp, 4
jmp 0x40957d
mov eax, dword [edi]
test eax, eax
je 0x40957d
push eax
call fcn.00454255
jmp 0x40957d
dec eax
cmp eax, 0xb
ja case.default.0x432ece
jmp dword [eax*4 + 0x433802]
mov ecx, dword [0x4a0910]
mov dword [edi], ecx
mov edx, dword [0x4a0914]
mov dword [edi + 4], edx
jmp case.default.0x432ece
fld qword [0x4a0910]
fstp qword [edi]
jmp case.default.0x432ece
push 0x10
call fcn.00412288
add esp, 4
test eax, eax
je 0x432f30
mov ecx, dword [0x4a091c]
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 [edi + 0xc], eax
jmp case.default.0x432ece
xor eax, eax
mov dword [edi + 0xc], eax
jmp case.default.0x432ece
mov eax, dword [0x4a0910]
mov dword [edi], eax
jmp case.default.0x432ece
mov ecx, dword [0x4a0910]
mov dword [edi], ecx
jmp case.default.0x432ece
push 0x214
call fcn.00412288
add esp, 4
test eax, eax
je 0x432f83
mov esi, dword [0x4a0910]
mov ebx, dword [ebp + 0xc]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x10]
jmp 0x432f85
xor eax, eax
mov dword [edi], eax
cmp dword [eax + 4], 0
je case.default.0x432ece
mov eax, dword [eax + 4]
inc dword [eax]
jmp case.default.0x432ece
cmp dword [0x4a0910], 0
je case.default.0x432ece
push 0x10
call fcn.00412288
add esp, 4
push eax
mov dword [edi], eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov edx, dword [0x4a0910]
mov eax, dword [edi]
push edx
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
jge case.default.0x432ece
mov ecx, dword [edi]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [edi]
push edx
call fcn.00412949
add esp, 4
mov dword [edi], 0
jmp case.default.0x432ece
mov al, byte [0x4a0910]
mov byte [edi], al
jmp case.default.0x432ece
push 0x18
call fcn.00412288
add esp, 4
test eax, eax
je 0x43302a
push eax
call fcn.0044bc08
mov dword [edi], eax
mov ecx, dword [0x4a0910]
push ecx
push eax
call fcn.004542ac
jmp case.default.0x432ece
xor eax, eax
mov dword [edi], eax
mov ecx, dword [0x4a0910]
push ecx
push eax
call fcn.004542ac
jmp case.default.0x432ece
push 8
call fcn.00412288
mov dword [edi], eax
mov edx, dword [0x4a0910]
mov ecx, dword [edx]
mov dword [eax], ecx
mov edx, dword [edi]
mov eax, dword [edx]
add esp, 4
test eax, eax
je 0x433090
push eax
call fcn.00412288
mov ecx, dword [edi]
mov dword [ecx + 4], eax
mov eax, dword [edi]
mov edx, dword [eax]
mov ecx, dword [0x4a0910]
mov eax, dword [eax + 4]
add esp, 4
push edx
mov edx, dword [ecx + 4]
push edx
push eax
call fcn.00412960
add esp, 0xc
jmp case.default.0x432ece
push 1
call fcn.00412288
mov ecx, dword [edi]
mov dword [ecx + 4], eax
mov edx, dword [edi]
mov eax, dword [edx + 4]
add esp, 4
mov byte [eax], 0
jmp case.default.0x432ece
push 0x18
call fcn.00412288
add esp, 4
test eax, eax
je 0x4330d2
mov ecx, dword [0x4a0910]
push ecx
push eax
call fcn.0046c331
mov dword [edi], eax
jmp case.default.0x432ece
xor eax, eax
mov dword [edi], eax
jmp case.default.0x432ece
xor ebx, ebx
jmp 0x409892
mov ecx, dword [esp + 0x18]
mov esi, dword [ecx + 0x10]
jmp 0x4095c7
push eax
call fcn.0044bc31
mov ecx, dword [esp + 0x20]
mov dword [esi + 0xc], 0
jmp 0x4095d8
mov edx, dword [esi]
test edx, edx
je 0x4095e4
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [esi]
push edx
call fcn.00412949
mov ecx, dword [esp + 0x24]
add esp, 4
jmp 0x409608
mov eax, dword [esi]
test eax, eax
je 0x409608
push eax
call fcn.004452a3
mov ecx, dword [esp + 0x20]
jmp 0x409608
mov eax, esi
call fcn.0040f940
mov ecx, dword [esp + 0x20]
jmp 0x409608
mov eax, dword [esi]
mov ecx, dword [eax + 4]
push ecx
call fcn.00412949
mov edx, dword [esi]
add esp, 4
push edx
call fcn.00412949
mov ecx, dword [esp + 0x24]
add esp, 4
jmp 0x409608
mov eax, dword [esi]
test eax, eax
je 0x409608
push eax
call fcn.00454255
mov ecx, dword [esp + 0x20]
jmp 0x409608
push eax
call fcn.0044bc31
mov dword [edi + 0xc], 0
jmp 0x409404
mov ecx, dword [edi]
test ecx, ecx
je 0x409410
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [edi]
push eax
call fcn.00412949
add esp, 4
jmp 0x409434
mov eax, dword [edi]
test eax, eax
je 0x409434
push eax
call fcn.004452a3
jmp 0x409434
mov eax, edi
call fcn.0040f940
jmp 0x409434
mov ecx, dword [edi]
mov edx, dword [ecx + 4]
push edx
call fcn.00412949
mov eax, dword [edi]
add esp, 4
push eax
call fcn.00412949
add esp, 4
jmp 0x409434
mov eax, dword [edi]
test eax, eax
je 0x409434
push eax
call fcn.00454255
jmp 0x409434
dec eax
cmp eax, 0xb
ja case.default.0x43321e
jmp dword [eax*4 + 0x433832]
mov edx, dword [0x4a0910]
mov dword [edi], edx
mov eax, dword [0x4a0914]
mov dword [edi + 4], eax
jmp case.default.0x43321e
fld qword [0x4a0910]
fstp qword [edi]
jmp case.default.0x43321e
push 0x10
call fcn.00412288
add esp, 4
test eax, eax
je 0x43327f
mov ecx, dword [0x4a091c]
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 [edi + 0xc], eax
jmp case.default.0x43321e
xor eax, eax
mov dword [edi + 0xc], eax
jmp case.default.0x43321e
mov eax, dword [0x4a0910]
mov dword [edi], eax
jmp case.default.0x43321e
mov ecx, dword [0x4a0910]
mov dword [edi], ecx
jmp case.default.0x43321e
push 0x214
call fcn.00412288
add esp, 4
test eax, eax
je 0x4332d2
mov esi, dword [0x4a0910]
mov ebx, dword [ebp + 0xc]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x10]
jmp 0x4332d4
xor eax, eax
mov dword [edi], eax
cmp dword [eax + 4], 0
je case.default.0x43321e
mov eax, dword [eax + 4]
inc dword [eax]
jmp case.default.0x43321e
cmp dword [0x4a0910], 0
je case.default.0x43321e
push 0x10
call fcn.00412288
add esp, 4
push eax
mov dword [edi], eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov edx, dword [0x4a0910]
mov eax, dword [edi]
push edx
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
jge case.default.0x43321e
mov ecx, dword [edi]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [edi]
push edx
call fcn.00412949
add esp, 4
mov dword [edi], 0
jmp case.default.0x43321e
mov al, byte [0x4a0910]
mov byte [edi], al
jmp case.default.0x43321e
push 0x18
call fcn.00412288
add esp, 4
test eax, eax
je 0x433379
push eax
call fcn.0044bc08
mov dword [edi], eax
mov ecx, dword [0x4a0910]
push ecx
push eax
call fcn.004542ac
jmp case.default.0x43321e
xor eax, eax
mov dword [edi], eax
mov ecx, dword [0x4a0910]
push ecx
push eax
call fcn.004542ac
jmp case.default.0x43321e
push 8
call fcn.00412288
mov dword [edi], eax
mov edx, dword [0x4a0910]
mov ecx, dword [edx]
mov dword [eax], ecx
mov edx, dword [edi]
mov eax, dword [edx]
add esp, 4
test eax, eax
je 0x4333df
push eax
call fcn.00412288
mov ecx, dword [edi]
mov dword [ecx + 4], eax
mov eax, dword [edi]
mov edx, dword [eax]
mov ecx, dword [0x4a0910]
mov eax, dword [eax + 4]
add esp, 4
push edx
mov edx, dword [ecx + 4]
push edx
push eax
call fcn.00412960
add esp, 0xc
jmp case.default.0x43321e
push 1
call fcn.00412288
mov ecx, dword [edi]
mov dword [ecx + 4], eax
mov edx, dword [edi]
mov eax, dword [edx + 4]
add esp, 4
mov byte [eax], 0
jmp case.default.0x43321e
push 0x18
call fcn.00412288
add esp, 4
test eax, eax
je 0x433421
mov ecx, dword [0x4a0910]
push ecx
push eax
call fcn.0046c331
mov dword [edi], eax
jmp case.default.0x43321e
xor eax, eax
mov dword [edi], eax
jmp case.default.0x43321e
xor ebx, ebx
jmp 0x409b74
mov ecx, dword [esp + 0x18]
mov ebx, dword [ecx + 0x10]
jmp 0x40947f
push eax
call fcn.0044bc31
mov dword [ebx + 0xc], 0
jmp 0x40948c
mov ecx, dword [ebx]
test ecx, ecx
je 0x409498
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [ebx]
push edx
call fcn.00412949
add esp, 4
jmp 0x4094bc
mov eax, dword [ebx]
test eax, eax
je 0x4094bc
push eax
call fcn.004452a3
jmp 0x4094bc
mov eax, ebx
call fcn.0040f940
jmp 0x4094bc
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
push ecx
call fcn.00412949
mov edx, dword [ebx]
add esp, 4
push edx
call fcn.00412949
add esp, 4
jmp 0x4094bc
mov eax, dword [ebx]
test eax, eax
je 0x4094bc
push eax
call fcn.00454255
jmp 0x4094bc
xor eax, eax
jmp 0x4094f3
lea eax, [esp + 0x10]
call fcn.0040e7f0
push eax
call fcn.0045d156
mov eax, dword [esp + 0xc]
jmp 0x40950c
lea eax, [esp + 0x10]
call fcn.0040e7f0
mov edx, dword [esp + 0xc]
push eax
push edx
call fcn.0046eb2b
jmp 0x409338
mov ebx, dword [edi + 4]
push edi
call fcn.00412949
add esp, 4
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x31], 0
jmp 0x409b2f
xor eax, eax
jmp 0x409640
mov dword [eax + 4], 0
jmp 0x40964b
cmp esi, 7
jne 0x409d5e
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
push ecx
push edx
call fcn.0044387b
test eax, eax
jne 0x433788
lea eax, [esp + 0x10]
call fcn.0040e7f0
cmp esi, 8
mov esi, eax
jne 0x433578
call fcn.0040bd60
mov byte [esi], 1
mov dword [esi + 8], 9
lea esi, [esp + 0x28]
call fcn.0040f4a0
jmp 0x409d5e
call fcn.0040bd60
mov byte [esi], 0
mov dword [esi + 8], 9
lea esi, [esp + 0x28]
call fcn.0040f4a0
jmp 0x409d5e
mov eax, dword [esi]
mov ecx, dword [ebx + 4]
mov edx, dword [ecx + eax*4]
movsx eax, word [edx + 0xa]
mov ecx, dword [esp + 0xc]
push eax
push 0x79
push ecx
call fcn.00453713
lea ecx, [esp + 0x10]
push ecx
jmp 0x4337a7
mov edx, eax
mov ecx, dword [ecx + edx*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [esp + 0xc]
push edx
push 0x7c
push eax
call fcn.00453713
lea ecx, [esp + 0x10]
push ecx
jmp 0x4337a7
lea edx, [esp + 0x10]
push edx
call fcn.00454320
lea eax, [esp + 0x28]
call fcn.00411850
mov eax, edi
jmp 0x4093d5
mov ecx, dword [esi]
mov edx, dword [edi + 4]
mov eax, dword [edx + ecx*4 - 4]
movsx ecx, word [eax + 0xa]
push ecx
push 0x86
push ebx
call fcn.00453713
lea edx, [esp + 0x10]
push edx
jmp 0x4337a7
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
mov eax, dword [ebx]
mov eax, dword [edx + eax*4]
movsx ecx, word [eax + 0xa]
push ecx
push 0xa9
push esi
call fcn.00453713
lea edx, [esp + 0x10]
push edx
jmp 0x4337a7
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
mov eax, dword [ebx]
mov eax, dword [edx + eax*4]
movsx ecx, word [eax + 0xa]
push ecx
push 0xa7
push esi
call fcn.00453713
lea edx, [esp + 0x10]
push edx
jmp 0x4337a7
mov eax, dword [edi]
mov ecx, dword [esi + 4]
mov edx, dword [ecx + eax*4]
movsx eax, word [edx + 0xa]
mov ebx, dword [esp + 0xc]
push eax
push 0x6e
push ebx
call fcn.00453713
lea esi, [esp + 0x68]
call fcn.0040bd60
lea ecx, [esp + 0x10]
push ecx
jmp 0x4337a7
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0xc]
push edx
push 0x6e
push eax
call fcn.00453713
lea ecx, [esp + 0x10]
push ecx
jmp 0x4337a7
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0xc]
push edx
push 0x6d
push eax
call fcn.00453713
lea ecx, [esp + 0x10]
push ecx
jmp 0x4337a7
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0xc]
push edx
push 0x6b
push eax
call fcn.00453713
lea ecx, [esp + 0x10]
push ecx
jmp 0x4337a7
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0xc]
push edx
push 0x6c
push eax
call fcn.00453713
lea ecx, [esp + 0x10]
push ecx
jmp 0x4337a7
mov ecx, dword [ebx]
push ecx
call fcn.00412949
mov edx, dword [ebx + 0xc]
add esp, 4
push edx
call fcn.00412949
add esp, 4
jmp 0x409bae
mov ecx, dword [esi]
test ecx, ecx
je 0x4098ee
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esi]
push eax
call fcn.00412949
add esp, 4
jmp 0x409912
mov eax, dword [esi]
test eax, eax
je 0x409912
push eax
call fcn.004452a3
jmp 0x409912
mov eax, esi
call fcn.0040f940
jmp 0x409912
mov ecx, dword [esi]
mov edx, dword [ecx + 4]
push edx
call fcn.00412949
mov eax, dword [esi]
add esp, 4
push eax
call fcn.00412949
add esp, 4
jmp 0x409912
mov eax, dword [esi]
test eax, eax
je 0x409912
push eax
call fcn.00454255
jmp 0x409912
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0xc]
push ecx
push 0x6e
push edx
call fcn.00453713
lea esi, [esp + 0x78]
call fcn.0040bd60
lea eax, [esp + 0x10]
push eax
call fcn.00454320
lea eax, [esp + 0x28]
call fcn.00411850
mov eax, 1
jmp 0x4093d5