Function at 0x3481a843
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
mov eax, dword [ebx]
push 6
push 4
lea edx, [esp + 0x20]
push edx
push eax
push ebp
call sub.acecore.dll_Ordinal_148
cmp eax, 0xfffffae0
mov dword [esp + 0x14], eax
je 0x34825e3f
cmp eax, 0xfffffc15
je 0x34825e0f
test eax, eax
jne 0x34825df8
cmp dword [esp + 0x18], 0
jne 0x3481a9f0
jmp 0x34825e02
xor edi, edi
mov dword [esi + 0x84], edi
jmp 0x3481aab7
push 0x10
call fcn.3481f5da
add esp, 4
cmp eax, edi
je 0x34818000
mov dword [eax], vtable.ColumnData.0
mov dword [eax + 4], edi
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
cmp eax, edi
mov dword [esi + 0x94], eax
je 0x3481803f
mov ecx, dword [esi + 0x38]
mov ecx, dword [ecx + 0x14]
push edi
push edi
lea edx, [esp + 0x1c]
push edx
mov edx, dword [ebx]
push edx
push ecx
mov ecx, dword [esp + 0x30]
push ecx
mov ecx, eax
call fcn.3481b7c0
mov ebp, eax
cmp ebp, edi
jl 0x3481addc
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x14]
jmp 0x3481aadf
cmp edx, 5
jne 0x3481ab4c
jmp 0x3481aaec
mov dword [esi + 0x3c], ecx
mov eax, dword [ecx]
mov edx, dword [eax + 0x18]
call edx
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov ecx, dword [esi + 0x3c]
call fcn.34817306
jmp 0x3481a8cd
call fcn.3481734c
mov ebp, eax
test ebp, ebp
jl 0x3481addc
mov ecx, dword [esp + 0x5c]
jmp 0x3481aa2d
push 0x14
call fcn.3481f5da
add esp, 4
cmp eax, edi
je 0x34818018
mov edx, dword [esi + 8]
push edx
push 1
push esi
mov ecx, eax
call fcn.348173dd
cmp eax, edi
mov dword [esi + 0x2c], eax
jne 0x3481ac22
jmp 0x3481803f
cmp eax, 0xfffff9bd
jne 0x34818007
test byte [esi + 0x60], 4
jne 0x34825eb5
mov ecx, dword [ebx]
push 0
push SysReAllocStringLen
push ecx
push edi
call sub.acecore.dll_Ordinal_156
test eax, eax
mov dword [esp + 0x14], eax
jge 0x34825eb5
mov ebp, 0x40ec6
jmp 0x3481ab35
xor ebp, ebp
mov dword [esp + 0x14], ebp
jmp 0x3481ab4c
xor eax, eax
jmp 0x3481a920
xor edi, edi
jmp 0x3481aaa4
xor eax, eax
jmp 0x348170e9
mov ebp, 0x80004005
jmp 0x3481ab35
xor eax, eax
jmp 0x3481ac02
xor eax, eax
jmp 0x348173cd
xor eax, eax
jmp 0x3481ac42
xor eax, eax
jmp 0x3481ac6b
mov edx, dword [esi + 0x10]
mov dword [esi + 0x14], edx
jmp 0x3481acbb
xor eax, eax
jmp 0x3481acd9
mov ebp, 0x8007000e
jmp 0x3481addc
cmp dword [esp + 0x2c], 1
je 0x3482619f
jmp 0x3481ad75
xor eax, eax
jmp 0x3481ad9f
jl 0x348261f8
jmp 0x3481ae07
push 0xffffffffffffffff
push 0x348511cc
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x3485dd14]
xor eax, esp
push eax
lea eax, [esp + 0x40]
mov dword fs:[0], eax
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x50]
xor edi, edi
or ebx, 0xffffffff
cmp eax, edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x38], 0x7f
mov dword [esp + 0x3c], 0x86
mov dword [esi + 0x38], eax
je 0x34825bd7
mov eax, dword [eax + 0x1c]
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov ecx, dword [esp + 0x5c]
cmp ecx, edi
jne 0x348172e7
mov ecx, dword [esi + 0x40]
cmp ecx, edi
jne 0x34825be1
mov eax, dword [esi + 0x38]
mov ecx, dword [eax + 0x58]
cmp ecx, edi
mov dword [esi + 0x40], ecx
jne 0x34825beb
mov ecx, dword [esi + 0x38]
mov eax, dword [esp + 0x74]
cmp eax, edi
mov edx, dword [ecx + 0x10]
mov dword [esp + 0x1c], edx
jne 0x34825bf5
push 0x28
call fcn.3481f5da
add esp, 4
mov dword [esp + 0x50], eax
cmp eax, edi
mov dword [esp + 0x48], edi
je 0x34817ff2
mov ecx, eax
call fcn.3481dfca
cmp eax, edi
mov dword [esp + 0x48], ebx
mov dword [esi + 0x68], eax
je 0x3481803f
push 0xc
push eax
call fcn.3481df47
test eax, eax
jl 0x3481803f
mov ecx, dword [esp + 0x70]
mov dword [esi + 0x74], ecx
lea ecx, [esi + 0x98]
call fcn.3481f058
mov ebp, eax
cmp ebp, edi
jl 0x3481addc
mov edx, dword [esp + 0x6c]
push edx
lea ecx, [esi + 0x98]
call fcn.3481d30a
mov ebp, eax
test ebp, ebp
jl 0x3481addc
mov edi, dword [esp + 0x60]
xor ebx, ebx
cmp edi, ebx
jne 0x34825c14
mov ecx, dword [esp + 0x8c]
push ecx
lea ecx, [esi + 0x98]
call fcn.348182cf
mov ebp, eax
cmp ebp, ebx
jl 0x3481addc
mov edx, dword [esp + 0x68]
lea ebx, [esi + 0x6c]
mov dword [ebx], edx
mov edi, dword [esp + 0x64]
test edi, edi
jne 0x34825d89
mov eax, dword [ebx]
mov ebp, dword [esp + 0x1c]
push 0xa
push 4
lea edx, [esp + 0x2c]
push edx
push eax
push ebp
call sub.acecore.dll_Ordinal_148
test eax, eax
mov dword [esp + 0x14], eax
jl 0x34825dee
mov edi, dword [esp + 0x80]
test edi, edi
mov ecx, dword [esp + 0x24]
mov dword [esi + 0xe4], ecx
je 0x3481702a
mov eax, dword [esi + 0xe4]
add eax, 0xfffffff1
cmp eax, 0x2a
jbe 0x34825e52
mov eax, dword [esp + 0x70]
test eax, eax
je 0x3481aa0f
cmp eax, 1
jne 0x3481aa21
mov ecx, dword [esi + 0xa0]
push 0
push 0x86
call fcn.348183a4
mov ecx, dword [esp + 0x5c]
test ecx, ecx
jne 0x34817334
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x84]
push edx
push eax
push ecx
mov ecx, dword [esp + 0x7c]
lea eax, [esi + 0x98]
push eax
push ecx
mov ecx, esi
call fcn.34818403
mov ebp, eax
test ebp, ebp
jl 0x3481addc
mov edx, dword [esi + 0x78]
mov ecx, dword [esi + 0xa4]
lea eax, [esp + 0x58]
push eax
push 0xfe
mov dword [esp + 0x60], edx
call fcn.3481eccf
lea ecx, [esi + 0x98]
call fcn.3481e063
test byte [esp + 0x18], 0x30
mov edx, dword [esp + 0x70]
jne 0x34817ff9
cmp edi, 1
jne 0x348170bb
xor edi, edi
cmp edx, edi
je 0x348170bd
cmp edx, 5
je 0x348170bd
mov dword [esi + 0x84], 1
cmp dword [esi + 0x84], 1
jne 0x3481aac9
cmp edx, 2
jge 0x34825e78
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x7c]
cmp ecx, edi
je 0x348170c8
mov dword [esi + 0x94], ecx
cmp dword [esi + 0x84], 1
jne 0x34817183
mov edx, dword [esi + 0x38]
mov edi, dword [edx + 0x10]
xor ebp, ebp
cmp dword [esi + 0x74], 4
je 0x34825eab
mov eax, dword [ebx]
push 0
push SysReAllocStringLen
push eax
push edi
call sub.acecore.dll_Ordinal_156
test eax, eax
mov dword [esp + 0x14], eax
jne 0x34817fb0
cmp dword [esi + 0x84], 0
je 0x3481ab35
push 0xffffffffffffffff
lea edx, [esi + 0x7c]
push edx
push esi
call fcn.34811cb6
mov ebp, eax
mov eax, dword [esp + 0x14]
cmp ebp, 0x40ec6
je 0x34817fe7
cmp eax, 0xfffff9bd
je 0x34817fe7
cmp dword [esi + 0xe4], 4
je 0x3481ab9d
mov ecx, dword [esi + 0xa0]
push 0x9f
call fcn.3481e6ad
mov edi, eax
mov ecx, edi
call fcn.348184b5
cmp eax, 1
mov ebx, dword [esp + 0x5c]
je 0x34825ed0
mov ecx, dword [esi + 0xa0]
push 0x117
call fcn.3481e6ad
mov edi, eax
mov ecx, edi
call fcn.348184b5
cmp eax, 1
je 0x34825f98
mov ecx, dword [esi + 0xa0]
push 0x88
call fcn.3481ed25
mov ecx, dword [esi + 0xac]
xor ecx, eax
and ecx, 1
xor dword [esi + 0xac], ecx
mov ecx, dword [esi + 0xa0]
push 0x89
call fcn.3481ed25
lea edx, [eax + eax]
xor edx, dword [esi + 0xac]
push 0x14
and edx, 2
xor dword [esi + 0xac], edx
call fcn.3481f5da
xor edi, edi
add esp, 4
cmp eax, edi
je 0x34818011
mov ecx, dword [esi + 8]
push ecx
push 1
push esi
mov ecx, eax
call fcn.348184c0
cmp eax, edi
mov dword [esi + 0x28], eax
je 0x3481803f
mov ecx, dword [esi + 0xa0]
push 0x7b
call fcn.3481ed25
test eax, eax
jne 0x348173ad
push 0x14
call fcn.3481f5da
add esp, 4
cmp eax, edi
je 0x3481801f
mov ecx, dword [esi + 8]
push ecx
push 1
push esi
mov ecx, eax
call fcn.348184ef
cmp eax, edi
mov dword [esi + 0x30], eax
je 0x3481803f
push 0xc
call fcn.3481f5da
add esp, 4
cmp eax, edi
je 0x34818026
mov dword [eax], vtable.CImpIRowsetLocate.0
mov dword [eax + 4], edi
mov dword [eax + 8], esi
cmp eax, edi
mov dword [esi + 0x10], eax
je 0x3481803f
mov ecx, dword [esi + 0xa0]
push 0xe
call fcn.3481ed25
test eax, eax
je 0x3481acbb
mov ecx, dword [esi + 0xa0]
or dword [esi + 0x60], 8
push 0x82
call fcn.3481ed25
test eax, eax
jne 0x3481802d
mov ecx, dword [esi + 0xa0]
push 0x85
call fcn.3481ed25
test eax, eax
jne 0x3481802d
push 0xc
call fcn.3481f5da
add esp, 4
cmp eax, edi
je 0x34818038
mov dword [eax], vtable.CImpIRowsetInfo.0
mov dword [eax + 4], edi
mov dword [eax + 8], esi
cmp eax, edi
mov dword [esi + 0x20], eax
je 0x3481803f
mov eax, dword [esi + 0x38]
mov ecx, dword [eax + 0x54]
lea edx, [esp + 0x28]
push edx
call fcn.3481e0e3
mov ecx, dword [esi + 0xa0]
push 0x7f
call fcn.3481ed25
test eax, eax
jne 0x3482604d
mov ecx, dword [esi + 0xa0]
push 0x86
call fcn.3481ed25
test eax, eax
jne 0x3482607b
or dword [esi + 0x60], 0x10
test byte [esp + 0x28], 1
jne 0x3481ae1f
mov ecx, dword [esi + 0xa0]
push 0x7c
call fcn.3481ed25
test eax, eax
jne 0x34826145
mov ecx, dword [esi + 0xa0]
push 0x9f
call fcn.3481ed25
test eax, eax
jne 0x34818049
mov ecx, dword [esi + 0xa0]
push 0x117
call fcn.3481ed25
test eax, eax
jne 0x34818049
push 0x30
call fcn.3481f5da
add esp, 4
mov dword [esp + 0x5c], eax
test eax, eax
mov dword [esp + 0x48], 2
je 0x34818059
mov edx, dword [esi + 8]
push edx
push esi
mov ecx, eax
call fcn.3481cc60
test eax, eax
mov dword [esp + 0x48], 0xffffffff
mov dword [esi + 0xc], eax
je 0x3481803f
push 1
push eax
call fcn.3481cca4
test eax, eax
jl 0x3481803f
mov ecx, dword [esi + 0xa4]
push 0xec
call fcn.3481ed25
or dword [esi + 0x60], 0x203
mov dword [esi + 0x44], eax
mov eax, dword [esp + 0x14]
xor ebx, ebx
cmp eax, ebx
jne 0x348260b2
cmp ebp, ebx
jl 0x348261d1
xor ebx, ebx
cmp ebp, ebx
jne 0x34818060
cmp dword [esp + 0x20], 1
je 0x348261ee
mov eax, ebp
mov ecx, dword [esp + 0x40]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret 0x40
xor ebx, ebx
mov edi, dword [esp + ebx*4 + 0x38]
mov ecx, dword [esi + 0xa0]
push edi
call fcn.3481ed25
cmp eax, 1
je 0x348260c7
add ebx, 1
cmp ebx, 2
jae 0x3481ad30
jmp 0x3481ae21
mov ebp, 0x80004005
jmp 0x348261d1
call fcn.3484cf71
jmp 0x3481a8d8
call fcn.3484ca97
jmp 0x3481a8e9
mov ecx, dword [esp + 0x78]
cmp ecx, edi
je 0x3481a8ff
mov dword [esi + 0xb0], eax
mov eax, dword [ecx]
mov dword [esi + 0xb4], eax
jmp 0x3481a8ff
mov eax, dword [esi + 0x38]
mov dword [esp + 0x50], ebx
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0xa4]
lea ecx, [esp + 0x50]
push ecx
push 0x11c
mov ecx, eax
call fcn.3481f579
test eax, eax
jge 0x34825c3d
mov dword [esp + 0x50], ebx
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x8c]
push edx
push 1
lea eax, [esp + 0x78]
push eax
push ecx
lea edx, [esp + 0x28]
push edx
lea ecx, [esi + 0x98]
call fcn.34816aac
mov ebp, eax
cmp ebp, ebx
jl 0x3481addc
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [esp + 0x1c]
lea ebx, [esi + 0x6c]
push ebx
push ecx
push 0
push 0
push edi
push eax
push edx
call sub.acecore.dll_Ordinal_158
cmp eax, 0xfffffc15
mov dword [esp + 0x14], eax
jne 0x34825cbc
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0x38]
mov edx, dword [esp + 0x1c]
push ebx
or eax, 0x40
push eax
push 0
push 0
mov dword [esp + 0x28], eax
mov ecx, dword [ecx + 0x14]
push edi
push ecx
push edx
call sub.acecore.dll_Ordinal_158
mov dword [esp + 0x14], eax
cmp eax, 0xfffff88d
jg 0x34825d24
je 0x34825d12
cmp eax, 0xfffff434
jg 0x34825ce2
je 0x34825d4a
cmp eax, 0xfffff250
je 0x34825cf0
cmp eax, 0xfffff3e4
jne 0x34825d61
jmp 0x34825cf0
cmp eax, 0xfffff43e
je 0x34825d00
cmp eax, 0xfffff82f
jne 0x34825d61
mov dword [ebx], 0xffffffff
mov ebp, 0x80040e37
jmp 0x3481ade0
mov dword [ebx], 0xffffffff
mov ebp, 0x80040e10
xor ebx, ebx
jmp 0x348260b2
mov dword [ebx], 0xffffffff
mov ebp, 0x80040e09
xor ebx, ebx
jmp 0x348260b2
test eax, eax
jg 0x34825d5a
je 0x34825d75
cmp eax, 0xfffffae7
je 0x34825d4a
cmp eax, 0xfffffaea
jne 0x34825d61
mov dword [ebx], 0xffffffff
mov ebp, 0x80004005
xor ebx, ebx
jmp 0x348260b2
mov ebp, 0x80040e37
mov dword [ebx], 0xffffffff
jmp 0x3481ade0
cmp eax, 0xbd8
je 0x34825d75
test eax, eax
jg 0x34825d75
mov ebp, 0x80004005
mov dword [ebx], 0xffffffff
jmp 0x3481ade0
mov eax, dword [esp + 0x18]
mov dword [esi + 0x78], eax
mov dword [esp + 0x30], 1
jmp 0x3481a9a9
mov eax, dword [ebx]
mov ecx, dword [esp + 0x1c]
push edi
push eax
push ecx
call sub.acecore.dll_Ordinal_173
cmp eax, 0xfffffa84
mov dword [esp + 0x14], eax
je 0x34825dc4
cmp eax, 0xfffffae0
je 0x34825dc4
test eax, eax
je 0x34825db4
mov ebp, 0x80004005
jmp 0x34825dc9
xor edx, edx
cmp word [edi], dx
setne dl
mov dword [esi + 0xd0], edx
jmp 0x34825dc9
mov ebp, 0x80040e35
test eax, eax
jge 0x34825de5
mov eax, dword [ebx]
mov ecx, dword [esp + 0x1c]
push eax
push ecx
call sub.acecore.dll_Ordinal_108
mov dword [ebx], 0xffffffff
jmp 0x3481addc
or dword [esi + 0x60], 0x20
jmp 0x3481a9b5
mov ebp, 0x80004005
jmp 0x3481ade0
mov ebp, 0x80004005
jmp 0x3481ade0
mov dword [esp + 0x70], 0
jmp 0x3481a9f0
cmp dword [esp + 0x70], 4
mov dword [esp + 0x14], 0
je 0x3481a9f0
mov dword [esp + 0x18], 0x30
mov dword [esp + 0x70], 3
mov dword [esp + 0x2c], 1
jmp 0x3481a9f0
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x70], eax
jmp 0x3481a9f0
movzx ecx, byte [eax + 0x348263e0]
jmp dword [ecx*4 + 0x348263d0]
test byte [esp + 0x18], 0x30
je case.0x34825e59.18
mov dword [esp + 0x70], 5
jmp 0x3481aa21
cmp edx, 4
jg 0x3481aac9
mov ecx, esi
call fcn.348370af
cmp eax, edi
mov dword [esp + 0x14], eax
jge 0x34825e9a
mov ebp, 0x80004005
jmp 0x3481ade0
mov edx, dword [esp + 0x70]
mov dword [esp + 0x34], 1
jmp 0x3481aacd
mov ebp, 0x40ec6
jmp 0x3481ab35
mov ecx, dword [esi + 0x60]
test cl, cl
mov ebp, 0x40ec6
js 0x3481ab35
or ecx, 4
mov dword [esi + 0x60], ecx
jmp 0x3481ab35
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x84]
xor eax, eax
test ebx, ebx
setne al
add eax, 7
push eax
push ecx
mov ecx, dword [0x3485ca18]
push edx
mov edx, dword [0x3485ca1c]
push ebx
lea eax, [esi + 0x98]
push eax
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [0x3485ca20]
mov dword [eax + 4], edx
mov edx, dword [0x3485ca24]
mov dword [eax + 8], ecx
push 0x9f
mov dword [eax + 0xc], edx
call fcn.3484e8bf
mov ebp, eax
test ebp, ebp
jge 0x34825f5b
cmp ebp, 0x80004005
jne 0x3481addc
mov eax, dword [esp + 0x8c]
push eax
push 0x34856b40
call fcn.3481f5f0
test eax, eax
je 0x3481addc
mov ebp, 0x80004002
jmp 0x3481addc
mov ecx, dword [edi + 0x28]
and ecx, 2
cmp cl, 2
jne 0x34825f70
mov ebp, 0x80040e21
jmp 0x3481addc
or dword [edi + 0x20], 0x400
push 0
mov ecx, edi
call fcn.34830751
or dword [edi + 0x28], 2
and dword [edi + 0x20], 0xfffffbff
mov dword [esp + 0x20], 1
jmp 0x3481ab7b
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x84]
xor edx, edx
test ebx, ebx
setne dl
add edx, 7
push edx
mov edx, dword [0x3485ca18]
push eax
push ecx
mov ecx, dword [0x3485ca1c]
push ebx
lea eax, [esi + 0x98]
push eax
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [0x3485ca20]
mov dword [eax + 4], ecx
mov ecx, dword [0x3485ca24]
mov dword [eax + 8], edx
push 0x117
mov dword [eax + 0xc], ecx
call fcn.3484e8bf
mov ebp, eax
test ebp, ebp
jge 0x34826011
cmp ebp, 0x80004005
jne 0x3481addc
mov edx, dword [esp + 0x8c]
push edx
push 0x34856b50
jmp 0x34825f44
mov eax, dword [edi + 0x28]
and eax, 2
cmp al, 2
jne 0x34826025
mov ebp, 0x80040e21
jmp 0x3481addc
or dword [edi + 0x20], 0x400
push 0
mov ecx, edi
call fcn.34830751
or dword [edi + 0x28], 2
and dword [edi + 0x20], 0xfffffbff
mov dword [esp + 0x20], 1
jmp 0x3481ab9d
push 0xc
call fcn.3481f5da
add esp, 4
cmp eax, edi
je 0x34826069
mov dword [eax], vtable.CImpIRowsetUpdate.0
mov dword [eax + 4], edi
mov dword [eax + 8], esi
jmp 0x3482606b
xor eax, eax
cmp eax, edi
mov dword [esi + 0x24], eax
jne 0x3481ad09
jmp 0x3481803f
cmp dword [esi + 0x24], edi
jne 0x3481ad25
push 0xc
call fcn.3481f5da
add esp, 4
cmp eax, edi
je 0x348260a0
mov dword [eax], vtable.CImpIRowsetUpdate.0
mov dword [eax + 4], edi
mov dword [eax + 8], esi
jmp 0x348260a2
xor eax, eax
cmp eax, edi
mov dword [esi + 0x24], eax
je 0x3481803f
jmp 0x3481ad25
push str.:s_f
push eax
mov eax, dword [esi + 0x38]
push ebp
push eax
call fcn.3481319b
jmp 0x3481adf4
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x5c]
push 8
push eax
push ecx
mov ecx, dword [0x3485ca18]
push edx
mov edx, dword [0x3485ca1c]
lea eax, [esi + 0x98]
push eax
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [0x3485ca20]
mov dword [eax + 4], edx
mov edx, dword [0x3485ca24]
mov dword [eax + 8], ecx
push edi
mov dword [eax + 0xc], edx
call fcn.3484e8bf
mov ebp, eax
test ebp, ebp
jl 0x3481addc
mov ecx, dword [esi + 0xa0]
push edi
call fcn.3481e6ad
test byte [eax + 0x28], 2
jne 0x34825f66
mov ebp, 0x40eda
mov dword [esp + 0x20], 1
jmp 0x3481ae3a
push 0x2c
call fcn.3481f5da
add esp, 4
mov dword [esp + 0x5c], eax
test eax, eax
mov dword [esp + 0x48], 1
je 0x3482616c
mov ecx, dword [esi + 8]
push ecx
mov ecx, eax
call fcn.34833aee
jmp 0x3482616e
xor eax, eax
test eax, eax
mov dword [esp + 0x48], 0xffffffff
mov dword [esi + 0x34], eax
je 0x3481803f
mov ecx, eax
call fcn.348341bb
mov ebp, eax
test ebp, ebp
jl 0x3481addc
mov ecx, dword [esi + 0x34]
call fcn.348335ff
jmp 0x3481ad45
push 0xc
call fcn.3481f5da
add esp, 4
test eax, eax
je 0x348261bf
mov dword [eax], vtable.CImpIRowsetIndex.0
mov dword [eax + 4], 0
mov dword [eax + 8], esi
jmp 0x348261c1
xor eax, eax
test eax, eax
mov dword [esi + 0x1c], eax
jne 0x3481ad75
jmp 0x3481803f
mov eax, dword [esi + 0x38]
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0x10]
push 0
push str.:s_f
push ebp
push ecx
push edx
call fcn.3481cfc1
jmp 0x3481adf2
mov eax, 0x40eda
jmp 0x3481ae09
mov eax, dword [esi + 0x38]
cmp eax, ebx
je 0x3482620d
mov eax, dword [eax + 0x1c]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esi + 0x38], ebx
mov ecx, dword [esi + 0x3c]
cmp ecx, ebx
je 0x3482622e
call fcn.348174a7
mov ecx, dword [esi + 0x3c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x18]
call edx
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esi + 0x3c], ebx
mov ecx, dword [esi + 0x40]
cmp ecx, ebx
je 0x3482623d
call fcn.3484cf71
mov dword [esi + 0x40], ebx
or edi, 0xffffffff
cmp dword [esp + 0x30], 1
jne 0x3482625c
mov eax, dword [esi + 0x6c]
cmp eax, edi
je 0x3482625c
push eax
mov eax, dword [esp + 0x20]
push eax
call sub.acecore.dll_Ordinal_108
mov dword [esi + 0x6c], edi
cmp dword [esp + 0x34], 1
mov dword [esi + 0x6c], edi
jne 0x3482627b
mov eax, dword [esi + 0x70]
cmp eax, edi
je 0x3482627b
mov ecx, dword [esp + 0x1c]
push eax
push ecx
call sub.acecore.dll_Ordinal_108
mov dword [esi + 0x70], edi
mov dword [esi + 0x70], edi
mov edi, dword [esi + 0xc]
cmp edi, ebx
je 0x34826295
mov ecx, edi
call fcn.348188a5
push edi
call fcn.3481f800
add esp, 4
mov eax, dword [esi + 0x18]
cmp eax, ebx
je 0x348262ab
push eax
mov dword [eax], vtable.CImpIRowsetIdentity.0
call fcn.3481f800
add esp, 4
mov eax, dword [esi + 0x1c]
cmp eax, ebx
je 0x348262c1
push eax
mov dword [eax], vtable.CImpIRowsetIndex.0
call fcn.3481f800
add esp, 4
mov eax, dword [esi + 0x20]
cmp eax, ebx
je 0x348262d7
push eax
mov dword [eax], vtable.CImpIRowsetInfo.0
call fcn.3481f800
add esp, 4
mov eax, dword [esi + 0x10]
cmp eax, ebx
je 0x348262ed
push eax
mov dword [eax], vtable.CImpIRowsetLocate.0
call fcn.3481f800
add esp, 4
mov eax, dword [esi + 0x24]
cmp eax, ebx
je 0x34826303
push eax
mov dword [eax], vtable.CImpIRowsetUpdate.0
call fcn.3481f800
add esp, 4
mov eax, dword [esi + 0x28]
cmp eax, ebx
je 0x34826319
push eax
mov dword [eax], vtable.CImpIColumnsInfo.0
call fcn.3481f800
add esp, 4
mov eax, dword [esi + 0x2c]
cmp eax, ebx
je 0x3482632f
push eax
mov dword [eax], vtable.CImpIColumnsRowset.0
call fcn.3481f800
add esp, 4
mov eax, dword [esi + 0x30]
cmp eax, ebx
je 0x34826345
push eax
mov dword [eax], vtable.CImpIConvertType.0
call fcn.3481f800
add esp, 4
mov edi, dword [esi + 0x68]
cmp edi, ebx
je 0x3482635c
mov ecx, edi
call fcn.34819c81
push edi
call fcn.3481f800
add esp, 4
mov eax, dword [esi + 0x8c]
cmp eax, ebx
je 0x34826379
mov ecx, dword [0x34866048]
cmp ecx, ebx
je 0x34826379
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x14]
push ecx
call eax
mov ecx, dword [esi + 0x94]
cmp ecx, ebx
je 0x3482638c
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 1
call eax
mov dword [esi + 0xb0], ebx
mov dword [esi + 0xb4], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x24], ebx
mov dword [esi + 0x28], ebx
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x30], ebx
mov dword [esi + 0x68], ebx
mov dword [esi + 0x8c], ebx
mov dword [esi + 0x90], ebx
mov dword [esi + 0x94], ebx
jmp 0x3481ae07