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

Disassembly:
sub esp, 0x48
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov edx, dword [esp + 0x5c]
push ebx
push ebp
push esi
xor esi, esi
add ecx, 0x2c
mov dword [ecx - 0x10], 0xffffffff
push edi
mov dword [esp + 0x10], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x44], eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x48], edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x30], 0x9e
mov dword [esp + 0x24], ecx
mov dword [ecx], esi
cmp dword [esp + 0x60], esi
je 0x4ecf94
mov ecx, edx
test byte [ecx + 0x18], 6
je 0x4ecf5f
mov dword [esp + 0x60], esi
jmp 0x4ecf94
mov ebp, dword [eax + 0x14]
xor edi, edi
test ebp, ebp
jle 0x4ecf94
mov esi, dword [eax + 0x10]
mov ebx, esi
lea ecx, [ecx]
mov eax, dword [esp + 0x60]
mov ecx, dword [ebx]
call fcn.004ad170
test eax, eax
je 0x4ecf89
inc edi
add ebx, 0x10
cmp edi, ebp
jl 0x4ecf70
jmp 0x4ecf94
shl edi, 4
mov edx, dword [edi + esi + 0xc]
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + 4]
mov dword [esp + 0x54], eax
test eax, eax
je 0x4ed2b5
cmp dword [eax], 0
lea ecx, [eax + 8]
mov dword [esp + 0x40], 0
mov dword [esp + 0x18], ecx
jle 0x4ed284
nop
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x14], edx
test eax, eax
je 0x4ed049
test dword [eax + 8], 0x800
je 0x4ed049
mov ebx, dword [eax]
xor edi, edi
xor ebp, ebp
cmp dword [ebx], edi
jle 0x4ed03e
lea esi, [ebx + 0xc]
jmp 0x4ecff0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
push eax
mov eax, dword [esi]
push ecx
push edx
call fcn.004b5f00
add esp, 0xc
test eax, eax
je 0x4ed02e
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x70]
mov ebp, 1
add dword [esp + 0x10], ebp
mov dword [esp + 0x20], 2
mov dword [esp + 0x1c], eax
mov word [ecx + 0x20], di
inc edi
add esi, 0x18
cmp edi, dword [ebx]
jl 0x4ecff0
test ebp, ebp
jne 0x4ed26a
cmp dword [esp + 0x64], 0
je 0x4ed26a
cmp dword [esp + 0x60], 0
je 0x4ed061
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x48], edx
jne 0x4ed26a
cmp dword [esp + 0x64], 0
je 0x4ed109
mov ecx, dword [esp + 0x18]
mov esi, dword [ecx + 0xc]
test esi, esi
je 0x4ed07b
mov edi, esi
jmp 0x4ed081
mov edx, dword [esp + 0x14]
mov edi, dword [edx]
mov dl, byte [edi]
mov ebp, dword [esp + 0x64]
movzx ebx, byte [ebp]
movzx ebx, byte [ebx + 0x5eb2b0]
movzx eax, dl
movzx eax, byte [eax + 0x5eb2b0]
sub eax, ebx
mov ecx, edi
jne 0x4ed26a
sub ebp, edi
test dl, dl
je 0x4ed0cf
movzx eax, byte [ecx + ebp + 1]
movzx edi, byte [eax + 0x5eb2b0]
mov dl, byte [ecx + 1]
inc ecx
movzx eax, dl
movzx eax, byte [eax + 0x5eb2b0]
sub eax, edi
je 0x4ed0a8
jmp 0x4ed26a
test eax, eax
jne 0x4ed26a
mov eax, dword [esp + 0x5c]
cmp byte [eax + 0xc4], 2
jb 0x4ed109
test esi, esi
je 0x4ed109
mov eax, dword [eax + 0x10c]
test eax, eax
je 0x4ed109
mov ecx, dword [esp + 0x24]
cmp dword [eax], ecx
je 0x4ed103
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4ed0f6
jmp 0x4ed109
mov dword [eax], 0
mov eax, dword [esp + 0x20]
mov ecx, eax
inc eax
mov dword [esp + 0x20], eax
test ecx, ecx
jne 0x4ed120
mov edx, dword [esp + 0x18]
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x14]
movsx ebx, word [eax + 0x2a]
mov ecx, dword [eax + 4]
xor esi, esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], ecx
mov dword [esp + 0x50], ebx
test ebx, ebx
jle 0x4ed26a
mov edx, dword [esp + 0x68]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x5eb2b0]
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0x34]
mov ecx, dword [edx]
mov dl, byte [ecx]
movzx eax, dl
movzx eax, byte [eax + 0x5eb2b0]
sub eax, dword [esp + 0x2c]
jne 0x4ed24b
mov edi, dword [esp + 0x68]
sub edi, ecx
test dl, dl
je 0x4ed19c
movzx eax, byte [ecx + edi + 1]
movzx ebp, byte [eax + 0x5eb2b0]
mov dl, byte [ecx + 1]
inc ecx
movzx eax, dl
movzx eax, byte [eax + 0x5eb2b0]
sub eax, ebp
je 0x4ed175
jmp 0x4ed24b
test eax, eax
jne 0x4ed24b
cmp dword [esp + 0x10], 1
jne 0x4ed226
mov ecx, dword [esp + 0x18]
test byte [ecx + 0x24], 4
jne 0x4ed24b
mov edx, ecx
mov eax, dword [edx + 0x34]
test eax, eax
je 0x4ed226
mov ecx, dword [eax + 4]
xor ebp, ebp
mov dword [esp + 0x4c], ecx
test ecx, ecx
jle 0x4ed226
mov ebx, dword [eax]
mov ecx, dword [ebx]
mov dl, byte [ecx]
movzx eax, dl
movzx eax, byte [eax + 0x5eb2b0]
sub eax, dword [esp + 0x2c]
jne 0x4ed218
mov edi, dword [esp + 0x68]
sub edi, ecx
nop
test dl, dl
je 0x4ed214
movzx eax, byte [edi + ecx + 1]
movzx esi, byte [eax + 0x5eb2b0]
mov dl, byte [ecx + 1]
inc ecx
movzx eax, dl
movzx eax, byte [eax + 0x5eb2b0]
sub eax, esi
je 0x4ed1f0
jmp 0x4ed218
test eax, eax
je 0x4ed243
inc ebp
add ebx, 8
cmp ebp, dword [esp + 0x4c]
jl 0x4ed1d5
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x14]
movsx eax, word [edx + 0x28]
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], ecx
cmp esi, eax
jne 0x4ed25f
or eax, 0xffffffff
jmp 0x4ed262
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x50]
add dword [esp + 0x34], 0x10
inc esi
cmp esi, ebx
mov dword [esp + 0x38], esi
jl 0x4ed153
jmp 0x4ed26a
movsx eax, si
mov ecx, dword [esp + 0x70]
mov word [ecx + 0x20], ax
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x54]
add dword [esp + 0x18], 0x48
inc eax
cmp eax, dword [edx]
mov dword [esp + 0x40], eax
jl 0x4ecfc0
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4ed2b5
mov edx, dword [eax + 0x2c]
mov ecx, dword [esp + 0x70]
mov dword [ecx + 0x1c], edx
mov esi, dword [eax + 0x10]
mov edx, dword [esp + 0x24]
mov dword [edx], esi
test byte [eax + 0x24], 8
je 0x4ed2ac
or dword [ecx + 4], 0x100000
mov eax, esi
mov ecx, dword [eax + 0x48]
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x60], 0
jne 0x4ed4ed
cmp dword [esp + 0x64], 0
je 0x4ed4ed
cmp dword [esp + 0x20], 0
jne 0x4ed4ed
mov esi, dword [esp + 0x5c]
xor ebx, ebx
mov dword [esp + 0x14], ebx
cmp dword [esi + 0x78], ebx
je 0x4ed339
movzx edi, byte [esi + 0x8c]
cmp edi, 0x75
je 0x4ed310
mov eax, dword [esp + 0x64]
mov ecx, 0x5e889c
call fcn.004ad170
test eax, eax
jne 0x4ed310
mov edx, dword [esp + 0x70]
mov dword [edx + 0x1c], 1
jmp 0x4ed332
cmp edi, 0x74
je 0x4ed339
mov eax, dword [esp + 0x64]
mov ecx, 0x5f0f08
call fcn.004ad170
test eax, eax
jne 0x4ed339
mov eax, dword [esp + 0x70]
mov dword [eax + 0x1c], 0
mov ebx, dword [esi + 0x78]
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x6c]
mov ecx, 0x200
test word [eax + 0x18], cx
je 0x4ed376
mov edi, dword [eax + 8]
test edi, edi
je 0x4ed376
mov eax, dword [esp + 0x64]
mov ecx, str.excluded
call fcn.004ad170
test eax, eax
jne 0x4ed376
mov edx, dword [edi + 0x14]
mov ebx, dword [edx + 0x18]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x14], ebx
mov dword [eax + 0x1c], 2
test ebx, ebx
je 0x4ed4ed
movsx eax, word [ebx + 0x2a]
mov ecx, dword [ebx + 0x48]
mov esi, dword [ebx + 4]
xor edi, edi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], 1
mov dword [esp + 0x40], eax
test eax, eax
jle 0x4ed413
mov edx, dword [esp + 0x68]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x5eb2b0]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esi]
mov dl, byte [ecx]
movzx eax, dl
movzx eax, byte [eax + 0x5eb2b0]
sub eax, dword [esp + 0x2c]
jne 0x4ed3fc
mov ebp, dword [esp + 0x68]
sub ebp, ecx
mov edi, edi
test dl, dl
je 0x4ed3f8
movzx eax, byte [ecx + ebp + 1]
movzx ebx, byte [eax + 0x5eb2b0]
mov dl, byte [ecx + 1]
inc ecx
movzx eax, dl
movzx eax, byte [eax + 0x5eb2b0]
sub eax, ebx
mov ebx, dword [esp + 0x14]
je 0x4ed3d0
jmp 0x4ed3fc
test eax, eax
je 0x4ed408
inc edi
add esi, 0x10
cmp edi, dword [esp + 0x40]
jl 0x4ed3b4
jmp 0x4ed413
movsx ecx, word [ebx + 0x28]
cmp edi, ecx
jne 0x4ed413
or edi, 0xffffffff
mov ebp, dword [esp + 0x40]
cmp edi, ebp
jl 0x4ed439
mov esi, dword [esp + 0x68]
call fcn.004b6710
test eax, eax
je 0x4ed431
test byte [ebx + 0x24], 0x40
jne 0x4ed431
or edi, 0xffffffff
cmp edi, ebp
jge 0x4ed4ed
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 0x1c]
mov edx, 1
add dword [esp + 0x10], edx
cmp ecx, 2
jne 0x4ed491
mov edx, dword [esp + 0x5c]
cmp byte [edx + 0xc4], cl
jb 0x4ed471
mov word [eax + 0x20], di
mov eax, dword [esp + 0x24]
mov dword [eax], ebx
mov dword [esp + 0x30], 0x9e
jmp 0x4ed4ed
mov ecx, dword [esp + 0x6c]
mov edx, dword [ecx + 8]
mov ecx, dword [edx + 0x18]
add ecx, edi
or dword [eax + 4], 0x400000
mov dword [eax + 0x1c], ecx
mov dword [esp + 0x30], 0xa4
jmp 0x4ed4ed
test edi, edi
jge 0x4ed49b
mov byte [eax + 1], 0x44
jmp 0x4ed4db
test ecx, ecx
jne 0x4ed4c3
cmp edi, 0x20
jl 0x4ed4b3
mov ecx, dword [esp + 0x5c]
or edx, 0xffffffff
or dword [ecx + 0x84], edx
jmp 0x4ed4db
mov ecx, edi
shl edx, cl
mov ecx, dword [esp + 0x5c]
or dword [ecx + 0x84], edx
jmp 0x4ed4db
cmp edi, 0x20
jl 0x4ed4cd
or edx, 0xffffffff
jmp 0x4ed4d1
mov ecx, edi
shl edx, cl
mov ecx, dword [esp + 0x5c]
or dword [ecx + 0x88], edx
mov edx, dword [esp + 0x24]
mov dword [edx], ebx
mov word [eax + 0x20], di
mov dword [esp + 0x30], 0x4d
cmp dword [esp + 0x10], 0
jne 0x4ed53d
cmp dword [esp + 0x20], 1
jne 0x4ed53d
cmp dword [esp + 0x1c], 0
je 0x4ed53d
mov eax, dword [esp + 0x6c]
test byte [eax + 0x18], 0x20
jne 0x4ed53d
mov esi, dword [esp + 0x68]
call fcn.004b6710
test eax, eax
je 0x4ed53d
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x10]
test byte [edx + 0x24], 0x40
jne 0x4ed53d
mov eax, dword [esp + 0x70]
or ecx, 0xffffffff
mov dword [esp + 0x10], 1
mov word [eax + 0x20], cx
mov byte [eax + 1], 0x44
mov edx, dword [esp + 0x6c]
test byte [edx + 0x18], 0x80
je 0x4ed5f0
cmp dword [esp + 0x10], 0
jne 0x4ed7af
cmp dword [esp + 0x64], 0
jne 0x4ed5fb
mov eax, dword [edx + 8]
mov ecx, dword [eax]
xor ebx, ebx
mov dword [esp + 0x54], ecx
test ecx, ecx
jle 0x4ed5fb
add eax, 8
mov dword [esp + 0x40], eax
jmp 0x4ed580
mov ecx, dword [eax]
test ecx, ecx
je 0x4ed5d8
mov al, byte [ecx]
mov ebp, dword [esp + 0x68]
movzx esi, byte [ebp]
movzx esi, byte [esi + 0x5eb2b0]
movzx edx, al
movzx edx, byte [edx + 0x5eb2b0]
sub edx, esi
mov edi, ecx
jne 0x4ed5d8
sub ebp, ecx
lea esp, [esp]
test al, al
je 0x4ed5d4
movzx edx, byte [edi + ebp + 1]
movzx esi, byte [edx + 0x5eb2b0]
mov al, byte [edi + 1]
inc edi
movzx edx, al
movzx edx, byte [edx + 0x5eb2b0]
sub edx, esi
je 0x4ed5b0
jmp 0x4ed5d8
test edx, edx
je 0x4ed63c
mov eax, dword [esp + 0x40]
inc ebx
add eax, 0x18
cmp ebx, dword [esp + 0x54]
mov dword [esp + 0x40], eax
jl 0x4ed580
mov edx, dword [esp + 0x6c]
jmp 0x4ed5fb
cmp dword [esp + 0x10], 0
jne 0x4ed7af
mov eax, dword [edx + 0xc]
inc dword [esp + 0x3c]
mov dword [esp + 0x6c], eax
test eax, eax
jne 0x4ecf94
cmp dword [esp + 0x64], eax
jne 0x4ed7c0
mov esi, dword [esp + 0x70]
test byte [esi + 4], 0x40
je 0x4ed713
mov ecx, dword [esp + 0x24]
pop edi
mov byte [esi], 0x6a
pop esi
pop ebp
mov dword [ecx], eax
mov eax, 1
pop ebx
add esp, 0x48
ret
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + 8]
lea edx, [ebx + ebx*2]
mov eax, dword [eax + edx*8 + 4]
mov edx, dword [esp + 0x6c]
test byte [edx + 0x18], 1
jne 0x4ed679
test byte [eax + 4], 2
je 0x4ed679
mov esi, dword [esp + 0x5c]
push ecx
push str.misuse_of_aliased_aggregate__s
call fcn.004d3500
add esp, 8
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 0x48
ret
mov cl, byte [eax]
cmp cl, 0xa4
jne 0x4ed683
mov cl, byte [eax + 0x26]
cmp cl, 0xa5
jne 0x4ed68d
mov ecx, dword [eax + 0x14]
jmp 0x4ed697
cmp cl, 0x7f
jne 0x4ed6bc
mov eax, dword [eax + 0x14]
mov ecx, dword [eax]
mov eax, dword [ecx]
cmp eax, 1
je 0x4ed6bc
mov esi, dword [esp + 0x5c]
push str.row_value_misused
call fcn.004d3500
add esp, 4
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 0x48
ret
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x5c]
mov ecx, dword [edx + 8]
push eax
push 0x5d3001
push esi
push edi
mov eax, ebx
call fcn.004ecdf0
add esp, 0x10
cmp byte [edi + 0xc4], 2
jb 0x4ed8b6
mov eax, dword [edi + 0x10c]
test eax, eax
je 0x4ed8b6
cmp dword [eax], esi
je 0x4ed708
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4ed6f8
jmp 0x4ed8b6
mov dword [eax], 0
jmp 0x4ed8b6
mov ebx, dword [esi + 8]
mov ecx, ebx
mov dl, byte [ecx]
movzx eax, dl
movzx eax, byte [eax + 0x5eb2b0]
sub eax, 0x74
jne 0x4ed758
mov edi, str.true
sub edi, ebx
test dl, dl
je 0x4ed754
movzx eax, byte [edi + ecx + 1]
movzx ebp, byte [eax + 0x5eb2b0]
mov dl, byte [ecx + 1]
inc ecx
movzx eax, dl
movzx eax, byte [eax + 0x5eb2b0]
sub eax, ebp
je 0x4ed730
jmp 0x4ed758
test eax, eax
je 0x4ed79f
mov ecx, ebx
mov dl, byte [ecx]
movzx eax, dl
movzx eax, byte [eax + 0x5eb2b0]
sub eax, 0x66
jne 0x4ed7c0
mov edi, str.false
sub edi, ebx
test dl, dl
je 0x4ed79b
movzx eax, byte [edi + ecx + 1]
movzx ebx, byte [eax + 0x5eb2b0]
mov dl, byte [ecx + 1]
inc ecx
movzx eax, dl
movzx eax, byte [eax + 0x5eb2b0]
sub eax, ebx
je 0x4ed772
mov eax, str.no_such_column
jmp 0x4ed7cc
test eax, eax
jne 0x4ed7c0
pop edi
mov byte [esi], 0x9b
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x48
ret
mov ebp, dword [esp + 0x10]
cmp ebp, 1
je 0x4ed838
test ebp, ebp
jne 0x4ed7c7
mov eax, str.no_such_column
jmp 0x4ed7cc
mov eax, str.ambiguous_column_name
cmp dword [esp + 0x60], 0
mov esi, dword [esp + 0x5c]
je 0x4ed7f6
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x64]
push edx
push ecx
push eax
push str._s:__s._s._s
call fcn.004d3500
add esp, 0x14
jmp 0x4ed825
cmp dword [esp + 0x64], 0
mov edx, dword [esp + 0x68]
push edx
je 0x4ed817
mov ecx, dword [esp + 0x68]
push ecx
push eax
push str._s:__s._s
call fcn.004d3500
add esp, 0x10
jmp 0x4ed825
push eax
push str._s:__s
call fcn.004d3500
add esp, 0xc
mov eax, dword [esp + 0x5c]
mov ebp, dword [esp + 0x10]
mov byte [eax + 0x11], 1
mov eax, dword [esp + 0x48]
inc dword [eax + 0x14]
mov esi, dword [esp + 0x70]
movzx eax, word [esi + 0x20]
xor ebx, ebx
cmp ax, bx
jl 0x4ed86c
mov edi, dword [esp + 0x1c]
cmp edi, ebx
je 0x4ed86c
movsx ecx, ax
cmp ecx, 0x40
jl 0x4ed85a
lea ecx, [ebx + 0x3f]
mov eax, 1
xor edx, edx
call fcn.0058e5a0
or dword [edi + 0x38], eax
or dword [edi + 0x3c], edx
mov eax, dword [esi + 0xc]
cmp eax, ebx
je 0x4ed881
mov ecx, dword [esp + 0x44]
push eax
push ecx
call fcn.004c6c60
add esp, 8
mov eax, dword [esi + 0x10]
mov dword [esi + 0xc], ebx
cmp eax, ebx
je 0x4ed899
mov edx, dword [esp + 0x44]
push eax
push edx
call fcn.004c6c60
add esp, 8
mov al, byte [esp + 0x30]
or dword [esi + 4], 0x800000
mov dword [esi + 0x10], ebx
mov byte [esi], al
cmp ebp, 1
jne 0x4ed66c
mov edi, dword [esp + 0x5c]
test dword [esi + 4], 0x400000
jne 0x4ed8d5
mov ecx, dword [esp + 0x6c]
mov edx, dword [ecx + 4]
push edx
mov edx, dword [esp + 0x2c]
push esi
push edi
call fcn.004d7d80
add esp, 0xc
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x6c]
mov ecx, 1
add dword [eax + 0x10], ecx
cmp eax, edx
je 0x4ed8fa
lea esp, [esp]
mov eax, dword [eax + 0xc]
add dword [eax + 0x10], ecx
cmp eax, edx
jne 0x4ed8f0
pop edi
pop esi
pop ebp
mov eax, ecx
pop ebx
add esp, 0x48
ret