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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x84
and dword [esp + 0x3c], 0
and dword [esp + 0x1c], 0
push ebx
push esi
mov esi, ecx
mov ebx, edx
push edi
mov dword [esp + 0x18], esi
mov eax, dword [esi]
mov edi, dword [esi + 8]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x38]
dec eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x34], eax
dec eax
mov dword [esi + 0x38], eax
mov edx, dword [ebx + 0x30]
mov dword [esp + 0x40], eax
mov al, byte [ebx]
mov byte [esp + 0xf], al
mov ecx, dword [edx]
mov dword [esp + 0x20], edx
mov dword [esp + 0x3c], ecx
cmp al, 0x87
je 0x49cc96
mov eax, dword [esp + 0x30]
mov dword [esp + 0x10], 1
cmp byte [eax + 0x57], 0
jne 0x49cc96
imul eax, ecx, 0x14
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x1c]
mov edi, dword [esp + 0x10]
cmp edi, dword [eax]
mov edi, dword [esp + 0x24]
jg 0x49cc96
xor eax, eax
mov dword [esp + 0x2c], eax
test ecx, ecx
jle 0x49cc1a
lea eax, [edx + 0x18]
mov dword [esp + 0x1c], eax
jmp 0x49cbff
mov eax, dword [esp + 0x1c]
movzx eax, word [eax]
cmp eax, dword [esp + 0x10]
je 0x49cc84
mov eax, dword [esp + 0x2c]
add dword [esp + 0x1c], 0x14
inc eax
mov dword [esp + 0x2c], eax
cmp eax, ecx
jl 0x49cbfb
cmp eax, ecx
jne 0x49cc84
mov ecx, dword [esp + 0x30]
mov edx, 0x9b
push 0
call fcn.0047c741
pop ecx
mov ecx, eax
test ecx, ecx
je 0x49ccf1
mov eax, dword [esp + 0x10]
or dword [ecx + 4], 0x800
mov edx, dword [esp + 0x20]
mov dword [ecx + 8], eax
push ecx
mov ecx, esi
call fcn.0047d69e
mov edx, eax
mov dword [esp + 0x24], edx
mov dword [ebx + 0x30], edx
pop ecx
test edx, edx
je 0x49cc80
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov word [eax + edx + 0x18], cx
mov ecx, dword [esp + 0x3c]
inc ecx
add eax, 0x14
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x14], eax
jmp 0x49cc84
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
inc dword [esp + 0x10]
cmp byte [eax + 0x57], 0
je 0x49cbd5
lea eax, [ecx*4 + 4]
mov ecx, dword [esp + 0x30]
push 0
push eax
call fcn.0045101b
mov dword [esp + 0x54], eax
pop ecx
pop ecx
test eax, eax
je 0x49ccf9
mov ecx, dword [esp + 0x3c]
xor edx, edx
inc edx
mov dword [eax], ecx
cmp ecx, edx
jl 0x49cce0
mov edi, dword [esp + 0x20]
mov esi, eax
add edi, 0x18
movzx eax, word [edi]
lea edi, [edi + 0x14]
dec eax
mov dword [esi + edx*4], eax
inc edx
cmp edx, ecx
jle 0x49ccc9
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
push ecx
mov edx, ebx
mov ecx, esi
call fcn.0049bd60
pop ecx
mov dword [esp + 0x50], eax
jmp 0x49ccfe
push 7
pop eax
jmp 0x49d2e4
and dword [esp + 0x50], 0
mov al, byte [esp + 0xf]
cmp al, 0x87
jne 0x49cd10
and dword [esp + 0x2c], 0
jmp 0x49cda0
mov eax, dword [ebx + 0x1c]
push 0
mov ecx, dword [eax]
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x14], ecx
inc ecx
lea edx, [eax + 1]
add eax, ecx
push edx
push 0
mov dword [esp + 0x38], edx
mov ecx, edi
push 0x47
pop edx
mov dword [esi + 0x2c], eax
call fcn.0046b9a1
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [esp + 0x30]
push 1
call fcn.0049af8e
mov dword [esp + 0x2c], eax
pop ecx
test eax, eax
je 0x49cd98
and dword [esp + 0x44], 0
cmp dword [esp + 0x10], 0
jle 0x49cd98
mov edi, dword [esp + 0x44]
add eax, 0x14
mov dword [esp + 0x14], eax
push edi
mov edx, ebx
mov ecx, esi
call fcn.0049bd21
pop ecx
mov ecx, dword [esp + 0x14]
mov dword [ecx], eax
add ecx, 4
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], ecx
mov eax, dword [eax + 0x10]
mov byte [edi + eax], 0
inc edi
cmp edi, dword [esp + 0x10]
jl 0x49cd6a
mov edi, dword [esp + 0x24]
mov al, byte [esp + 0xf]
cmp al, 0x86
jne 0x49cde8
mov ecx, dword [esp + 0x30]
test dword [ecx + 0x50], 0x200000
jne 0x49cde8
lea ecx, [ebx + 0x34]
cmp dword [ecx], 0
je 0x49cde8
xor edx, edx
mov edi, ebx
inc edx
cmp byte [edi], al
jne 0x49cdc9
mov edi, dword [ecx]
inc edx
lea ecx, [edi + 0x34]
cmp dword [ecx], 0
jne 0x49cdba
mov edi, dword [esp + 0x24]
cmp edx, 3
jle 0x49cde8
lea eax, [edx - 3]
mov ecx, ebx
shr eax, 1
inc eax
mov ecx, dword [ecx + 0x34]
sub eax, 1
jne 0x49cdda
mov dword [esp + 0x44], ecx
jmp 0x49cdee
mov ecx, ebx
mov dword [esp + 0x44], ebx
mov eax, dword [ecx + 0x34]
xor edx, edx
mov dword [ecx + 0x34], edx
push edx
mov dword [esp + 0x14], eax
mov dword [eax + 0x38], edx
mov edx, dword [esp + 0x24]
mov ecx, dword [esi]
call fcn.0047d093
mov ecx, dword [esp + 0x14]
mov edx, ebx
mov dword [esp], str.ORDER
mov dword [ecx + 0x30], eax
mov ecx, esi
push dword [ebx + 0x30]
call fcn.0047b1db
mov eax, dword [esp + 0x18]
mov ecx, esi
push str.ORDER
mov edx, eax
push dword [eax + 0x30]
call fcn.0047b1db
push dword [esp + 0x44]
mov edx, ebx
mov ecx, esi
call fcn.0049bbfe
xor edx, edx
add esp, 0x14
cmp dword [ebx + 8], edx
je 0x49ce9e
cmp byte [esp + 0xf], 0x87
jne 0x49ce9e
mov eax, dword [esi + 0x2c]
inc eax
mov dword [esp + 0x38], eax
lea ecx, [eax + 1]
mov dword [esp + 0x14], ecx
mov dword [esi + 0x2c], ecx
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x49ce72
inc ecx
jmp 0x49ce75
mov ecx, dword [ebx + 8]
push edx
push eax
push ecx
push 0x50
pop edx
mov ecx, edi
call fcn.0046b9a1
add esp, 0xc
mov ecx, edi
push 0
push dword [esp + 0x18]
push dword [esp + 0x40]
push 0x50
pop edx
call fcn.0046b9a1
add esp, 0xc
jmp 0x49cea6
mov dword [esp + 0x14], edx
mov dword [esp + 0x38], edx
mov edx, dword [ebx + 0x3c]
test edx, edx
je 0x49ceb6
mov ecx, dword [esp + 0x30]
call fcn.0047cbeb
and dword [ebx + 0x3c], 0
mov eax, dword [esi + 0x2c]
inc eax
mov byte [esp + 0x74], 0xd
mov dword [esp + 0x20], eax
mov dword [esp + 0x78], eax
mov byte [esp + 0x58], 0xd
lea edx, [eax + 1]
xor eax, eax
lea ecx, [edx + 2]
mov dword [esp + 0x1c], edx
mov dword [esi + 0x2c], ecx
movzx ecx, byte [ebx]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
call fcn.0049b0aa
push eax
push str.MERGE___s_
push 1
push esi
call fcn.0046bbd8
mov eax, dword [edi + 0x6c]
mov ecx, edi
inc eax
push eax
push 0
push dword [esp + 0x38]
push 0xb
pop edx
call fcn.0046b9a1
mov ecx, dword [esp + 0x2c]
add esp, 0x1c
mov esi, eax
mov eax, dword [esp + 0x38]
push str.LEFT
push 1
push dword [esp + 0x20]
mov dword [ecx + 8], eax
call fcn.0046bbd8
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x80]
mov ecx, dword [esp + 0x24]
add esp, 0xc
push eax
call fcn.0049fa1a
mov edx, dword [esp + 0x24]
pop ecx
mov ecx, edi
call fcn.0046bcdd
mov edx, esi
mov ecx, edi
call fcn.0046c1e8
mov ecx, dword [edi + 0x6c]
mov dword [eax + 8], ecx
mov ecx, edi
mov eax, dword [edi + 0x6c]
inc eax
push eax
push 0
push dword [esp + 0x24]
push 0xb
pop edx
call fcn.0046b9a1
mov edi, dword [ebx + 8]
add esp, 0xc
mov esi, dword [ebx + 0xc]
and dword [ebx + 0xc], 0
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x14]
push str.RIGHT
push 1
push dword [esp + 0x20]
mov dword [ebx + 8], eax
call fcn.0046bbd8
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x64]
add esp, 0xc
mov edx, ebx
push eax
call fcn.0049fa1a
pop ecx
mov dword [ebx + 8], edi
mov edi, dword [esp + 0x1c]
mov edx, edi
mov dword [ebx + 0xc], esi
mov esi, dword [esp + 0x24]
mov ecx, esi
call fcn.0046bcdd
push dword [esp + 0x34]
lea eax, [edi + 1]
mov edx, ebx
push dword [esp + 0x2c]
mov edi, dword [esp + 0x20]
mov ecx, edi
push dword [esp + 0x34]
push eax
push dword [ebp + 8]
lea eax, [esp + 0x88]
push eax
call fcn.0049c8e2
mov dword [esp + 0x2c], eax
add esp, 0x18
mov al, byte [esp + 0xf]
cmp al, 0x87
je 0x49d02d
cmp al, 0x86
jne 0x49d059
push dword [esp + 0x34]
mov eax, dword [esp + 0x20]
mov edx, ebx
push dword [esp + 0x2c]
add eax, 2
mov ecx, edi
push dword [esp + 0x34]
push eax
push dword [ebp + 8]
lea eax, [esp + 0x6c]
push eax
call fcn.0049c8e2
add esp, 0x18
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x28]
call fcn.0049b007
mov al, byte [esp + 0xf]
cmp al, 0x88
je 0x49d16b
cmp al, 0x89
je 0x49d16b
mov eax, dword [esp + 0x1c]
mov ecx, esi
push 0
push dword [esp + 0x4c]
add eax, 2
push eax
push 0xa
pop edx
call fcn.0046b9a1
add esp, 0xc
mov dword [esp + 0x28], eax
mov ecx, esi
push 0
push dword [esp + 0x38]
push dword [esp + 0x24]
push 0xc
pop edx
call fcn.0046b9a1
mov edx, dword [esp + 0x34]
add esp, 0xc
mov ecx, esi
mov dword [esp + 0x24], eax
call fcn.0046b9fa
mov eax, dword [esp + 0x10]
mov cx, word [ebx + 2]
mov dx, word [eax + 2]
call fcn.00454e0f
mov word [ebx + 2], ax
mov eax, dword [esp + 0x1c]
mov ecx, esi
push 0
push dword [esp + 0x18]
inc eax
push eax
push 0xa
pop edx
call fcn.0046b9a1
add esp, 0xc
mov ebx, eax
mov ecx, esi
mov dword [esp + 0x2c], ebx
push 0
push dword [esp + 0x38]
push dword [esp + 0x28]
push 0xc
pop edx
call fcn.0046b9a1
add esp, 0xc
mov edx, ebx
mov ecx, esi
call fcn.0046b9fa
mov eax, dword [esp + 0x1c]
mov ecx, esi
push 0
push dword [esp + 0x18]
inc eax
push eax
push 0xa
pop edx
call fcn.0046b9a1
add esp, 0xc
mov dword [esp + 0x18], eax
mov ecx, esi
push 0
push dword [esp + 0x2c]
push dword [esp + 0x28]
push 0xc
pop edx
call fcn.0046b9a1
mov edx, dword [esp + 0x4c]
add esp, 0xc
mov ecx, esi
call fcn.0046b9fa
mov bl, byte [esp + 0xf]
cmp bl, 0x87
jne 0x49d1a4
mov ebx, dword [esp + 0x18]
mov eax, dword [esi + 0x6c]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x14], eax
jmp 0x49d335
mov edx, dword [esp + 0x34]
mov ecx, edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], edx
cmp al, 0x89
jne 0x49d0d0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], ecx
movzx eax, word [eax + 2]
cmp word [ebx + 2], ax
jle 0x49d197
mov word [ebx + 2], ax
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], ecx
jmp 0x49d10f
cmp bl, 0x89
jne 0x49d2eb
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], eax
inc eax
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x6c]
mov dword [esp + 0x14], eax
mov ebx, dword [esp + 0x18]
push 0
push dword [esp + 0x30]
mov ecx, esi
push dword [esp + 0x24]
push 0xc
pop edx
call fcn.0046b9a1
mov edx, dword [esp + 0x4c]
add esp, 0xc
mov ecx, esi
call fcn.0046b9fa
mov edx, dword [esp + 0x54]
mov ecx, esi
call fcn.0046c1e8
mov ecx, dword [esi + 0x6c]
push 0
push dword [esp + 0x28]
mov dword [eax + 8], ecx
mov ecx, esi
push dword [esp + 0x28]
push 0xc
pop edx
call fcn.0046b9a1
add esp, 0xc
mov ecx, esi
push 0
push dword [esp + 0x30]
push dword [esp + 0x24]
push 0xc
pop edx
call fcn.0046b9a1
mov edx, dword [esp + 0x4c]
add esp, 0xc
mov ecx, esi
call fcn.0046bd45
xor eax, eax
mov ecx, esi
push eax
push eax
push eax
push 0x59
pop edx
call fcn.0046b9a1
add esp, 0xc
mov edx, eax
mov ecx, esi
push 0xfffffffffffffff2
push dword [esp + 0x50]
call fcn.0046c12a
push 0xfffffffffffffff8
push dword [esp + 0x5c]
mov ecx, esi
push dword [esp + 0x4c]
push dword [esp + 0x78]
push dword [esp + 0x98]
push 0x5a
pop edx
call fcn.0046bac5
add esp, 0x1c
xor edx, edx
inc edx
mov ecx, esi
call fcn.0046bf17
push dword [esp + 0x14]
push dword [esp + 0x3c]
push ebx
push 0xe
pop edx
call fcn.0046b9a1
mov edx, dword [esp + 0x40]
add esp, 0xc
mov ecx, esi
call fcn.0046bd45
mov esi, dword [esp + 0x44]
cmp dword [esi + 0x34], 0
je 0x49d2b7
push dword [esi + 0x34]
mov edx, 0x499cc0
mov ecx, edi
call fcn.00499434
pop ecx
mov ebx, dword [esp + 0x10]
mov dword [esi + 0x34], ebx
mov edx, dword [ebx + 0x30]
mov dword [ebx + 0x38], esi
test edx, edx
je 0x49d2d1
mov ecx, dword [esp + 0x30]
call fcn.0047d8c7
and dword [ebx + 0x30], 0
mov ecx, edi
call fcn.0046bc29
xor eax, eax
cmp dword [edi + 0x24], eax
setne al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0
push dword [esp + 0x2c]
mov ecx, esi
push dword [esp + 0x28]
push 0xc
pop edx
call fcn.0046b9a1
mov edx, dword [esp + 0x4c]
add esp, 0xc
mov ecx, esi
mov dword [esp + 0x38], eax
call fcn.0046b9fa
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x6c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
cmp bl, 0x86
jne 0x49d1c1
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, esi
push 0
push dword [esp + 0x4c]
add eax, 2
push eax
push 0xa
pop edx
call fcn.0046b9a1
add esp, 0xc
jmp 0x49d1c5