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

Disassembly:
sub esp, 0x24c
mov eax, dword [esp + 0x250]
mov ecx, dword [eax + 0x68]
mov edx, dword [eax + 0x4c]
push ebp
push esi
xor esi, esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x34], esi
mov edx, dword [edx + 0xc]
mov ebp, dword [ecx + 0x594]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x260]
mov dword [esp + 0x30], edx
mov edx, dword [eax + 0x60]
mov dword [ecx], esi
mov ecx, dword [eax + 0x78]
cmp ecx, esi
push edi
mov dword [esp + 0x2c], edx
mov dword [esp + 0x10], ecx
jle 0x2247766
sub ecx, dword [eax + 0x5c]
cmp ecx, esi
mov dword [esp + 0x10], ecx
jg 0x2247766
pop edi
pop esi
mov eax, 0x45f
pop ebp
add esp, 0x24c
ret
mov eax, dword [edx + 0xc]
push ebx
xor ebx, ebx
cmp eax, esi
mov dword [esp + 0x18], ebx
je 0x224777d
mov edx, dword [eax + 0x10]
mov dword [esp + 0x18], edx
mov ebx, edx
mov ecx, dword [ebx + 4]
lea eax, [esp + 0x10]
push eax
push ecx
call fcn.02223a60
add esp, 8
cmp eax, esi
jne 0x2247b97
mov eax, dword [ebx]
mov ecx, dword [eax + 0x88]
mov esi, dword [eax + 0xa8]
mov edx, dword [eax + 0x84]
mov edi, dword [esp + 0x264]
mov eax, ecx
add esi, edi
shr ecx, 2
lea edi, [esp + 0x40]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov word [esp + edx*2 + 0x40], 0
mov esi, dword [ebx + 0x14]
lea eax, [esi - 0xa]
cmp eax, 7
ja case.0x22477db.15
jmp dword [eax*4 + 0x2247ba4]
mov esi, 0xc
jmp case.0x22477db.10
mov esi, 0xb
jmp case.0x22477db.10
mov esi, 0xe
jmp case.0x22477db.10
mov esi, 0xd
mov eax, dword [ebx + 8]
cmp dword [eax + 0x80], 0x14
jne 0x224788e
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 8]
mov eax, dword [esp + 0x40]
mov ecx, dword [ebx]
mov ecx, dword [ecx + 0x84]
add edx, 0x2d4
test eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], ecx
mov byte [esp + 0x40], 0
je 0x2247878
test ecx, ecx
jle 0x2247850
shr ecx, 1
mov eax, 0x200020
lea edi, [esp + 0x40]
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx + 0x83c]
lea edi, [esp + 0x40]
push edi
push eax
push edx
call dword [ecx + 0x28c]
mov edx, dword [esp + 0x24]
mov edi, eax
test edi, edi
mov word [esp + edx*2 + 0x40], 0
jne 0x22478a8
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x40]
push eax
push esi
push ecx
push edx
call fcn.02208350
jmp 0x224789f
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x40]
push ecx
push esi
push eax
push edx
call fcn.02209200
mov edi, eax
add esp, 0x10
test edi, edi
je 0x22478bf
mov eax, dword [esp + 0x10]
push eax
call sym.edb500x.dll_FreeExpression
pop ebx
mov eax, edi
pop edi
pop esi
pop ebp
add esp, 0x24c
ret
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x1c], 1
mov edx, dword [ebx + 0x10]
push 0x44
push edx
call fcn.0226b127
mov edi, eax
mov eax, dword [ebx + 0x10]
add esp, 8
xor esi, esi
test eax, eax
jle 0x2247910
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + esi*4]
push ecx
push edi
call fcn.0226b1e2
mov eax, dword [ebx + 0x10]
add esp, 8
inc esi
cmp esi, eax
jge 0x2247910
push 0x227733c
push edi
call fcn.0226b1e2
mov eax, dword [ebx + 0x10]
add esp, 8
cmp esi, eax
jl 0x22478e3
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push 0
lea edx, [esp + 0x2c]
push edx
mov edx, dword [ebx + 4]
push eax
mov eax, dword [esp + 0x3c]
push 0
push 0
push ecx
mov ecx, dword [eax + 4]
push edi
push edx
push ecx
call fcn.02248450
push edi
mov esi, eax
call fcn.0226affd
add esp, 0x28
test esi, esi
jne 0x2247b7b
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x68]
mov ecx, dword [edx + 0x594]
lea edx, [esp + 0x3c]
mov dword [esp + 0x30], ecx
push edx
lea ecx, [esp + 0x30]
push ecx
push eax
call sym.edb500x.dll_QuerySelectCount
mov eax, dword [esp + 0x2c]
test eax, eax
mov dword [esp + 0x14], esi
jle 0x2247b6e
jmp 0x2247980
mov ecx, dword [ebp + 0x10]
mov esi, dword [ebp + 0x38]
mov eax, dword [ebp + 0xc]
sub ecx, esi
test ecx, ecx
jle 0x22479c8
mov ebx, ecx
mov edx, dword [eax]
mov esi, dword [edx + 0xa8]
mov ecx, dword [edx + 0x88]
mov edi, dword [esp + 0x264]
mov edx, dword [ebp + 0x3c]
add esi, edi
mov edi, dword [eax + 0x44]
add edi, edx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
add eax, 0x64
dec ebx
rep movsb byte es:[edi], byte [esi]
jne 0x2247991
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x68]
mov ecx, dword [ecx + 0x598]
xor eax, eax
test ecx, ecx
je 0x22479ec
mov edx, dword [esp + 0x14]
cmp edx, dword [ecx]
jae 0x22479ec
mov eax, dword [ecx + 4]
imul eax, edx
add eax, dword [ecx + 0x10]
mov edx, dword [eax]
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebp + 0x34]
mov eax, dword [eax]
mov dword [esp + 0x24], edx
xor edx, edx
test ecx, ecx
jle 0x2247a5e
imul eax, eax, 0x64
mov dword [esp + 0x1c], eax
xor ebx, ebx
lea esp, [esp]
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 0xc]
mov esi, dword [eax + ebx + 0x44]
mov ecx, dword [eax + ebx]
mov ecx, dword [ecx + 0x88]
mov edi, dword [esp + 0x24]
add eax, ebx
mov eax, dword [ebp + 0xc]
add esi, edi
mov edi, dword [esp + 0x1c]
mov edi, dword [edi + eax + 0x44]
add edi, dword [ebp + 0x3c]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
add dword [esp + 0x1c], 0x64
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x10]
inc edx
add ebx, 0x64
cmp edx, eax
jl 0x2247a10
mov ebx, ecx
mov edx, dword [esp + 0x260]
test byte [edx + 0x54], 4
je 0x2247a95
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x3c]
mov edx, dword [esp + 0x34]
push eax
mov eax, dword [edx + 0x598]
push ecx
push eax
call fcn.0222c940
add esp, 0xc
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x24], eax
je 0x2247b54
mov ecx, dword [ebp + 0x14]
push ecx
call fcn.0226b115
add esp, 4
test eax, eax
mov dword [esp + 0x20], eax
jne 0x2247ab3
mov esi, 0x446
jmp 0x2247b59
mov ecx, dword [ebp + 0x14]
mov esi, dword [ebp + 0x3c]
mov edx, ecx
shr ecx, 2
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x260]
test byte [edi + 0x54], 8
je 0x2247af2
mov eax, dword [esp + 0x20]
push eax
push edi
call fcn.02246f90
mov ecx, dword [esp + 0x28]
push ecx
mov esi, eax
call fcn.0226affd
add esp, 0xc
jmp 0x2247b15
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0x598]
lea edx, [esp + 0x20]
push edx
push ecx
call fcn.02264180
mov esi, eax
add esp, 8
test esi, esi
je 0x2247b15
mov esi, 0x446
mov ecx, dword [edi + 0x5c]
inc ecx
test esi, esi
mov dword [edi + 0x5c], ecx
jne 0x2247b59
test byte [edi + 0x54], 0x20
je 0x2247b45
mov edx, dword [esp + 0x20]
push edx
push edi
call fcn.02247230
add esp, 8
cmp eax, 2
je 0x2247b3e
cmp eax, 1
jne 0x2247b45
mov esi, 0x45f
jmp 0x2247b59
mov eax, dword [esp + 0x268]
mov dword [eax], 1
jmp 0x2247b59
mov esi, 0x3ff
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x2247980
mov ecx, dword [esp + 0x28]
push ecx
call fcn.02249200
add esp, 4
mov edx, dword [esp + 0x10]
push edx
call sym.edb500x.dll_FreeExpression
pop ebx
pop edi
mov eax, esi
pop esi
pop ebp
add esp, 0x24c
ret
mov eax, 0x439
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x24c
ret
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x60]
mov edx, dword [esp + 0xc]
mov dword [edx], 0
mov eax, dword [eax + 0xc]
test eax, eax
je 0x2247fba
cmp dword [eax], 1
jle 0x2247fba
mov dword [esp + 0xc], edx
mov dword [esp + 4], ecx
jmp fcn.022486e0
mov dword [esp + 0xc], edx
mov dword [esp + 4], ecx
jmp 0x2247700