Function at 0x4085d0
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x443fdd
mov eax, dword fs:[0]
push eax
sub esp, 0x598
mov eax, dword [0x45d55c]
xor eax, esp
mov dword [esp + 0x590], eax
push ebx
push esi
push edi
mov eax, dword [0x45d55c]
xor eax, esp
push eax
lea eax, [esp + 0x5a8]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0x14]
xor ebx, ebx
push eax
lea ecx, [esp + 0x14]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x18], ebx
call fcn.00401890
push 0x44c164
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x24]
push edx
mov dword [esp + 0x5bc], ebx
call fcn.00401770
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x5b4], 1
call fcn.004016b0
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x5b0], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40868f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x10]
push ebx
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x4086d1
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov dword [esp + 0x5b0], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4086ca
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x4094fc
push str.obj.h
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x34]
push edx
call fcn.00401770
mov eax, dword [esp + 0x38]
push 0x44796c
push eax
mov byte [esp + 0x5c4], 2
call fcn.0042da56
mov ebx, eax
add esp, 0x14
test ebx, ebx
jne 0x408751
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x5b0], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40872d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov dword [esp + 0x5b0], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x4086be
push str.ifndef___INCLUDE_OBJ_H___r_n
push ebx
call fcn.0042d843
push str.define___INCLUDE_OBJ_H___r_n_r_n
push ebx
call fcn.0042d843
push str.if__defined___cplusplus__r_n
push ebx
call fcn.0042d843
push str.error_C_compiler_required_r_n
push ebx
call fcn.0042d843
push str.endif_r_n_r_n
push ebx
call fcn.0042d843
push str.include__objbase.h__r_n_r_n
push ebx
call fcn.0042d843
push esi
push str.class__s_r_n_r_n
push ebx
call fcn.0042d843
push str.private:_r_n
push ebx
call fcn.0042d843
add esp, 0x44
push str.____IDispatch__obj__r_n
push ebx
call fcn.0042d843
push 0x4480f8
push ebx
call fcn.0042d843
push str.public:_r_n
push ebx
call fcn.0042d843
push esi
push str._____s____r_n
push ebx
call fcn.0042d843
push esi
push str.____virtual__s____r_n_r_n
push ebx
call fcn.0042d843
add esp, 0x30
mov ecx, edi
mov dword [esp + 0x24], 0
call fcn.00401000
test eax, eax
jbe 0x4089bd
mov dword [esp + 0x18], 0
jmp 0x408810
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 4]
test eax, eax
je 0x408837
mov ecx, dword [ecx + 8]
sub ecx, eax
mov eax, 0x6572ec3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x24], eax
jb 0x40883c
call fcn.0042d299
mov ecx, dword [esp + 0x28]
mov esi, dword [ecx + 4]
add esi, dword [esp + 0x18]
mov ecx, 0x143
lea edi, [esp + 0x4c]
rep movsd dword es:[edi], dword [esi]
xor eax, eax
jmp 0x408860
mov cl, byte [esp + eax + 0x8c]
mov byte [esp + eax + 0x55c], cl
add eax, 1
test cl, cl
jne 0x408860
push str.____virtual
push ebx
call fcn.0042d843
mov eax, dword [esp + 0x558]
add esp, 8
cmp eax, 3
jne 0x408896
push 0x44c040
jmp 0x4088c4
cmp eax, 0x14
jne 0x4088a2
push 0x44c034
jmp 0x4088c4
cmp eax, 8
jne 0x4088ae
push str.CString
jmp 0x4088c4
cmp eax, 4
jne 0x4088ba
push 0x44c020
jmp 0x4088c4
cmp eax, 5
jne 0x4088cd
push 0x44c018
push ebx
call fcn.0042d843
add esp, 8
lea edx, [esp + 0x55c]
push edx
push 0x44c014
push ebx
call fcn.0042d843
xor edi, edi
add esp, 0xc
cmp dword [esp + 0xcc], edi
jle 0x40898b
lea esi, [esp + 0xd0]
lea esp, [esp]
mov eax, dword [esp + edi*4 + 0x4d0]
cmp eax, 3
jne 0x408914
push esi
push 0x447e94
jmp 0x408953
cmp eax, 0x14
jne 0x408921
push esi
push str.LONGLONG__s
jmp 0x408953
cmp eax, 4
jne 0x40892e
push esi
push str.float__s
jmp 0x408953
cmp eax, 5
jne 0x40893b
push esi
push str.double__s
jmp 0x408953
cmp eax, 8
jne 0x408948
push esi
push str.const_TCHAR___s
jmp 0x408953
cmp eax, 0x1a
jne 0x40895c
push esi
push str.long___s
push ebx
call fcn.0042d843
add esp, 0xc
mov eax, dword [esp + 0xcc]
add eax, 0xffffffff
cmp edi, eax
jge 0x408978
push 0x447870
push ebx
call fcn.0042d843
add esp, 8
add edi, 1
add esi, 0x20
cmp edi, dword [esp + 0xcc]
jl 0x408900
push 0x4486e8
push ebx
call fcn.0042d843
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
add dword [esp + 0x20], 0x50c
add esi, 1
add esp, 8
mov dword [esp + 0x24], esi
call fcn.00401000
cmp esi, eax
jb 0x408810
push str.__r_n_r_n
push ebx
call fcn.0042d843
push str.endif_r_n
push ebx
call fcn.0042d843
push ebx
call fcn.0042d7c7
push str.obj.cpp
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x38]
push edx
call fcn.00401770
add esp, 0x20
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x5b4], 3
call fcn.004016b0
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x5b0], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408a2a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x2c]
push 0x44796c
push ecx
call fcn.0042da56
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x408a62
mov byte [esp + 0x5b0], al
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x408721
push str.include__stdafx.h__r_n
push ebx
call fcn.0042d843
push str.include__atlbase.h__r_n
push ebx
call fcn.0042d843
push str.include__obj.h__r_n_r_n
push ebx
call fcn.0042d843
push str.class_MyDispatchDriver_r_n
push ebx
call fcn.0042d843
push str._r_npublic:_r_n
push ebx
call fcn.0042d843
push str.____IDispatch_p__r_n
push ebx
call fcn.0042d843
push str.____MyDispatchDriver___r_n
push ebx
call fcn.0042d843
push 0x448078
push ebx
call fcn.0042d843
add esp, 0x40
push str.________p__NULL__r_n
push ebx
call fcn.0042d843
push str._____r_n
push ebx
call fcn.0042d843
push str.____MyDispatchDriver_IDispatch_lp__r_n
push ebx
call fcn.0042d843
push 0x448078
push ebx
call fcn.0042d843
push str.________if___p__lp____NULL__r_n
push ebx
call fcn.0042d843
push str.____________p__AddRef____r_n
push ebx
call fcn.0042d843
push str._____r_n
push ebx
call fcn.0042d843
push str.____MyDispatchDriver____if__p__p__Release_____r_n
push ebx
call fcn.0042d843
add esp, 0x40
push str.____HRESULT_GetIDOfName_LPCOLESTR_lpsz__DISPID_pdispid__r_n
push ebx
call fcn.0042d843
push 0x448078
push ebx
call fcn.0042d843
push str.________HRESULT_hr___1__r_n
push ebx
call fcn.0042d843
push str.________if__p__NULL__return_hr__r_n
push ebx
call fcn.0042d843
push str.________return_p__GetIDsOfNames_IID_NULL___LPOLESTR_lpsz__1__LOCALE_USER_DEFAULT__pdispid___r_n
push ebx
call fcn.0042d843
push str._____r_n
push ebx
call fcn.0042d843
push str.____HRESULT_Invoke0_DISPID_dispid__VARIANT_pvarRet__NULL__r_n
push ebx
call fcn.0042d843
push 0x448078
push ebx
call fcn.0042d843
add esp, 0x40
push str.________HRESULT_hr___1__r_n
push ebx
call fcn.0042d843
push str.________DISPPARAMS_dispparams___NULL__NULL__0__0__r_n
push ebx
call fcn.0042d843
push str.________if__p__NULL__return_hr__r_n
push ebx
call fcn.0042d843
push str.________return_p__Invoke_dispid__IID_NULL__LOCALE_USER_DEFAULT__DISPATCH_METHOD__dispparams__pvarRet__NULL__NULL___r_n
push ebx
call fcn.0042d843
push str._____r_n
push ebx
call fcn.0042d843
push str.____HRESULT_InvokeN_DISPID_dispid__VARIANT_pvarParams__int_nParams__VARIANT_pvarRet__NULL__r_n
push ebx
call fcn.0042d843
push 0x448078
push ebx
call fcn.0042d843
push str.________HRESULT_hr___1__r_n
push ebx
call fcn.0042d843
add esp, 0x40
push str.________DISPPARAMS_dispparams___pvarParams__NULL__nParams__0__r_n
push ebx
call fcn.0042d843
push str.________if__p__NULL__return_hr__r_n
push ebx
call fcn.0042d843
push str.________return_p__Invoke_dispid__IID_NULL__LOCALE_USER_DEFAULT__DISPATCH_METHOD__dispparams__pvarRet__NULL__NULL___r_n
push ebx
call fcn.0042d843
push str._____r_n
push ebx
call fcn.0042d843
push str.__r_n_r_n
push ebx
call fcn.0042d843
mov esi, dword [esp + 0x58]
push esi
push esi
push str._s::_s___r_n
push ebx
call fcn.0042d843
push 0x4480e0
push ebx
call fcn.0042d843
add esp, 0x40
push str.____CLSID_clsid__r_n
push ebx
call fcn.0042d843
push str.____IUnknown__pUnknown__NULL__r_n
push ebx
call fcn.0042d843
push str.____HRESULT_hr__r_n_r_n
push ebx
call fcn.0042d843
push str.____obj__NULL__r_n
push ebx
call fcn.0042d843
mov ecx, dword [esp + 0x54]
push ecx
push str.____hr__::CLSIDFromProgID__L__s___clsid____r_n
push ebx
call fcn.0042d843
push str.____if__FAILED_hr___r_n
push ebx
call fcn.0042d843
push 0x448078
push ebx
call fcn.0042d843
push str.________return__r_n
push ebx
call fcn.0042d843
add esp, 0x44
push str._____r_n_r_n
push ebx
call fcn.0042d843
push str.____hr__::CoCreateInstance__clsid__NULL__CLSCTX_ALL__IID_IUnknown___LPVOID__pUnknown___r_n
push ebx
call fcn.0042d843
push str.____if__FAILED_hr___r_n
push ebx
call fcn.0042d843
push 0x448078
push ebx
call fcn.0042d843
push str.________return__r_n
push ebx
call fcn.0042d843
push str._____r_n_r_n
push ebx
call fcn.0042d843
push str.____pUnknown__QueryInterface_IID_IDispatch___void__obj___r_n
push ebx
call fcn.0042d843
push str.____if__pUnknown__pUnknown__Release____r_n
push ebx
call fcn.0042d843
add esp, 0x40
push str._r_n_r_n
push ebx
call fcn.0042d843
push esi
push esi
push 0x44ba58
push ebx
call fcn.0042d843
push 0x4480e0
push ebx
call fcn.0042d843
push str.________if__obj__obj__Release____r_n
push ebx
call fcn.0042d843
push str._r_n_r_n
push ebx
call fcn.0042d843
mov ecx, dword [esp + 0x58]
add esp, 0x30
mov dword [esp + 0x24], 0
call fcn.00401000
test eax, eax
jbe 0x4092ab
mov dword [esp + 0x1c], 0
lea esp, [esp]
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 4]
test eax, eax
je 0x408d67
mov ecx, dword [ecx + 8]
sub ecx, eax
mov eax, 0x6572ec3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x24], eax
jb 0x408d6c
call fcn.0042d299
mov edx, dword [esp + 0x28]
mov esi, dword [edx + 4]
add esi, dword [esp + 0x1c]
mov ecx, 0x143
lea edi, [esp + 0x4c]
rep movsd dword es:[edi], dword [esi]
xor eax, eax
jmp 0x408d90
mov cl, byte [esp + eax + 0x8c]
mov byte [esp + eax + 0x55c], cl
add eax, 1
test cl, cl
jne 0x408d90
mov eax, dword [esp + 0x550]
cmp eax, 3
jne 0x408dbd
mov eax, dword [esp + 0x30]
push eax
push str.long__s::
jmp 0x408dff
cmp eax, 0x14
jne 0x408dce
mov ecx, dword [esp + 0x30]
push ecx
push str.LONGLONG__s::
jmp 0x408dff
cmp eax, 8
jne 0x408ddf
mov edx, dword [esp + 0x30]
push edx
push str.CString__s::
jmp 0x408dff
cmp eax, 4
jne 0x408df0
mov eax, dword [esp + 0x30]
push eax
push str.float__s::
jmp 0x408dff
cmp eax, 5
jne 0x408e08
mov ecx, dword [esp + 0x30]
push ecx
push str.double__s::
push ebx
call fcn.0042d843
add esp, 0xc
lea edx, [esp + 0x55c]
push edx
push 0x44c014
push ebx
call fcn.0042d843
xor edi, edi
add esp, 0xc
cmp dword [esp + 0xcc], edi
mov dword [esp + 0x20], edi
jle 0x408f07
lea esi, [esp + 0xd0]
jmp 0x408e40
mov eax, dword [esp + edi*4 + 0x4d0]
cmp eax, 3
jne 0x408e5d
push esi
push 0x447e94
push ebx
call fcn.0042d843
add esp, 0xc
jmp 0x408ed8
cmp eax, 0x14
jne 0x408e73
push esi
push str.LONGLONG__s
push ebx
call fcn.0042d843
add esp, 0xc
jmp 0x408ed8
cmp eax, 4
jne 0x408e89
push esi
push str.float__s
push ebx
call fcn.0042d843
add esp, 0xc
jmp 0x408ed8
cmp eax, 5
jne 0x408e9f
push esi
push str.double__s
push ebx
call fcn.0042d843
add esp, 0xc
jmp 0x408ed8
cmp eax, 8
jne 0x408eb5
push esi
push str.const_TCHAR___s
push ebx
call fcn.0042d843
add esp, 0xc
jmp 0x408ed8
cmp eax, 0x1a
jne 0x408ed8
push esi
push str.long___s
push ebx
call fcn.0042d843
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov dword [esp + eax*4 + 0x3c], edi
add eax, 1
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xcc]
add eax, 0xffffffff
cmp edi, eax
jge 0x408ef4
push 0x447870
push ebx
call fcn.0042d843
add esp, 8
add edi, 1
add esi, 0x20
cmp edi, dword [esp + 0xcc]
jl 0x408e40
push 0x44786c
push ebx
call fcn.0042d843
push 0x4480e0
push ebx
call fcn.0042d843
push str.____static_DISPID_dispatch_id___1__r_n
push ebx
call fcn.0042d843
push str.____MyDispatchDriver_spDisp_obj___r_n
push ebx
call fcn.0042d843
push str.____HRESULT_hr__r_n
push ebx
call fcn.0042d843
mov eax, dword [esp + 0xf4]
add esp, 0x28
test eax, eax
jle 0x408f5b
push eax
push str.____COleVariant_pn__d___r_n
push ebx
call fcn.0042d843
add esp, 0xc
push str.____CComVariant_vResult__r_n
push ebx
call fcn.0042d843
add esp, 8
cmp dword [esp + 0x20], 0
jle 0x408fdd
push str.____CComVariant
push ebx
call fcn.0042d843
mov edi, dword [esp + 0x28]
add esp, 8
xor esi, esi
test edi, edi
jle 0x408fb3
push esi
push 0x44b940
push ebx
call fcn.0042d843
lea eax, [edi - 1]
add esp, 0xc
cmp esi, eax
jge 0x408fac
push 0x447870
push ebx
call fcn.0042d843
add esp, 8
add esi, 1
cmp esi, edi
jl 0x408f88
push 0x44b938
push ebx
call fcn.0042d843
add esp, 8
xor esi, esi
test edi, edi
jle 0x408fdd
push esi
push str.____VariantInit_t_d___r_n
push ebx
call fcn.0042d843
add esi, 1
add esp, 0xc
cmp esi, edi
jl 0x408fc7
push 0x4480f8
push ebx
call fcn.0042d843
mov eax, dword [esp + 0xd4]
add esp, 8
test eax, eax
mov dword [esp + 0x14], 0
jle 0x409065
lea ecx, [esp + 0xd0]
mov dword [esp + 0x34], ecx
lea esp, [esp]
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
xor ecx, ecx
test edx, edx
jle 0x409031
mov edi, edi
cmp esi, dword [esp + ecx*4 + 0x3c]
je 0x4090d2
add ecx, 1
cmp ecx, edx
jl 0x409020
mov ecx, dword [esp + 0x34]
push ecx
sub eax, esi
sub eax, 1
push eax
push str.____pn__d___COleVariant__s___r_n
push ebx
call fcn.0042d843
mov esi, dword [esp + 0x24]
add esp, 0x10
mov eax, dword [esp + 0xcc]
add dword [esp + 0x34], 0x20
add esi, 1
cmp esi, eax
mov dword [esp + 0x14], esi
jl 0x409010
push 0x4480f8
push ebx
call fcn.0042d843
push str.____if__dispatch_id___1__r_n
push ebx
call fcn.0042d843
push 0x448078
push ebx
call fcn.0042d843
lea edx, [esp + 0x64]
push edx
push str.________spDisp.GetIDOfName_L__s__dispatch_id___r_n
push ebx
call fcn.0042d843
push str._____r_n
push ebx
call fcn.0042d843
push 0x4480f8
push ebx
call fcn.0042d843
mov eax, dword [esp + 0x100]
add esp, 0x34
test eax, eax
jle 0x40917d
push eax
push str.____hr__spDisp.InvokeN_dispatch_id_pn__d_vResult___r_n
push ebx
call fcn.0042d843
add esp, 0xc
jmp 0x40918b
cmp ecx, edx
mov dword [esp + 0x18], ecx
jge 0x409031
mov edi, 0x447ef8
lea esi, [esp + 0x55c]
mov ecx, 0xf
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40910c
mov edi, 0x447ee8
lea esi, [esp + 0x55c]
mov ecx, 0xf
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x409143
mov edi, dword [esp + 0x18]
push edi
push str.____t_d.vt__VT_I4__r_n
push ebx
call fcn.0042d843
mov eax, dword [esp + edi*4 + 0x48]
shl eax, 5
lea ecx, [esp + eax + 0xdc]
push ecx
push edi
push str.____t_d.lVal___s__r_n
push ebx
call fcn.0042d843
mov eax, dword [esp + 0xe8]
add esp, 0x1c
jmp 0x409147
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
sub eax, esi
sub eax, 1
push eax
push str.____pn__d_.vt__VT_BYREFVT_VARIANT__r_n
push ebx
call fcn.0042d843
mov edx, dword [esp + 0xd8]
sub edx, esi
push edi
sub edx, 1
push edx
push str.____pn__d_.pvarVal__t_d__r_n
push ebx
call fcn.0042d843
add esp, 0x1c
jmp 0x40904e
push str.____hr__spDisp.Invoke0_dispatch_id_vResult___r_n
push ebx
call fcn.0042d843
add esp, 8
push str.____if__SUCCEEDED_hr___r_n
push ebx
call fcn.0042d843
push 0x448078
push ebx
call fcn.0042d843
mov edi, dword [esp + 0x30]
add esp, 0x10
test edi, edi
jle 0x4091d7
xor esi, esi
test edi, edi
jle 0x4091d7
mov eax, dword [esp + esi*4 + 0x3c]
shl eax, 5
push esi
lea ecx, [esp + eax + 0xd4]
push ecx
push str._________s__t_d.lVal__r_n
push ebx
call fcn.0042d843
add esi, 1
add esp, 0x10
cmp esi, edi
jl 0x4091b2
mov eax, dword [esp + 0x550]
cmp eax, 3
jne 0x4091ea
push str.________return_vResult.lVal__r_n
jmp 0x409218
cmp eax, 0x14
jne 0x4091f6
push str.________return_vResult.llVal__r_n
jmp 0x409218
cmp eax, 4
jne 0x409202
push str.________return_vResult.fltVal__r_n
jmp 0x409218
cmp eax, 5
jne 0x40920e
push str.________return_vResult.dblVal__r_n
jmp 0x409218
cmp eax, 8
jne 0x409221
push str.________return__CString_vResult.bstrVal___r_n
push ebx
call fcn.0042d843
add esp, 8
push str._____r_n
push ebx
call fcn.0042d843
mov eax, dword [esp + 0x558]
add esp, 8
cmp eax, 3
jne 0x409242
push str.____return_0__r_n
jmp 0x409270
cmp eax, 0x14
jne 0x40924e
push str.____return_0__r_n
jmp 0x409270
cmp eax, 4
jne 0x40925a
push str.____return_0.0f__r_n
jmp 0x409270
cmp eax, 5
jne 0x409266
push str.____return_0.0__r_n
jmp 0x409270
cmp eax, 8
jne 0x409279
push str.____return___T______r_n
push ebx
call fcn.0042d843
add esp, 8
push str._r_n_r_n
push ebx
call fcn.0042d843
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
add dword [esp + 0x24], 0x50c
add esi, 1
add esp, 8
mov dword [esp + 0x24], esi
call fcn.00401000
cmp esi, eax
jb 0x408d40
push ebx
call fcn.0042d7c7
push 0x447828
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x44]
push eax
call fcn.00401770
mov ecx, dword [esp + 0x48]
push 0x44796c
push ecx
mov byte [esp + 0x5c8], 4
call fcn.0042da56
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x409316
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
mov byte [esp + 0x5b0], 2
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x408705
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x408705
push 0x44b650
push esi
call fcn.0042d843
push 0x44b5c0
push esi
call fcn.0042d843
push esi
call fcn.0042d7c7
push str.example_ui_.rar
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x3c]
push edx
call fcn.00401770
mov eax, dword [eax]
push eax
mov ebx, 1
push 0x81
mov byte [esp + 0x5d8], 5
mov dword [esp + 0x3c], ebx
call fcn.0040b070
add esp, 0x28
test eax, eax
lea esi, [ebx + 5]
je 0x4093e3
push str.example_console_.rar
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x20]
push ecx
call fcn.00401770
mov eax, dword [eax]
push eax
mov ebx, 3
push 0x82
mov dword [esp + 0x5c4], esi
mov dword [esp + 0x28], ebx
call fcn.0040b070
add esp, 0x14
test eax, eax
je 0x4093e3
push 0x44b57c
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x24]
push eax
call fcn.00401770
mov eax, dword [eax]
push eax
mov ebx, 7
push 0x83
mov dword [esp + 0x5c4], ebx
mov dword [esp + 0x28], ebx
call fcn.0040b070
add esp, 0x14
test eax, eax
je 0x4093e3
lea edi, [esi - 5]
jmp 0x4093e5
xor edi, edi
test bl, 4
mov dword [esp + 0x5b0], esi
je 0x409418
mov eax, dword [esp + 0x1c]
and ebx, 0xfffffffb
add eax, 0xfffffff0
mov dword [esp + 0x14], ebx
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409418
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, 2
mov dword [esp + 0x5b0], 5
je 0x40944f
mov eax, dword [esp + 0x18]
and ebx, 0xfffffffd
add eax, 0xfffffff0
mov dword [esp + 0x14], ebx
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40944f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, 1
mov dword [esp + 0x5b0], 4
je 0x40947f
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40947f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
mov byte [esp + 0x5b0], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4094a7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x5b0], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4094cf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov dword [esp + 0x5b0], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4094fa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, edi
mov ecx, dword [esp + 0x5a8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x590]
xor ecx, esp
call fcn.0042d746
mov esp, ebp
pop ebp
ret