Function at 0x479650
Capabilities:
Acquire debug privileges

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push 0x406a66
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x69c
push ebx
push esi
push edi
mov dword [ebp - 0x14], esp
mov dword [ebp - 0x10], 0x4062e0
xor esi, esi
mov dword [ebp - 0xc], esi
mov dword [ebp - 8], esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x50], esi
xor eax, eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x64], esi
mov ecx, 7
lea edi, [ebp - 0x80]
rep stosd dword es:[edi], eax
mov dword [ebp - 0x88], esi
mov ecx, 0x8b
lea edi, [ebp - 0x2d4]
rep stosd dword es:[edi], eax
mov dword [ebp - 0x2d8], esi
mov ecx, 0x11
lea edi, [ebp - 0x31c]
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [ebp - 0x32c], ecx
mov dword [ebp - 0x328], ecx
mov dword [ebp - 0x324], ecx
mov dword [ebp - 0x320], ecx
mov dword [ebp - 0x330], esi
mov dword [ebp - 0x334], esi
mov dword [ebp - 0x338], esi
mov dword [ebp - 0x33c], esi
mov dword [ebp - 0x340], esi
mov dword [ebp - 0x344], esi
mov dword [ebp - 0x354], esi
mov dword [ebp - 0x364], esi
mov dword [ebp - 0x374], esi
mov dword [ebp - 0x384], esi
mov dword [ebp - 0x394], esi
mov dword [ebp - 0x3a4], esi
mov dword [ebp - 0x3a8], esi
mov dword [ebp - 0x3ac], esi
mov ecx, 0x4a
lea edi, [ebp - 0x4f0]
rep stosd dword es:[edi], eax
mov ecx, 0x4a
lea edi, [ebp - 0x618]
rep stosd dword es:[edi], eax
mov ecx, 0x11
lea edi, [ebp - 0x65c]
rep stosd dword es:[edi], eax
mov ecx, 0x11
lea edi, [ebp - 0x6a0]
rep stosd dword es:[edi], eax
push 1
call dword [sym.imp.MSVBVM60.DLL___vbaOnError]
cmp dword [0x485d50], esi
jne 0x479793
push 0x485d50
push 0x40c93c
call dword [sym.imp.MSVBVM60.DLL___vbaNew2]
mov ebx, dword [0x485d50]
mov edx, dword [ebx]
lea eax, [ebp - 0x344]
push eax
push ebx
call dword [edx + 0x14]
fnclex
cmp eax, esi
jge 0x4797bf
push 0x14
push 0x40c92c
push ebx
push eax
mov edi, dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
call edi
jmp 0x4797c5
mov edi, dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
mov eax, dword [ebp - 0x344]
mov ebx, eax
mov ecx, dword [eax]
lea edx, [ebp - 0x33c]
push edx
push eax
call dword [ecx + 0x50]
fnclex
cmp eax, esi
jge 0x4797eb
push 0x50
push 0x40c94c
push ebx
push eax
call edi
mov eax, dword [ebp - 0x33c]
mov dword [ebp - 0x33c], esi
mov dword [ebp - 0x34c], eax
mov dword [ebp - 0x354], 8
push 1
lea eax, [ebp - 0x354]
push eax
lea ecx, [ebp - 0x364]
push ecx
call dword [sym.imp.MSVBVM60.DLL_rtcRightCharVar]
mov dword [ebp - 0x37c], 0x40c960
mov dword [ebp - 0x384], 0x8008
lea edx, [ebp - 0x364]
push edx
lea eax, [ebp - 0x384]
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaVarTstEq]
mov ebx, eax
lea ecx, [ebp - 0x344]
call dword [sym.imp.MSVBVM60.DLL___vbaFreeObj]
lea ecx, [ebp - 0x364]
push ecx
lea edx, [ebp - 0x354]
push edx
push 2
call dword [sym.imp.MSVBVM60.DLL___vbaFreeVarList]
add esp, 0xc
cmp bx, si
mov eax, dword [0x485d50]
je 0x479909
cmp eax, esi
jne 0x47988e
push 0x485d50
push 0x40c93c
call dword [sym.imp.MSVBVM60.DLL___vbaNew2]
mov ebx, dword [0x485d50]
mov eax, dword [ebx]
lea ecx, [ebp - 0x344]
push ecx
push ebx
call dword [eax + 0x14]
fnclex
cmp eax, esi
jge 0x4798b2
push 0x14
push 0x40c92c
push ebx
push eax
call edi
mov eax, dword [ebp - 0x344]
mov ebx, eax
mov edx, dword [eax]
lea ecx, [ebp - 0x33c]
push ecx
push eax
call dword [edx + 0x50]
fnclex
cmp eax, esi
jge 0x4798d8
push 0x50
push 0x40c94c
push ebx
push eax
call edi
mov edx, dword [ebp - 0x33c]
mov dword [ebp - 0x33c], esi
lea ecx, [ebp - 0x88]
mov ebx, dword [sym.imp.MSVBVM60.DLL___vbaStrMove]
call ebx
lea ecx, [ebp - 0x344]
call dword [sym.imp.MSVBVM60.DLL___vbaFreeObj]
mov esi, dword [sym.imp.MSVBVM60.DLL___vbaStrCat]
jmp 0x4799a3
cmp eax, esi
jne 0x47991d
push 0x485d50
push 0x40c93c
call dword [sym.imp.MSVBVM60.DLL___vbaNew2]
mov ebx, dword [0x485d50]
mov edx, dword [ebx]
lea eax, [ebp - 0x344]
push eax
push ebx
call dword [edx + 0x14]
fnclex
cmp eax, esi
jge 0x479941
push 0x14
push 0x40c92c
push ebx
push eax
call edi
mov eax, dword [ebp - 0x344]
mov ebx, eax
mov ecx, dword [eax]
lea edx, [ebp - 0x33c]
push edx
push eax
call dword [ecx + 0x50]
fnclex
cmp eax, esi
jge 0x479967
push 0x50
push 0x40c94c
push ebx
push eax
call edi
mov eax, dword [ebp - 0x33c]
push eax
push 0x40c960
mov esi, dword [sym.imp.MSVBVM60.DLL___vbaStrCat]
call esi
mov edx, eax
lea ecx, [ebp - 0x88]
mov ebx, dword [sym.imp.MSVBVM60.DLL___vbaStrMove]
call ebx
lea ecx, [ebp - 0x33c]
call dword [sym.imp.MSVBVM60.DLL___vbaFreeStr]
lea ecx, [ebp - 0x344]
call dword [sym.imp.MSVBVM60.DLL___vbaFreeObj]
mov di, word [ebp + 0xc]
cmp di, 0x63
jne 0x4799f9
mov ecx, dword [ebp - 0x88]
push ecx
push 0x410fdc
call esi
mov edx, eax
lea ecx, [ebp - 0x338]
call ebx
lea edx, [ebp - 0x338]
push edx
call fcn.0047a230
test ax, ax
je 0x4799e4
mov eax, dword [ebp - 0x88]
push eax
push 0x410fdc
jmp 0x4799f0
mov ecx, dword [ebp - 0x88]
push ecx
push 0x410ffc
call esi
mov edx, eax
lea ecx, [ebp - 0x40]
call ebx
cmp di, 1
jne 0x479a4b
mov edx, dword [ebp - 0x88]
push edx
push 0x411030
call esi
mov edx, eax
lea ecx, [ebp - 0x338]
call ebx
lea eax, [ebp - 0x338]
push eax
call fcn.0047a230
test ax, ax
je 0x479a36
mov ecx, dword [ebp - 0x88]
push ecx
push 0x411030
jmp 0x479a42
mov edx, dword [ebp - 0x88]
push edx
push 0x41104c
call esi
mov edx, eax
lea ecx, [ebp - 0x40]
call ebx
cmp di, 4
jne 0x479a66
mov eax, dword [ebp - 0x88]
push eax
push 0x41107c
call esi
mov edx, eax
lea ecx, [ebp - 0x40]
call ebx
cmp di, 0x16
jne 0x479a81
mov ecx, dword [ebp - 0x88]
push ecx
push 0x411098
call esi
mov edx, eax
lea ecx, [ebp - 0x40]
call ebx
cmp di, 0x378
jne 0x479a9d
mov edx, dword [ebp - 0x88]
push edx
push 0x4110b8
call esi
mov edx, eax
lea ecx, [ebp - 0x40]
call ebx
cmp di, 0x3c
jne 0x479ab8
mov eax, dword [ebp - 0x88]
push eax
push 0x40e818
call esi
mov edx, eax
lea ecx, [ebp - 0x40]
call ebx
cmp di, 8
jne 0x479af4
mov ecx, dword [ebp - 0x88]
push ecx
push 0x40e800
call esi
mov edx, eax
lea ecx, [ebp - 0x40]
call ebx
lea edx, [ebp - 0x40]
mov dword [ebp - 0x37c], edx
mov dword [ebp - 0x384], 0x4008
push 2
lea eax, [ebp - 0x384]
push eax
jmp 0x47a12d
cmp di, 0x2c
jne 0x479b0f
mov ecx, dword [ebp - 0x88]
push ecx
push 0x40fff0
call esi
mov edx, eax
lea ecx, [ebp - 0x40]
call ebx
call fcn.0040c29c
mov dword [ebp - 0x3ac], eax
mov esi, dword [sym.imp.MSVBVM60.DLL___vbaSetSystemError]
call esi
mov edx, dword [ebp - 0x3ac]
mov dword [ebp - 0x24], edx
push 0
push 2
call fcn.0040c2f0
mov dword [ebp - 0x3ac], eax
call esi
mov eax, dword [ebp - 0x3ac]
mov edi, eax
mov dword [ebp - 0x58], edi
cmp eax, 0xffffffff
je 0x47a111
mov dword [ebp - 0x2d4], 0x128
lea edx, [ebp - 0x2d4]
push edx
lea eax, [ebp - 0x4f0]
push eax
push 0x40c248
call dword [sym.imp.MSVBVM60.DLL___vbaRecUniToAnsi]
push eax
push edi
call fcn.0040c338
mov dword [ebp - 0x3ac], eax
call esi
lea ecx, [ebp - 0x4f0]
push ecx
lea edx, [ebp - 0x2d4]
push edx
push 0x40c248
call dword [sym.imp.MSVBVM60.DLL___vbaRecAnsiToUni]
mov eax, dword [ebp - 0x3ac]
test eax, eax
je 0x479cea
lea eax, [ebp - 0x2b0]
push eax
push 0x104
call dword [sym.imp.MSVBVM60.DLL___vbaStrFixstr]
mov edx, eax
lea ecx, [ebp - 0x33c]
call ebx
lea ecx, [ebp - 0x33c]
mov dword [ebp - 0x37c], ecx
mov dword [ebp - 0x384], 0x4008
lea edx, [ebp - 0x384]
push edx
lea eax, [ebp - 0x354]
push eax
call dword [sym.imp.MSVBVM60.DLL_rtcUpperCaseVar]
mov ecx, dword [ebp - 0x33c]
push ecx
lea edx, [ebp - 0x2b0]
push edx
push 0x104
call dword [sym.imp.MSVBVM60.DLL___vbaLsetFixstr]
mov dword [ebp - 0x38c], 0x4110d4
mov dword [ebp - 0x394], 8
mov dword [ebp - 0x39c], 0
mov dword [ebp - 0x3a4], 0x8002
push 1
lea eax, [ebp - 0x354]
push eax
lea ecx, [ebp - 0x394]
push ecx
push 0
lea edx, [ebp - 0x364]
push edx
call dword [sym.imp.MSVBVM60.DLL___vbaInStrVar]
push eax
lea eax, [ebp - 0x3a4]
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaVarTstNe]
mov di, ax
lea ecx, [ebp - 0x33c]
call dword [sym.imp.MSVBVM60.DLL___vbaFreeStr]
lea ecx, [ebp - 0x364]
push ecx
lea edx, [ebp - 0x354]
push edx
push 2
call dword [sym.imp.MSVBVM60.DLL___vbaFreeVarList]
add esp, 0xc
test di, di
je 0x479ca4
lea eax, [ebp - 0x20]
push eax
mov ecx, dword [ebp - 0x2cc]
push ecx
call fcn.0040c3f0
call esi
mov edx, dword [ebp - 0x20]
cmp edx, dword [ebp - 0x24]
je 0x479ce2
lea eax, [ebp - 0x2d4]
push eax
lea ecx, [ebp - 0x618]
push ecx
push 0x40c248
call dword [sym.imp.MSVBVM60.DLL___vbaRecUniToAnsi]
push eax
mov edx, dword [ebp - 0x58]
push edx
call fcn.0040c3a0
mov dword [ebp - 0x3ac], eax
call esi
lea eax, [ebp - 0x618]
push eax
lea ecx, [ebp - 0x2d4]
push ecx
jmp 0x479b90
mov ebx, dword [ebp - 0x2cc]
jmp 0x479ced
mov ebx, dword [ebp - 0x50]
lea edx, [ebp - 0x2c]
push edx
lea eax, [ebp - 0x24]
push eax
call fcn.0040c450
call esi
mov dword [ebp - 0x48], 0x30
push 0x44
lea ecx, [ebp - 0x31c]
push ecx
lea edx, [ebp - 0x65c]
push edx
push 0x40c20c
call dword [sym.imp.MSVBVM60.DLL___vbaRecUniToAnsi]
push eax
call fcn.0040c498
call esi
lea eax, [ebp - 0x65c]
push eax
lea ecx, [ebp - 0x31c]
push ecx
push 0x40c20c
call dword [sym.imp.MSVBVM60.DLL___vbaRecAnsiToUni]
lea edx, [ebp - 0x65c]
push edx
push 0x40c20c
call dword [sym.imp.MSVBVM60.DLL___vbaRecDestructAnsi]
mov dword [ebp - 0x31c], 0x44
mov edx, 0x4110f4
lea ecx, [ebp - 0x314]
mov edi, dword [sym.imp.MSVBVM60.DLL___vbaStrCopy]
call edi
push 0x10
lea eax, [ebp - 0x32c]
push eax
call fcn.0040c498
call esi
push ebx
push 0
push 0x2000000
call fcn.0040c4dc
mov dword [ebp - 0x3ac], eax
call esi
mov eax, dword [ebp - 0x3ac]
mov dword [ebp - 0x44], eax
lea ecx, [ebp - 0x334]
push ecx
push 0x201eb
push eax
call fcn.0040c528
mov dword [ebp - 0x3ac], eax
call esi
mov eax, dword [ebp - 0x3ac]
test eax, eax
jne 0x479de1
lea edx, [ebp - 0x40]
mov dword [ebp - 0x37c], edx
mov dword [ebp - 0x384], 0x4008
push 1
lea eax, [ebp - 0x384]
push eax
jmp 0x47a12d
lea ecx, [ebp - 0x60]
push ecx
push 0x411118
lea edx, [ebp - 0x33c]
push edx
mov ebx, dword [sym.imp.MSVBVM60.DLL___vbaStrToAnsi]
call ebx
push eax
push 0
call fcn.0040c564
mov dword [ebp - 0x3ac], eax
call esi
mov eax, dword [ebp - 0x3ac]
mov dword [ebp - 0x4c], eax
lea ecx, [ebp - 0x33c]
call dword [sym.imp.MSVBVM60.DLL___vbaFreeStr]
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x47a0be
mov dword [ebp - 0x80], 1
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x7c]
push ecx
push 8
call dword [sym.imp.MSVBVM60.DLL___vbaCopyBytes]
mov dword [ebp - 0x74], 2
xor edx, edx
lea ecx, [ebp - 0x33c]
call edi
push eax
lea edx, [ebp - 0x340]
push edx
call ebx
lea eax, [ebp - 0x64]
push eax
push 1
push 1
lea ecx, [ebp - 0x340]
push ecx
push 0x2000000
mov edx, dword [ebp - 0x334]
push edx
call fcn.0040c5c0
call esi
lea eax, [ebp - 0x340]
push eax
lea ecx, [ebp - 0x33c]
push ecx
push 2
call dword [sym.imp.MSVBVM60.DLL___vbaFreeStrList]
add esp, 0xc
mov ecx, 0xc
call dword [sym.imp.MSVBVM60.DLL___vbaI2I4]
mov dword [ebp - 0x3a8], eax
push 4
lea edx, [ebp - 0x24]
push edx
lea eax, [ebp - 0x3a8]
push eax
mov ecx, dword [ebp - 0x64]
push ecx
call fcn.0040c60c
call esi
push 0
push 0
push 0x1c
lea edx, [ebp - 0x80]
push edx
push 0
mov eax, dword [ebp - 0x64]
push eax
call fcn.0040c65c
mov dword [ebp - 0x3ac], eax
call esi
mov ecx, dword [ebp - 0x3ac]
mov dword [ebp - 0x4c], ecx
mov edi, dword [sym.imp.MSVBVM60.DLL_rtcErrObj]
call edi
push eax
lea edx, [ebp - 0x344]
push edx
call dword [sym.imp.MSVBVM60.DLL___vbaObjSet]
mov ebx, eax
mov eax, dword [ebx]
lea ecx, [ebp - 0x3ac]
push ecx
push ebx
call dword [eax + 0x4c]
fnclex
test eax, eax
jge 0x479f1f
push 0x4c
push 0x4106c0
push ebx
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
xor ebx, ebx
mov eax, dword [ebp - 0x3ac]
test eax, eax
setne bl
neg ebx
xor edx, edx
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
sete dl
neg edx
or ebx, edx
lea ecx, [ebp - 0x344]
call dword [sym.imp.MSVBVM60.DLL___vbaFreeObj]
test bx, bx
jne 0x47a111
call edi
push eax
lea edx, [ebp - 0x344]
push edx
mov ebx, dword [sym.imp.MSVBVM60.DLL___vbaObjSet]
call ebx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x48]
lea ecx, [ebp - 0x344]
call dword [sym.imp.MSVBVM60.DLL___vbaFreeObj]
mov dword [ebp - 0x330], 0
push 0
mov edx, dword [ebp - 0x64]
push edx
lea eax, [ebp - 0x330]
push eax
call fcn.0040c6b8
mov dword [ebp - 0x3ac], eax
call esi
mov ecx, dword [ebp - 0x3ac]
mov dword [ebp - 0x4c], ecx
call edi
push eax
lea edx, [ebp - 0x344]
push edx
call ebx
mov ebx, eax
mov eax, dword [ebx]
lea ecx, [ebp - 0x3ac]
push ecx
push ebx
call dword [eax + 0x4c]
fnclex
test eax, eax
jge 0x479fd2
push 0x4c
push 0x4106c0
push ebx
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
xor edx, edx
mov ecx, dword [ebp - 0x3ac]
test ecx, ecx
setne dl
neg edx
xor eax, eax
mov ebx, dword [ebp - 0x4c]
test ebx, ebx
sete al
neg eax
or edx, eax
mov edi, edx
lea ecx, [ebp - 0x344]
call dword [sym.imp.MSVBVM60.DLL___vbaFreeObj]
test di, di
je 0x47a011
mov dword [ebp - 0x330], 0
mov edi, dword [ebp - 0x48]
jmp 0x47a016
mov edi, 0x430
lea ecx, [ebp - 0x32c]
push ecx
lea edx, [ebp - 0x31c]
push edx
lea eax, [ebp - 0x6a0]
push eax
push 0x40c20c
call dword [sym.imp.MSVBVM60.DLL___vbaRecUniToAnsi]
push eax
push 0
mov ecx, dword [ebp - 0x330]
push ecx
push edi
push 0
push 0
push 0
push 0
mov edx, dword [ebp - 0x40]
push edx
lea eax, [ebp - 0x33c]
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaStrToAnsi]
push eax
mov ecx, dword [ebp - 0x64]
push ecx
call fcn.0040c72c
mov dword [ebp - 0x3ac], eax
call esi
lea edx, [ebp - 0x6a0]
push edx
lea eax, [ebp - 0x31c]
push eax
push 0x40c20c
call dword [sym.imp.MSVBVM60.DLL___vbaRecAnsiToUni]
mov ecx, dword [ebp - 0x33c]
push ecx
lea edx, [ebp - 0x40]
push edx
call dword [sym.imp.MSVBVM60.DLL___vbaStrToUnicode]
mov edi, dword [ebp - 0x3ac]
lea ecx, [ebp - 0x33c]
call dword [sym.imp.MSVBVM60.DLL___vbaFreeStr]
lea eax, [ebp - 0x6a0]
push eax
push 0x40c20c
call dword [sym.imp.MSVBVM60.DLL___vbaRecDestructAnsi]
test edi, edi
jne 0x47a0dc
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x37c], ecx
mov dword [ebp - 0x384], 0x4008
push 1
lea edx, [ebp - 0x384]
push edx
jmp 0x47a12d
mov eax, dword [ebp - 0x44]
push eax
call fcn.0040c770
call esi
mov ecx, dword [ebp - 0x64]
push ecx
call fcn.0040c770
call esi
mov edx, dword [ebp - 0x334]
push edx
call fcn.0040c770
call esi
call dword [0x4010a0]
wait
push 0x47a1f7
jmp 0x47a198
lea eax, [ebp - 0x40]
mov dword [ebp - 0x37c], eax
mov dword [ebp - 0x384], 0x4008
push 1
lea ecx, [ebp - 0x384]
push ecx
call dword [sym.imp.MSVBVM60.DLL_rtcShell]
fstp st(0)
call dword [0x4010a0]
wait
push 0x47a1f7
jmp 0x47a198
lea ecx, [ebp - 0x65c]
push ecx
push 0x40c20c
mov esi, dword [sym.imp.MSVBVM60.DLL___vbaRecDestructAnsi]
call esi
lea edx, [ebp - 0x6a0]
push edx
push 0x40c20c
call esi
lea ecx, [ebp - 0x40]
mov esi, dword [sym.imp.MSVBVM60.DLL___vbaFreeStr]
call esi
lea ecx, [ebp - 0x88]
call esi
lea eax, [ebp - 0x2d8]
push eax
push 0
call dword [sym.imp.MSVBVM60.DLL___vbaAryDestruct]
lea ecx, [ebp - 0x31c]
push ecx
push 0x40c20c
call dword [sym.imp.MSVBVM60.DLL___vbaRecDestruct]
lea ecx, [ebp - 0x338]
call esi
ret