Function at 0x4ecd40
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 0x4ecdd4
mov ecx, edx
test byte [ecx + 0x18], 6
je 0x4ecd9f
mov dword [esp + 0x60], esi
jmp 0x4ecdd4
mov ebp, dword [eax + 0x14]
xor edi, edi
test ebp, ebp
jle 0x4ecdd4
mov esi, dword [eax + 0x10]
mov ebx, esi
lea ecx, [ecx]
mov eax, dword [esp + 0x60]
mov ecx, dword [ebx]
call fcn.004acfb0
test eax, eax
je 0x4ecdc9
inc edi
add ebx, 0x10
cmp edi, ebp
jl 0x4ecdb0
jmp 0x4ecdd4
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 0x4ed0f5
cmp dword [eax], 0
lea ecx, [eax + 8]
mov dword [esp + 0x40], 0
mov dword [esp + 0x18], ecx
jle 0x4ed0c4
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 0x4ece89
test dword [eax + 8], 0x800
je 0x4ece89
mov ebx, dword [eax]
xor edi, edi
xor ebp, ebp
cmp dword [ebx], edi
jle 0x4ece7e
lea esi, [ebx + 0xc]
jmp 0x4ece30
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.004b5d40
add esp, 0xc
test eax, eax
je 0x4ece6e
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 0x4ece30
test ebp, ebp
jne 0x4ed0aa
cmp dword [esp + 0x64], 0
je 0x4ed0aa
cmp dword [esp + 0x60], 0
je 0x4ecea1
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x48], edx
jne 0x4ed0aa
cmp dword [esp + 0x64], 0
je 0x4ecf49
mov ecx, dword [esp + 0x18]
mov esi, dword [ecx + 0xc]
test esi, esi
je 0x4ecebb
mov edi, esi
jmp 0x4ecec1
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 + 0x5eb370]
movzx eax, dl
movzx eax, byte [eax + 0x5eb370]
sub eax, ebx
mov ecx, edi
jne 0x4ed0aa
sub ebp, edi
test dl, dl
je 0x4ecf0f
movzx eax, byte [ecx + ebp + 1]
movzx edi, byte [eax + 0x5eb370]
mov dl, byte [ecx + 1]
inc ecx
movzx eax, dl
movzx eax, byte [eax + 0x5eb370]
sub eax, edi
je 0x4ecee8
jmp 0x4ed0aa
test eax, eax
jne 0x4ed0aa
mov eax, dword [esp + 0x5c]
cmp byte [eax + 0xc4], 2
jb 0x4ecf49
test esi, esi
je 0x4ecf49
mov eax, dword [eax + 0x10c]
test eax, eax
je 0x4ecf49
mov ecx, dword [esp + 0x24]
cmp dword [eax], ecx
je 0x4ecf43
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4ecf36
jmp 0x4ecf49
mov dword [eax], 0
mov eax, dword [esp + 0x20]
mov ecx, eax
inc eax
mov dword [esp + 0x20], eax
test ecx, ecx
jne 0x4ecf60
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 0x4ed0aa
mov edx, dword [esp + 0x68]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x5eb370]
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 + 0x5eb370]
sub eax, dword [esp + 0x2c]
jne 0x4ed08b
mov edi, dword [esp + 0x68]
sub edi, ecx
test dl, dl
je 0x4ecfdc
movzx eax, byte [ecx + edi + 1]
movzx ebp, byte [eax + 0x5eb370]
mov dl, byte [ecx + 1]
inc ecx
movzx eax, dl
movzx eax, byte [eax + 0x5eb370]
sub eax, ebp
je 0x4ecfb5
jmp 0x4ed08b
test eax, eax
jne 0x4ed08b
cmp dword [esp + 0x10], 1
jne 0x4ed066
mov ecx, dword [esp + 0x18]
test byte [ecx + 0x24], 4
jne 0x4ed08b
mov edx, ecx
mov eax, dword [edx + 0x34]
test eax, eax
je 0x4ed066
mov ecx, dword [eax + 4]
xor ebp, ebp
mov dword [esp + 0x4c], ecx
test ecx, ecx
jle 0x4ed066
mov ebx, dword [eax]
mov ecx, dword [ebx]
mov dl, byte [ecx]
movzx eax, dl
movzx eax, byte [eax + 0x5eb370]
sub eax, dword [esp + 0x2c]
jne 0x4ed058
mov edi, dword [esp + 0x68]
sub edi, ecx
nop
test dl, dl
je 0x4ed054
movzx eax, byte [edi + ecx + 1]
movzx esi, byte [eax + 0x5eb370]
mov dl, byte [ecx + 1]
inc ecx
movzx eax, dl
movzx eax, byte [eax + 0x5eb370]
sub eax, esi
je 0x4ed030
jmp 0x4ed058
test eax, eax
je 0x4ed083
inc ebp
add ebx, 8
cmp ebp, dword [esp + 0x4c]
jl 0x4ed015
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 0x4ed09f
or eax, 0xffffffff
jmp 0x4ed0a2
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 0x4ecf93
jmp 0x4ed0aa
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 0x4ece00
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4ed0f5
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 0x4ed0ec
or dword [ecx + 4], 0x100000
mov eax, esi
mov ecx, dword [eax + 0x48]
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x60], 0
jne 0x4ed32d
cmp dword [esp + 0x64], 0
je 0x4ed32d
cmp dword [esp + 0x20], 0
jne 0x4ed32d
mov esi, dword [esp + 0x5c]
xor ebx, ebx
mov dword [esp + 0x14], ebx
cmp dword [esi + 0x78], ebx
je 0x4ed179
movzx edi, byte [esi + 0x8c]
cmp edi, 0x75
je 0x4ed150
mov eax, dword [esp + 0x64]
mov ecx, 0x5e895c
call fcn.004acfb0
test eax, eax
jne 0x4ed150
mov edx, dword [esp + 0x70]
mov dword [edx + 0x1c], 1
jmp 0x4ed172
cmp edi, 0x74
je 0x4ed179
mov eax, dword [esp + 0x64]
mov ecx, 0x5f0fc8
call fcn.004acfb0
test eax, eax
jne 0x4ed179
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 0x4ed1b6
mov edi, dword [eax + 8]
test edi, edi
je 0x4ed1b6
mov eax, dword [esp + 0x64]
mov ecx, str.excluded
call fcn.004acfb0
test eax, eax
jne 0x4ed1b6
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 0x4ed32d
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 0x4ed253
mov edx, dword [esp + 0x68]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x5eb370]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esi]
mov dl, byte [ecx]
movzx eax, dl
movzx eax, byte [eax + 0x5eb370]
sub eax, dword [esp + 0x2c]
jne 0x4ed23c
mov ebp, dword [esp + 0x68]
sub ebp, ecx
mov edi, edi
test dl, dl
je 0x4ed238
movzx eax, byte [ecx + ebp + 1]
movzx ebx, byte [eax + 0x5eb370]
mov dl, byte [ecx + 1]
inc ecx
movzx eax, dl
movzx eax, byte [eax + 0x5eb370]
sub eax, ebx
mov ebx, dword [esp + 0x14]
je 0x4ed210
jmp 0x4ed23c
test eax, eax
je 0x4ed248
inc edi
add esi, 0x10
cmp edi, dword [esp + 0x40]
jl 0x4ed1f4
jmp 0x4ed253
movsx ecx, word [ebx + 0x28]
cmp edi, ecx
jne 0x4ed253
or edi, 0xffffffff
mov ebp, dword [esp + 0x40]
cmp edi, ebp
jl 0x4ed279
mov esi, dword [esp + 0x68]
call fcn.004b6550
test eax, eax
je 0x4ed271
test byte [ebx + 0x24], 0x40
jne 0x4ed271
or edi, 0xffffffff
cmp edi, ebp
jge 0x4ed32d
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 0x1c]
mov edx, 1
add dword [esp + 0x10], edx
cmp ecx, 2
jne 0x4ed2d1
mov edx, dword [esp + 0x5c]
cmp byte [edx + 0xc4], cl
jb 0x4ed2b1
mov word [eax + 0x20], di
mov eax, dword [esp + 0x24]
mov dword [eax], ebx
mov dword [esp + 0x30], 0x9e
jmp 0x4ed32d
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 0x4ed32d
test edi, edi
jge 0x4ed2db
mov byte [eax + 1], 0x44
jmp 0x4ed31b
test ecx, ecx
jne 0x4ed303
cmp edi, 0x20
jl 0x4ed2f3
mov ecx, dword [esp + 0x5c]
or edx, 0xffffffff
or dword [ecx + 0x84], edx
jmp 0x4ed31b
mov ecx, edi
shl edx, cl
mov ecx, dword [esp + 0x5c]
or dword [ecx + 0x84], edx
jmp 0x4ed31b
cmp edi, 0x20
jl 0x4ed30d
or edx, 0xffffffff
jmp 0x4ed311
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 0x4ed37d
cmp dword [esp + 0x20], 1
jne 0x4ed37d
cmp dword [esp + 0x1c], 0
je 0x4ed37d
mov eax, dword [esp + 0x6c]
test byte [eax + 0x18], 0x20
jne 0x4ed37d
mov esi, dword [esp + 0x68]
call fcn.004b6550
test eax, eax
je 0x4ed37d
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x10]
test byte [edx + 0x24], 0x40
jne 0x4ed37d
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 0x4ed430
cmp dword [esp + 0x10], 0
jne 0x4ed5ef
cmp dword [esp + 0x64], 0
jne 0x4ed43b
mov eax, dword [edx + 8]
mov ecx, dword [eax]
xor ebx, ebx
mov dword [esp + 0x54], ecx
test ecx, ecx
jle 0x4ed43b
add eax, 8
mov dword [esp + 0x40], eax
jmp 0x4ed3c0
mov ecx, dword [eax]
test ecx, ecx
je 0x4ed418
mov al, byte [ecx]
mov ebp, dword [esp + 0x68]
movzx esi, byte [ebp]
movzx esi, byte [esi + 0x5eb370]
movzx edx, al
movzx edx, byte [edx + 0x5eb370]
sub edx, esi
mov edi, ecx
jne 0x4ed418
sub ebp, ecx
lea esp, [esp]
test al, al
je 0x4ed414
movzx edx, byte [edi + ebp + 1]
movzx esi, byte [edx + 0x5eb370]
mov al, byte [edi + 1]
inc edi
movzx edx, al
movzx edx, byte [edx + 0x5eb370]
sub edx, esi
je 0x4ed3f0
jmp 0x4ed418
test edx, edx
je 0x4ed47c
mov eax, dword [esp + 0x40]
inc ebx
add eax, 0x18
cmp ebx, dword [esp + 0x54]
mov dword [esp + 0x40], eax
jl 0x4ed3c0
mov edx, dword [esp + 0x6c]
jmp 0x4ed43b
cmp dword [esp + 0x10], 0
jne 0x4ed5ef
mov eax, dword [edx + 0xc]
inc dword [esp + 0x3c]
mov dword [esp + 0x6c], eax
test eax, eax
jne 0x4ecdd4
cmp dword [esp + 0x64], eax
jne 0x4ed600
mov esi, dword [esp + 0x70]
test byte [esi + 4], 0x40
je 0x4ed553
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 0x4ed4b9
test byte [eax + 4], 2
je 0x4ed4b9
mov esi, dword [esp + 0x5c]
push ecx
push str.misuse_of_aliased_aggregate__s
call fcn.004d3340
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 0x4ed4c3
mov cl, byte [eax + 0x26]
cmp cl, 0xa5
jne 0x4ed4cd
mov ecx, dword [eax + 0x14]
jmp 0x4ed4d7
cmp cl, 0x7f
jne 0x4ed4fc
mov eax, dword [eax + 0x14]
mov ecx, dword [eax]
mov eax, dword [ecx]
cmp eax, 1
je 0x4ed4fc
mov esi, dword [esp + 0x5c]
push str.row_value_misused
call fcn.004d3340
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.004ecc30
add esp, 0x10
cmp byte [edi + 0xc4], 2
jb 0x4ed6f6
mov eax, dword [edi + 0x10c]
test eax, eax
je 0x4ed6f6
cmp dword [eax], esi
je 0x4ed548
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4ed538
jmp 0x4ed6f6
mov dword [eax], 0
jmp 0x4ed6f6
mov ebx, dword [esi + 8]
mov ecx, ebx
mov dl, byte [ecx]
movzx eax, dl
movzx eax, byte [eax + 0x5eb370]
sub eax, 0x74
jne 0x4ed598
mov edi, str.true
sub edi, ebx
test dl, dl
je 0x4ed594
movzx eax, byte [edi + ecx + 1]
movzx ebp, byte [eax + 0x5eb370]
mov dl, byte [ecx + 1]
inc ecx
movzx eax, dl
movzx eax, byte [eax + 0x5eb370]
sub eax, ebp
je 0x4ed570
jmp 0x4ed598
test eax, eax
je 0x4ed5df
mov ecx, ebx
mov dl, byte [ecx]
movzx eax, dl
movzx eax, byte [eax + 0x5eb370]
sub eax, 0x66
jne 0x4ed600
mov edi, str.false
sub edi, ebx
test dl, dl
je 0x4ed5db
movzx eax, byte [edi + ecx + 1]
movzx ebx, byte [eax + 0x5eb370]
mov dl, byte [ecx + 1]
inc ecx
movzx eax, dl
movzx eax, byte [eax + 0x5eb370]
sub eax, ebx
je 0x4ed5b2
mov eax, str.no_such_column
jmp 0x4ed60c
test eax, eax
jne 0x4ed600
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 0x4ed678
test ebp, ebp
jne 0x4ed607
mov eax, str.no_such_column
jmp 0x4ed60c
mov eax, str.ambiguous_column_name
cmp dword [esp + 0x60], 0
mov esi, dword [esp + 0x5c]
je 0x4ed636
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.004d3340
add esp, 0x14
jmp 0x4ed665
cmp dword [esp + 0x64], 0
mov edx, dword [esp + 0x68]
push edx
je 0x4ed657
mov ecx, dword [esp + 0x68]
push ecx
push eax
push str._s:__s._s
call fcn.004d3340
add esp, 0x10
jmp 0x4ed665
push eax
push str._s:__s
call fcn.004d3340
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 0x4ed6ac
mov edi, dword [esp + 0x1c]
cmp edi, ebx
je 0x4ed6ac
movsx ecx, ax
cmp ecx, 0x40
jl 0x4ed69a
lea ecx, [ebx + 0x3f]
mov eax, 1
xor edx, edx
call fcn.0058e3c0
or dword [edi + 0x38], eax
or dword [edi + 0x3c], edx
mov eax, dword [esi + 0xc]
cmp eax, ebx
je 0x4ed6c1
mov ecx, dword [esp + 0x44]
push eax
push ecx
call fcn.004c6ab0
add esp, 8
mov eax, dword [esi + 0x10]
mov dword [esi + 0xc], ebx
cmp eax, ebx
je 0x4ed6d9
mov edx, dword [esp + 0x44]
push eax
push edx
call fcn.004c6ab0
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 0x4ed4ac
mov edi, dword [esp + 0x5c]
test dword [esi + 4], 0x400000
jne 0x4ed715
mov ecx, dword [esp + 0x6c]
mov edx, dword [ecx + 4]
push edx
mov edx, dword [esp + 0x2c]
push esi
push edi
call fcn.004d7bc0
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 0x4ed73a
lea esp, [esp]
mov eax, dword [eax + 0xc]
add dword [eax + 0x10], ecx
cmp eax, edx
jne 0x4ed730
pop edi
pop esi
pop ebp
mov eax, ecx
pop ebx
add esp, 0x48
ret